Linuxを日常的に使う実験ブログ

(2024年更新)Linuxのシステムやハードウェア情報を取得するコマンドを集めてみた

 2014-09-09

 2024-10-30

 Linux全般

こんにちは。今回はLinuxのシステム情報を入手するコマンド特集です。システムの設定やハードの情報を入手する際に役立ちそうなコマンド(というかCUI操作)を独断と偏見でピックアップします。ディストロやバージョンによって設定ファイルやコマンドは変化しますので注意してくださいね。(本記事は2014年10月に加筆修正されました。)

CUPの情報を得る

まず手っ取り早く情報が欲しい時は以下のコマンドを打ってみてください。

lscpu

出力例

Architecture:             x86_64
  CPU op-mode(s):         32-bit, 64-bit
  Address sizes:          48 bits physical, 48 bits virtual
  Byte Order:             Little Endian
CPU(s):                   8
  On-line CPU(s) list:    0-7
Vendor ID:                AuthenticAMD
  Model name:             AMD FX-8370E Eight-Core Processor
    CPU family:           21
    Model:                2
    Thread(s) per core:   2
    Core(s) per socket:   4
    Socket(s):            1
    Stepping:             0
    Frequency boost:      enabled
    CPU(s) scaling MHz:   42%
    CPU max MHz:          3300.0000
    CPU min MHz:          1400.0000
    BogoMIPS:             6600.37
...

もしlscpuが使えない場合は 以下のコマンドでもCPUの情報を取得することができます。試してみてください。

$ cat /proc/cpuinfo

出力例

processor	: 0
vendor_id	: AuthenticAMD
cpu family	: 21
model		: 2
model name	: AMD FX-8370E Eight-Core Processor
stepping	: 0
microcode	: 0x6000852
cpu MHz		: 1399.782
cache size	: 2048 KB
physical id	: 0
siblings	: 8
core id		: 0
cpu cores	: 4
apicid		: 16
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes

メモリー(RAM)の情報を得る

メモリーの情報を取得する場合はlsmemコマンドを試してみてください

lsmem

出力例

RANGE                                 SIZE  STATE REMOVABLE  BLOCK
0x0000000000000000-0x00000000bfffffff   3G online       yes   0-23
0x0000000100000000-0x000000043fffffff  13G online       yes 32-135

Memory block size:       128M
Total online memory:      16G
Total offline memory:      0B

また、/proc/meminfoの情報を出力することでも情報を得ることができます。

$ cat /proc/meminfo

出力例

MemTotal:       16259248 kB
MemFree:        10493912 kB
MemAvailable:   13171000 kB
Buffers:          115504 kB
Cached:          2927836 kB
SwapCached:            0 kB
Active:          4809124 kB
Inactive:         543844 kB
Active(anon):    2465604 kB
...

PCIデバイスの情報を得る

ハードウェア情報を取得したい場合はlspciコマンドが便利です。

lspci

出力例

00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD/ATI] RD9x0/RX980 Host Bridge (rev 02)
00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD/ATI] RD890S/RD990 I/O Memory Management Unit (IOMMU)
00:02.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] RD890/RD9x0/RX980 PCI to PCI bridge (PCI Express GFX port 0)
00:04.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] RD890/RD9x0/RX980 PCI to PCI bridge (PCI Express GPP Port 0)
00:06.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] RD890/RD9x0/RX980 PCI to PCI bridge (PCI Express GPP Port 2)
00:11.0 SATA controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (rev 40)
00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:12.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
...

読み込まれているモジュール一覧を出力

モジュールに関する情報を得たい場合はlsmodコマンドを試してください。

lsmod

出力例

Module                  Size  Used by
rfcomm                102400  4
snd_seq_dummy          12288  0
snd_hrtimer            12288  1
xt_nat                 12288  6
xt_tcpudp              16384  10
veth                   40960  0
xt_conntrack           12288  2
xt_MASQUERADE          16384  4
nf_conntrack_netlink    61440  0
nfnetlink              20480  2 nf_conntrack_netlink
...

接続されているHDDなどのブロックデバイスの情報を得る

HDDやSSD、USBメモリー等のブロックデバイスについての情報を得たい場合はまずlsblkを実行してみましょう。

lsblk

出力例

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda      8:0    0 238.5G  0 disk 
├─sda1   8:1    0     1G  0 part /boot/efi
├─sda2   8:2    0   230G  0 part /var/lib/docker
│                                /
└─sda3   8:3    0   7.5G  0 part [SWAP]
sdb      8:16   0 931.5G  0 disk 
└─sdb1   8:17   0   300G  0 part /home
...

接続されているUSB機器の情報を得る

USB機器に関する情報を取得する場合はlsusbコマンドで調べます。

lsusb

出力例

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 1e4e:0103 Cubeternet USB2.0 Camera
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
...

ドライブの容量を調べる

マウントされているドライブの容量を調査したい場合はdfコマンドで調べます。-hオプションをつけると見やすく表示できると思います。

df -h

出力例

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        7.8G     0  7.8G   0% /dev
tmpfs           7.8G  528K  7.8G   1% /dev/shm
tmpfs           7.8G  1.3M  7.8G   1% /run
/dev/sda2       226G   49G  165G  23% /
...

inodeに関する情報を取得する

inodeの使用率を調べたいなどinodeに関する情報を調べたい場合はdfコマンドに-iオプションを付けて実行すると取得できます。

df -i

出力例

Filesystem     Inodes IUsed IFree IUse% Mounted on
devtmpfs         2.0M   602  2.0M    1% /dev
tmpfs            2.0M    16  2.0M    1% /dev/shm
tmpfs            2.0M   915  2.0M    1% /run
/dev/sda2         15M  460K   14M    4% /

Xorgでのキーボードレイアウト設定を確認する

setxkbmap

X関連の設定でキーボードレイアウトを設定しても有効にならない場合は他の設定ファイルを読み込んでいる可能性もあります。現在の状態を知るには以下コマンドを実行してみてください。

setxkbmap -print -verbose 10

出力例

Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      jp106
layout:     jp
options:    terminate:ctrl_alt_bksp
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete+japan
symbols:    pc+jp+inet(evdev)+terminate(ctrl_alt_bksp)
geometry:   pc(jp106)
xkb_keymap {
	xkb_keycodes  { include "evdev+aliases(qwerty)"	};
	xkb_types     { include "complete"	};
	xkb_compat    { include "complete+japan"	};
	xkb_symbols   { include "pc+jp+inet(evdev)+terminate(ctrl_alt_bksp)"	};
	xkb_geometry  { include "pc(jp106)"	};

xprop

もう一つの方法としてxpropコマンドを使用する方法もあります。尚、xpropはデフォルトでインストールされていないディストロもありますのでご注意を。

xprop -root | grep XKB

出力例

_XKB_RULES_NAMES(STRING) = "evdev", "jp106", "jp", "", "terminate:ctrl_alt_bksp"

環境変数に関する情報を取得する

登録されている環境変数一覧を見る

export -p | less

出力例

export QT_IM_MODULE=fcitx5
export SHELL=/bin/zsh
export -i10 SHLVL=2
export TERM=xterm-256color
export TILIX_ID=3fd81864-e004-4cf4-ab5f-4e7b0ccf2b00
export USER=kuro

使用可能なフォントを知りたい

フォントキャッシュの一覧を表示するにはfc-listが便利です。一般的に出力が非常に長いのでパイプでlessで出力しています。

fc-list | less

出力例

/usr/share/fonts/X11/100dpi/helvB18.pcf.gz: Helvetica:style=Bold
/usr/share/fonts/X11/75dpi/timB12.pcf.gz: Times:style=Bold
/usr/share/fonts/noto/NotoSerifMyanmar-ExtraCondensedMedium.ttf: Noto Serif Myanmar ExtraCondensed,Noto Serif Myanmar ExtraCondensed Medium:style=Medium,Regular
/usr/share/fonts/SIL/Scheherazade-Regular.ttf: Scheherazade:style=Regular
/usr/share/fonts/noto/NotoSansEthiopic-ExtraLight.ttf: Noto Sans Ethiopic,Noto Sans Ethiopic ExtraLight:style=ExtraLight,Regular
/usr/share/fonts/noto/NotoSerif-Bold.ttf: Noto Serif,Noto Serif Bold:style=Bold,Regular

コンソール用のキーボードレイアウト設定を確認する

コンソール用のキーボードレイアウトの設定は採用しているinitや設定ツールによって異なります。

Debian系(Ubuntu,Linux Mint等) ではconsole-setupを導入することでコンソール画面とXorgサーバーでキーボードレイアウトを統一的に設定できるようになっています。キーボードに関する設定ファイルは/etc/default/keyboadにあります。

cat /etc/default/keyboad

Systemdを採用している場合(Archなど)

localectl status

出力例

System Locale: LANG=en_US.UTF-8
    VC Keymap: jp106
   X11 Layout: jp
    X11 Model: jp106
  X11 Options: terminate:ctrl_alt_bksp

コンソール画面のキーレイアウトを設定するファイルが/etc/vconsole.confにあることから、このファイルを出力しても確認できます。

cat /etc/vconsole.conf

Open RCを採用している場合(Gentooなど)

OpenRCを採用しているGentooの場合はOpenRCの設定ファイルである/etc/conf.d/keymapsに設定があります。

cat /etc/conf.d/keymaps

システムが管理しているサービスを一覧で見たい

initシステム関連についてです。設定や情報を見るコマンドは色々ありますが、今回は各サービスの一覧を取得するコマンドを取り上げることにします。主要なディストロがSystemdを採用したため、2014年に投稿された初稿から大幅に修正しました。

Systemd(Fedora,Ubuntu,Arch Linuxなど)

Systemdでサービス管理をしているディストリビューションではsystemctlコマンドを使用します。以下コマンドでサービスの一覧を見ることができます。

systemctl list-unit-files

Open RC(Gentoo linuxなど)

OpenRCをinitに採用しているディストリビューションの場合にはrc-statusコマンドを用いま--serviceまたは-sオプションをつけることで全てのサービスの状態を確認できます。

rc-status -s

runit (Void Linuxなど)

runitの場合は/etc/sv/ディレクトリ以下にあるスクリプトがrunitで管理できるサービスとなります。サービスを手動でアクティブにするには/var/serviceディレクトリ以下にシンボリックリンクします。

管理可能なサービスを出力するには以下のコマンドで出力します。

ls -l /etc/sv

現在アクティブなサービスの一覧を見るためには以下のコマンドを使用します。

ls -l /var/service

SysV系initを採用しているディストリビューション

SysV系のinitは過去にはDebianやRedHat系のディストリビューションで採用されていましたが、今や主要なディストリビューションの多くはSystemdに移行しており、このポストを執筆した2014年とは状況が大きく異なっています。以下の内容は古い情報を含んでいる可能性があります。ご了承ください。

Debian系の場合はsysv-rc-confコマンドを使用します。デフォルトでは入っていない可能性があるのでリポジトリから探してください。

sysv-rc-conf --list

RedHat系の場合はchkconfigコマンドが使用できるようになっています。

chkconfig --list

まとめ

普段筆者が設定を確認したいと思うときによく使うコマンドを列挙してみました。記事を書きながら改めてディストロやバージョン毎に設定ファイルの置き場所やコマンドが異なっている現状に複雑な思いを抱きました。これらの複雑な現状はLinuxの自由さと多様性を象徴していますが、同時にユーザーにとっては使えるツールやコマンドがコロコロと変化してしまい「覚えたことが生かせないシステム」という印象を強く植え付ける結果を招いてしまいます。統一性か多様性か・・・その狭間で揺れながらこれからもオープンソースOSは進化していくのでしょう。