Linux は、オープン ソースの Unix に似たオペレーティング システムであり、Ubuntu、CentOS、Debian など、さまざまなディストリビューションが存在します。Linux システムには、ハードウェア構成、メモリ使用量、プロセス ステータス、ネットワーク接続などのシステムのさまざまな情報をユーザーが簡単に表示および管理できるコマンド ライン ツールが多数用意されています。この記事では、よく使われるコマンドとその使用例を紹介します。
- 基本的なシステム情報: uname
- Linux ディストリビューション情報: lsb_release
- CPUの詳細: lscpu
- メモリ使用量: 無料
- システムのリアルタイムプロセスステータス: トップ
- ネットワークインターフェース情報: ifconfig
- ネットワーク接続関連情報: netstat
- ワイヤレスネットワークインターフェース情報: iwconfig
- ディスクパーティション情報: fdisk
- ディスク使用量: df
- システムのホスト名とその他の情報: hostnamectl
- PCIデバイス情報: lspci
- USB デバイス情報: lsusb
- システムハードウェアの詳細: dmidecode
- 環境変数を介して表示する
関連するコマンドの完全なパラメータを表示するには、
man command
またはを使用します。command -h
基本的なシステム情報: uname
uname コマンドは、カーネル バージョン、オペレーティング システム名、ホスト名、ハードウェア アーキテクチャなどのシステムの基本情報を表示できます。次の一般的に使用されるオプションがあります。
- -a: すべての情報を表示します
- -s: カーネル名を表示します。
- -r: カーネルのバージョンを表示します
- -v: カーネルのリリース日を表示します。
- -o: オペレーティング システム名を表示します。
- -n: ホスト名を表示します
- -m: ディスプレイ ハードウェア アーキテクチャ
たとえば、 input ではuname -a
、次のような出力を取得できます。
root@CQUPTLEI:~# uname -a
Linux CQUPTLEI 5.4.0-149-generic #166-Ubuntu SMP Tue Apr 18 16:51:45 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
これは、現在のシステムが Linux、カーネル バージョンが 5.4.0-149-generic、リリース日が 2023 年 4 月 18 日、ハードウェア アーキテクチャが x86_64、オペレーティング システム名が GNU/Linux であることを意味します。
Linux ディストリビューション情報: lsb_release
lsb_release コマンドは、ディストリビューション名、バージョン番号、コード名など、Linux ディストリビューションの情報を表示できます。次の一般的に使用されるオプションがあります。
- -a: すべての情報を表示します
- -d: ディストリビューションの説明を表示します。
- -c: リリースコードを表示します。
- -r: リリースのバージョン番号を表示します。
たとえば、 input ではlsb_release -a
、次のような出力を取得できます。
root@CQUPTLEI:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal
これは、現在のシステムが Ubuntu ディストリビューション、バージョン番号が 20.04.6 LTS、コード名が folk であることを意味します。
LSB
Linux Standard Baseの略称です。これは、一貫したソフトウェア インターフェイスとバイナリ互換性を提供して、異なる Linux ディストリビューション間の相互運用性を強化するために、Linux インフラストラクチャ プロバイダー、アプリケーション開発者、および Linux コミュニティによって共同開発された標準です。
LSB の目標は、一連のコア仕様と標準を定義して、LSB 準拠の Linux システム上で開発および実行されるアプリケーションが、さまざまな Linux ディストリビューション上で一貫した動作を維持できるようにすることです。これにより、アプリケーション開発者は、ディストリビューションごとに追加のカスタマイズや調整を行うことなく、ソフトウェアをさまざまな Linux 環境に簡単に移植できるようになります。
LSB 標準は、ファイル システム レイアウト、共有ライブラリ、コマンド ツール、システム コール インターフェイス、初期スクリプト、パッケージ管理およびロギング システムなど、さまざまな側面をカバーしています。Linux ディストリビューションに関する情報を表示するための lsb_release などのいくつかの基本的なコマンドとツール、およびシステムが LSB 標準に準拠していることを確認および検証するためのその他のツールが定義されています。
LSB 標準に準拠することで、Linux ディストリビューションの相互運用性が向上し、開発者がさまざまな Linux システム上でアプリケーションをより簡単に配信および実行できるようになります。また、これにより、企業や組織がさまざまな Linux ディストリビューションから選択し、アプリケーションがそれらのディストリビューション上で適切に実行されるようにするための柔軟性も向上します。
CPUの詳細: lscpu
lscpu は、CPU に関する詳細情報を表示するために使用されます。プロセッサ アーキテクチャ、論理コアの数、エンディアン、CPU 周波数、キャッシュ階層、サポートされる機能に関する情報が提供されます。
共通パラメータ:
- -a、--all:
デフォルト情報と拡張情報を含む、利用可能なすべての CPU 情報を表示します。
-
-p、--parse:
/proc/cpuinfo ファイルを解析し、プロセッサ情報を読み取り可能な形式で表示します。 -
-s、--socket:
ソケット番号、コア数、スレッド数など、物理ソケット (ソケット) の情報のみを表示します。 -
-c、--cpu:
CPU 番号、コア番号、スレッド番号などを含む論理 CPU 情報のみを表示します。 -
-x、--hex:
CPUの機能やフラグを表示する場合、16進数で表示します。 -
-y, --extended=KEY:
拡張 CPU 情報を表示します。KEY は、キャッシュ、CPU、フラグ、トポロジのいずれかになります。 -
-e、--online:
オンライン CPU、つまり実行中の CPU に関する情報のみを表示します。 -
-V、--version:
lscpu コマンドのバージョン情報を表示します。
使用lscpu
:
メモリ使用量: 無料
free コマンドは、物理メモリ、スワップ パーティション、バッファおよびキャッシュなどのシステムのメモリ使用量を表示できます。次の一般的に使用されるオプションがあります。
- -h: KB、MB、GB など、人間が判読できる形式で情報を表示します。
- -m: 情報を MB 単位で表示します
- -g: 情報を GB 単位で表示します
- -t: 合計情報を表示します
たとえば、 input ではfree -h
、次のような出力を取得できます。
root@CQUPTLEI:~# free
total used free shared buff/cache available
Mem: 2030144 986392 108608 66064 935144 785052
Swap: 1049596 793048 256548
システムのリアルタイムプロセスステータス: トップ
top コマンドは、CPU 使用率、メモリ使用量、実行時間など、システムのプロセス ステータスをリアルタイムで表示できます。次の一般的に使用されるオプションがあります。
- -u: 指定したユーザーのプロセスのみを表示します
- -p: 指定されたプロセス ID を持つプロセスのみを表示します
- -c: 完全なコマンドラインを表示します。
- -d :更新間隔を秒単位で設定します。
たとえば、 input ではtop
、次のような出力を取得できます。
これは、現在のシステムが 42 日間稼働しており、2 人のユーザーがログインしており、平均負荷が 0.46、0.39、および 0.26 であることを意味します。
249 のプロセスがあり、1 つは実行中で、248 はスリープしています。
CPU 使用率は、ユーザー状態で 2.0%、システム状態で 2.2%、アイドル状態で 95.5% です。
メモリ使用量は xxxxxx です (図を参照)。スワップ パーティションの使用量は xxxx です。
最後に、プロセス ID、ユーザー、優先度、仮想メモリ、物理メモリ、共有メモリ、ステータス、CPU 使用率、メモリ使用量、実行時間、コマンドなどの各プロセスの情報が表示されます。
ネットワークインターフェース情報: ifconfig
ifconfig コマンドは、IP アドレス、サブネット マスク、ブロードキャスト アドレス、MAC アドレスなどのネットワーク インターフェイス情報を表示および構成できます。次の一般的に使用されるオプションがあります。
- -a: 非アクティブなインターフェースを含むすべてのインターフェースに関する情報を表示します。
- -s: 概要情報のみを表示し、詳細情報は表示しません
- : 指定したインターフェースの情報のみを表示します
たとえば、 input ではifconfig
、次のような出力を取得できます。
これは、現在のシステムには 3 つのネットワーク インターフェイスがあることを意味します。
eth0 はイーサネット インターフェイスで、IP アドレスは xxx.xxx.xxx.xxx、サブネット マスクは xxx.xxx.xxx.xxx、ブロードキャスト アドレスは xxx.xxx.xxx.xxx、MAC アドレスは xx:xx です。 :xx:xx:xx:xx。
lo はローカル ループバック インターフェイス、docker0 は docker です。
ネットワーク接続関連情報: netstat
netstat は、アクティブな TCP/UDP 接続、リスニング ポート、ルーティング テーブル、インターフェイス統計、マルチキャスト メンバーなどを表示できます。
共通パラメータ:
- -a: すべてのアクティブな TCP 接続とリスニング TCP および UDP ポートを表示します。
- -b: 各接続またはリスニング ポートに関係する実行可能ファイルの名前を表示します。場合によっては、実行可能ファイルに複数の独立したコンポーネントが含まれる場合があります。その場合、接続またはリスニング ポートの作成に関与するコンポーネントのシーケンスが表示されます。このオプションには時間がかかる場合があり、使用するには十分な権限が必要です。
- -e: 送受信されたバイト数やパケット数などのイーサネット統計を表示します。このパラメータは -s と一緒に使用できます。
- -n: ホスト名を解決しようとする代わりに、アドレスとポート番号を数値形式で表示します。
- -o: 各接続のプロセス識別子 (PID) を表示します。タスクマネージャーのPIDに従って、対応するアプリケーションを見つけることができます。このパラメータは、-a、-n、-p とともに使用できます。
- -p : 指定されたプロトコルの接続のみを表示します。プロトコルは、tcp、udp、tcpv6、または udpv6 です。このパラメーターを -s とともに使用してプロトコル統計を表示する場合、プロトコルは tcp、udp、icmp、ip、tcpv6、udpv6、icmpv6、または ipv6 になります。
- -r: IP ルーティング テーブルを表示します。これは、route print コマンドと同等です。
- -s: プロトコルごとに統計を表示します。デフォルトでは、TCP、UDP、ICMP、および IP プロトコルの統計が表示されます。IPv6 プロトコルがインストールされている場合は、TCP over IPv6、UDP over IPv6、ICMPv6、および IPv6 プロトコルの統計も表示されます。-p パラメーターを使用して、一連のプロトコルを指定できます。
- -t: 現在の接続状態を表示します。
- <間隔>: 選択した情報を指定した秒数ごとに再表示します。再表示を停止するには、CTRL+C を押します。このパラメータを省略した場合、コマンドは選択された情報を 1 回だけ出力します。
ワイヤレスネットワークインターフェース情報: iwconfig
ワイヤレス ネットワーク カードの名前、周波数、接続ステータスなど、ワイヤレス ネットワーク インターフェイスの情報を表示および設定します。
サーバーはワイヤレス ネットワークに接続されていないため、例は表示されません (デュアル システム間の切り替えが面倒すぎるため)。
ディスクパーティション情報: fdisk
ディスク デバイス、パーティション タイプ、パーティション サイズなど、システム上のすべてのディスク パーティションに関する情報を一覧表示します。
ディスク関連のコマンドについては、以前の記事を参照してください。ここで一般的に使用されるパラメータは次のとおりです。-l
たとえば、このサーバーには vda と vdb という 2 つのディスクがあり、それぞれが 2 つの領域に分割されています。
ディスク使用量: df
df コマンドは、総容量、使用済みスペース、空きスペース、使用率など、システムのディスク使用状況を表示できます。次の一般的に使用されるオプションがあります。
- -h: KB、MB、GB など、人間が判読できる形式で情報を表示します。
- -m: 情報を MB 単位で表示します
- -g: 情報を GB 単位で表示します
- -T: ファイルシステムの種類を表示します。
- -a: 特殊なファイルシステムを含むすべてのファイルシステムを表示します。
- < directory >: 指定されたディレクトリが存在するファイル システムのみを表示します
たとえば、 input ではdf -hT
、次のような出力を取得できます。
システムのホスト名とその他の情報: hostnamectl
ホスト名、オペレーティング システムのバージョン、アーキテクチャ、システム タイム ゾーンなどの情報を含む、システムのホスト名を表示および設定します。
パラメータ:
-
status:
現在のシステムのホスト名、オペレーティング システムのバージョン、アーキテクチャ、タイム ゾーンなどの情報を表示します。 -
set-hostname NAME:
システムのホスト名を指定された名前に設定します。これを行うには root 権限が必要であるか、sudo を使用します。 -
set-chassis TYPE:
システムのシャーシ タイプを設定します。使用可能なタイプには、デスクトップ (デスクトップ)、ラップトップ (ノートブック)、サーバー (サーバー)、vm (仮想マシン) などが含まれます。 -
set-deployment DEPLOYMENT:
システムのデプロイメント環境を設定します。利用可能なデプロイメント環境には、実稼働 (実稼働環境)、開発 (開発環境)、テスト (テスト環境)、およびカスタム (カスタム環境) が含まれます。 -
set-icon-name NAME:
システムホストのアイコン名を設定します。アイコン名は通常、グラフィカル ユーザー インターフェイス (GUI) に表示されるホスト アイコンに対応します。 -
set-location LOCATION:
システムの位置情報を設定します。オフィス名やコンピューター室番号などのカスタムの場所の文字列を指定できます。 -
set-timezone TIMEZONE:
システムのタイムゾーンを設定します。「Asia/Shanghai」や「America/New_York」などの有効なタイムゾーン識別子を指定する必要があります。 -
set-volatile BOOL:
ホスト名が一時的 (揮発性) かどうかを設定します。「yes」に設定すると、システムの再起動後にホスト名がデフォルトにリセットされます。 -
set-static-hostname 名前:
システムの静的ホスト名を設定します。静的ホスト名はシステムを再起動しても保持されます。 -
set-pretty NAME:
きれいな目的のためにホスト名を設定します。特定のコンテキストでユーザーに表示されるフレンドリ名を指定できます。 -
set-transient-hostname 名前:
システムの一時的なホスト名を設定します。一時的なホスト名は、システムの再起動後にデフォルトにリセットされます。
例:hostnamectl status
PCIデバイス情報: lspci
lspci は、システム内のすべての PCI バスおよびそれに接続されているすべてのデバイスに関する情報を表示するために使用されるコマンドです。デフォルトでは、デバイスの簡単なリストが表示されます。
ここで: PCI は Peripheral Component Interconnect を意味し、グラフィックス カード、サウンド カード、ネットワーク カードなど、マザーボード上のさまざまな周辺機器を接続するために使用されるパーソナル コンピュータ バスです。
以下の共通パラメータのいくつかを使用して、より詳細な出力や他のプログラムによる解析に適した出力を要求できます。
- -m: 下位互換性のある機械可読形式で出力を表示します。
- -mm: スクリプトを簡単に解析できるように、出力を機械可読形式で表示します。
- -t: すべてのバス、ブリッジ、デバイス、およびそれらの間の接続を含む出力をツリー図の形式で表示します。
- -v: デバイス クラス、ベンダー、サブシステム、IRQ などを含む詳細な出力を表示します。
- -vv: 機能リスト、PCI 構成スペースなどを含む、より詳細な出力を表示します。
- -vvv: あまり興味深いものに見えない場合でも (未定義のメモリ領域など)、すべての解析可能な情報を含む最も詳細な出力を表示します。
- -k: 各デバイスのカーネルドライバーとモジュールを表示します。
- -x: PCI 構成スペースの標準部分を 16 進形式で表示します (最初の 64 バイト、または CardBus ブリッジの場合は最初の 128 バイト)
- -xxx: PCI 構成空間全体 (256 バイト) を 16 進形式で表示します。一部の PCI デバイスは、構成空間の特定の部分を読み取ろうとするとエラーが発生するため、このオプションは root でのみ使用できます (この動作は PCI 標準に違反していない可能性がありますが、少なくとも愚かです)。ただし、そのようなデバイスは稀なので、あまり心配する必要はありません。
- -xxxx: PCI-X 2.0 および PCI Express バスで使用できる拡張 (4096 バイト) PCI 構成スペースを 16 進形式で表示します。
- -b: カーネルから見えるものではなく、バス中心のビューですべての IRQ 番号とアドレスを表示します。
- -D: PCI ドメイン番号を常に表示します。デフォルトでは、ドメイン 0 のみを持つマシンでは、lspci はそれらを抑制します。
- -P: バス番号ではなく、各ブリッジへのパスによって PCI デバイスを識別します。
- -PP: 各ブリッジのパスによりPCIデバイスを識別し、バス番号とデバイス番号を同時に表示します。
- -n: PCI ベンダー コードとデバイス コードを、PCI ID のリストで検索するのではなく、数値で表示します。
- -nn: PCI ベンダー コードとデバイス コードを番号と名前で表示します。
- -q: デバイスがローカルの pci.ids ファイルで見つからない場合は、DNS を使用して中央の PCI ID データベースにクエリを実行し、結果をローカル キャッシュに保存します。DNS クエリが成功すると、このオプションが指定されていなくても、後続の実行で結果が認識されます。データベース サーバーの過負荷を避けるために、このオプションは自動化スクリプト内でのみ慎重に使用してください。
- -qq: デバイスがローカルの pci.ids ファイルで見つかるかどうかに関係なく、DNS を使用して中央の PCI ID データベースにクエリを実行し、ローカル キャッシュをリセットします。
- -Q: デバイスがローカルの pci.ids ファイルで見つかった場合でも、DNS を使用して中央の PCI ID データベースにクエリを実行します。表示されたエントリが間違っていると思われる場合は、このオプションを使用してください。
USB デバイス情報: lsusb
デバイス ID、製造元、デバイス速度など、システムに接続されているすべての USB デバイスに関する情報をリストします。
共通パラメータ:
- -v: デバイスクラス、ベンダー、サブシステム、構成記述子などの詳細情報を表示します。
- -t: すべてのバス、デバイス、およびそれらの間の接続を含む出力をツリー図の形式で表示します。
- -s [ [ バス]: ] [ devnum]: 指定されたバスおよび/またはデバイス番号を持つデバイスのみを表示します。どちらの数値も 10 進数なので省略できます。
- -d [ベンダー]: [製品]: 指定されたベンダーと製品 ID を持つデバイスのみを表示します。どちらの ID も 16 進数です。
- -D デバイス: /dev/bus/usb ディレクトリをスキャンせず、指定されたデバイス ファイルに関する情報のみを表示します。デバイス ファイルは /dev/bus/usb/001/001 のようになります。このオプションは、-v オプションと同様に詳細な情報を表示します。このオプションを使用するには root である必要があります。
- -V: バージョン情報を出力し、正常に終了します。
システムハードウェアの詳細: dmidecode
マザーボード、BIOS、メモリ、プロセッサなどのシステム ハードウェアに関する詳細情報を表示します。
dmidecode は、システムの DMI (SMBIOS とも呼ばれます) テーブルの内容を解析し、人間が判読できる形式で表示するコマンドです。DMI テーブルには、システム ハードウェア コンポーネントの説明に加え、シリアル番号や BIOS バージョンなどのその他の役立つ情報が含まれています。いくつかの共通パラメータを使用して出力を制御できます。
- -d、--dev-mem FILE: 指定されたデバイス ファイルからメモリを読み取ります (デフォルトは /dev/mem)
- -h、--help: ヘルプを表示して終了します。
- -q、--quiet: より簡潔な出力を表示し、不明な非アクティブな OEM 固有のエントリは表示しません。
- -s, --string KEYWORD: 指定されたキーワードに対応する DMI 文字列の値のみを表示します。キーワードは、次のリストのいずれかである必要があります: bios-vendor、bios-version、bios-release-date、system-manufacturer、system-product-name、system-version、system-serial-number、system-uuid、baseboard-メーカー、ベースボード製品名、ベースボード バージョン、ベースボード シリアル番号、ベースボード資産タグ、シャーシ メーカー、シャーシ タイプ、シャーシ バージョン、シャーシ シリアル番号、シャーシ資産タグ、プロセッサーファミリ、プロセッサの製造元、プロセッサのバージョン、プロセッサの周波数。
- -t、--type TYPE: 指定されたタイプの DMI エントリのみを表示します。Type には、数値、コンマ区切りの数値リスト、または 0 ~ 4 などの数値範囲を指定できます。Type には、BIOS、システム、ベースボード、シャーシ、プロセッサ、メモリ、キャッシュ、コネクタ、スロットのキーワードのいずれかを指定することもできます。
- -u: 解析されていないエントリの内容を 16 進形式で表示します。
- -V: バージョン情報を出力し、正常に終了します。
環境変数を介して表示する
コマンドに加えて、環境変数を出力して、端末の種類、シェルの種類などの一部のシステム構成を表示することもできます。
-
PATH
: コマンドの実行時にシステムが実行可能ファイルを検索するディレクトリのリストをコロンで区切って定義します。コマンドに完全なパスが含まれていない場合、システムはこのリストに従って順番にコマンドの存在を検索します。
-
HOME
: 現在のユーザーのホーム ディレクトリを定義します。これは、ログイン時にデフォルトで入力されるディレクトリです。通常、このディレクトリにはユーザーの設定ファイル、データ ファイルなどが含まれます。
-
USER
: 現在のユーザーのユーザー名を定義します。これは、ログイン時に入力したユーザー名です。
-
SHELL
: 現在のユーザーが使用するシェル プログラム、つまりログイン時に開始される対話型コマンド インタープリターを定義します。一般的なシェル プログラムには、bash、zsh、csh などが含まれます。
-
LANG
: 現在のユーザーが使用する言語と文字エンコーディング、つまりテキストの表示および入力時に使用される言語規則と文字セットを定義します。この変数は、日付形式、通貨記号、照合順序など、システムでサポートされている言語とロケールに影響します。
-
PS1
: 現在のシェルのプロンプト、つまりコマンドが入力されるたびにコマンド ラインの前に表示される文字列を定義します。\u
この変数には、ユーザー名を表す、\h
ホスト名を表す、\w
現在の作業ディレクトリを表すなどの特別なエスケープ シーケンスを含めることができます。
-
TERM
: 現在の端末のタイプ、つまり、テキストを表示および入力するときに使用される端末エミュレータまたはコンソールを定義します。この変数は、色、カーソル、キーマップなど、システムがサポートする端末機能に影響します。
-
EDITOR
: 現在のユーザーが使用するテキスト エディター、つまり、テキスト ファイルを編集するときにデフォルトで起動するプログラムを定義します。一般的なテキスト エディタには、vim、nano、emacs などが含まれます。 -
LD_LIBRARY_PATH
: プログラムの実行時にシステムがダイナミック リンク ライブラリを検索するディレクトリのリストをコロンで区切って定義します。プログラムがいくつかのダイナミック リンク ライブラリに依存している場合、システムはこのリストに従ってライブラリが順番に存在するかどうかを確認します。 -
TMPDIR
: システムが実行時に一時ファイルを保存するディレクトリを定義します。この変数が定義されていない場合、システムはデフォルトの一時ファイル ディレクトリ (通常は /tmp または /var/tmp) を使用します。
上記の一般的に使用されるコマンドに加えて、他にも多くのコマンドやサードパーティ ツールがあります。たとえばtop
、アップグレードされたバージョンhtop
です。
詩の最後に永遠に愛してと書いてください〜