技術ノート Linux Linux で lshw を使用する方法 (実践例付き)

Linux で lshw を使用する方法 (実践例付き)

Linux で lshw を使用する方法 (実践例付き)

Linux システム内のすべてのハードウェアを読みやすい形式で表示できるコマンドがあったとしたらどうでしょうか? lshw へようこそ。この素晴らしいツールは、熟練した Linux 専門家でも見落とされがちです。

lshw とは何ですか?

Linux で lshw を使用する方法 (実践例付き)

lshw 、Linux のインストール時にデフォルトでインストールされるユーティリティまたはそれより優れたツールで、システム内にあるハードウェアのリストを提供します。人は次のように考えることで lshw を思い出すことができます

ls

(ディレクトリの内容を一覧表示できるコマンド) および

hw

ハードウェア用。

このツールには多数のフォーマット オプションがあり、検出したデバイスについて詳細な出力が得られ、多数のデバイス タイプを検出できますが、経験豊富な Linux 専門家でもこのツールのことを聞いたことがないかもしれません。おそらく、他のツールが検索エンジンなどで前面に掲載されすぎているのでしょう。

現在、このツールは DMI (x86 および IA-64)、OpenFirmware デバイス ツリー (PowerPC)、PCI/AGP、CPUID (x86)、IDE/ATA/ATAPI、PCMCIA、SCSI、および USB デバイスを検出できます。

別のパッケージ、つまり lshw-gtk を使用して、同じツールのグラフィカル バージョンをインストールすることもできます。 lshw インストールする必要はなく、デフォルトで Linux に組み込まれていますが、コマンド ライン (この記事ではこれに焦点を当てます) ではなく GUI でハードウェアを探索することに興味がある場合は、 lshw-gtk をインストールします。

Linux で lshw を使用する方法 (実践例付き)

lshw-gtkの インストール

Debian/Apt ベースの Linux ディストリビューション (Ubuntu や Mint など) に lshw-gtk をインストールするには、ターミナルで次のコマンドを実行します。

 sudo apt install lshw-gtk

RedHat/Yum ベースの Linux ディストリビューション (RHEL、Centos、Fedora など) に lshw-gtk をインストールするには、ターミナルで次のコマンドを実行します。

 sudo yum install lshw-gtk

最終的に lshw-gtk をインストールする場合は、このツールには予期しないいくつかの奇妙な点があることに注意してください。まず、使用することをお勧めします

sudo lshw-gtk

端末のプロンプトで lshw-gtk を起動してください。そうしないと、すべてのハードウェア情報が利用できない可能性があります。

次に、ツールを開始したら、 lshw-gtk デフォルトではハードウェアをスキャンせず、オンデマンドでのみスキャンするため、上部近くの [更新] ボタンをクリックします。

最後に、数秒後にハードウェアがスキャンされると、左端の列にある 1 台の デスクトップ コンピューター を除いて出力が欠落しているように見えます。これをダブルクリックし、次に 2 列目の マザーボード などをダブルクリックします。私自身の経験では、この GUI ツールは作業中に少し制限があることがわかりました。

クラッシュとエラーとアサートの違いを知っていますか?この違いについては 、「アサート、エラー、クラッシュ」 の記事で説明しています。

Linux で lshw を使用する方法 (実践例付き)

Linux ターミナルで lshw を探索する

Linux ターミナルで lshw を実行すると (通常は、

 Windows Key

+

 T

キーボードで を押すか、オペレーティング システムのメイン アイコン (Linux Mint の緑の丸のような) を押して 「ターミナル 」と入力すると、ハードウェアの長く冗長な出力が表示されます。 lshw 指示されたことを実行しました。すべてのハードウェアをリストします。

出力を関心のあるものに限定することで、この動作をもう少し改善しましょう。まず、利用可能な出力のハードウェア クラスを調査する必要があります。

これは lshw -short を使用して行うことができ、同時にハードウェアの概要をより短く、より読みやすく表示します。ただし、端末の設定によっては、出力リストの長さが 1 ~ 2 ページになる場合があります。

また、この時点では、常に lshw sudo とともに使用することを忘れないでください。これにより、出力が不完全または不正確になることがなくなります。 lshw Linux オペレーティング システムのコア配布ファイルにデフォルトで含まれているため、 sudo として lshw を実行するのは安全です (有名な最後の言葉!)。それが徹底的に評価されたことを望む人もいるでしょう。

 sudo lshw -short |頭 -n6

ここでは、 lshw -short を使用してすべてのハードウェアの短いリストを要求し、 sudo を使用して root スーパーユーザーとして実行し、 head -n6 を使用して出力の最初の 6 行に制限しました。 Linux パイプ | を使用して、出力を lshw から head パイプしました 。これは、ツールによってレンダリングされた情報を、必要なほぼすべての形式に事後解析する非常に便利な方法です。

これを VirtualBox で実行すると、すぐに興味深い情報が表示されます。lshw lshw 、システムとバスが VirtualBox ベースであることを認識しています。また、この VM (仮想マシン) には 8 GiB のメモリが割り当てられていることがわかります。

また、重要な点として、デバイスのクラスがリストされていることがわかります。これは、次の lshw 例で使用するものです。 lshw で使用されるデバイス クラス名は単純で覚えやすいです。 system bus memory bridge generic multimedia disk input volume display network processor 、そして潜在的には他にもいくつかあります。

Linux で lshw を使用する方法 (実践例付き)

lshw でクエリを実行するためのデバイス クラスの使用

デバイスのクラス名がわかったので、同じものを -class オプション ( -C と省略できます) と組み合わせて使用​​して、関心のある特定のデバイスのみをクエリします。使用しているシステムが特に VirtualBox で実行されている仮想化マシンかどうかを検出する簡単な方法はありますか?

 sudo lshw -short -C システム

sudo lshw -short -C システム 2>/dev/null | grep -o ‘VirtualBox’

if [ “$(sudo lshw -short -C system 2>/dev/null | grep -o ‘VirtualBox’)” == ‘VirtualBox’ ];次に、「VirtualBox を使用しています!」をエコーし​​ます。 else echo ‘これは VirtualBox VM ではありません!’;フィ

ここでは複数のコマンドを実行し、そのたびにコマンドをより複雑に構築しました。最初のコマンドでは、前と同じ方法で単純に lshw をクエリします。ただし、今回は system クラスのデバイスのみをリストする追加の -C system オプションを使用します。

簡単にスキャンすると (スキャンが完了すると出力が消えるため、スクリーンショットには示されていません)、システム クラスのデバイスが表示されます。この場合は VirtualBox システムです。

次のコマンドでは、( -o オプションのおかげで) 単語「VirtualBox」のみを grep (選択) します。出力に「VirtualBox」が含まれていない場合、コマンドは何も出力しません。

また、 sudo lshw エラーを表示する奇妙なケースに備えて、 2>/dev/null /dev/null への stderr (標準エラー出力) リダイレクトも追加しました。これは、あるコマンドから別のコマンドに情報をパイプするときによく使用されるスクリプト手法ですが、おそらくここではエラーが発生する可能性はほとんどありません (ただし、不可能ではありません)。

最後のコマンドでは、このコードをサブシェル ( $(...) ) に挿入し、次に if ステートメントに挿入します。基本的に、 Bash インタープリターに 2 番目のコマンドの出力が「VirtualBox」と一致するかどうかを確認するように依頼しています。

もしそうなら、私たち は VirtualBox を使用していると自信を持って言えます。 。コマンド ライン インタープリター/シェルとして Bash, VirtualBox を使用していないと仮定して、このコードをマシン上で実行すると、出力は 次のようになります。「This is not a VirtualBox VM!」 その代わり。

Linux で lshw を使用する方法 (実践例付き)

まとめ

この記事では、コマンド ラインおよびデスクトップ上の GUI 内から詳細なハードウェアおよびシステム情報を取得するための Linux ツールである lshw および lshw-gtk について説明しました。 lshw デバイス クラスを調べた後、 lshw 情報を直接使用して、VirtualBox 内で実行しているかどうかを確認しました。

この記事を読んで気に入った場合は、次の 「strace を使用してシステム コールとシグナルをトレースする方法」を 読んでください。

「 Linux で lshw を使用する方法 (実践例付き)」に関するベスト動画選定!

【とりあえず覚えておけば大丈夫】Linuxコマンド10選についてお話します
【Linuxコマンドの基本01】 ファイルを管理する Bash上でファイル、ディレクトリを作る、消す、そして、ファイルとはなにか、ディレクトリとは? 初心者にわかりやすく解説。