(2024年更新)Linuxのシステムやハードウェア情報を取得するコマンドを集めてみた
2014-09-09
2024-10-30
こんにちは。今回は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は進化していくのでしょう。