LinuxでPCのスペックを調べるための諸コマンド

## 概要

PCのスペックを確認するためのシェルスクリプトをいくつか紹介します。これらのスクリプトを使うと、CPUやメモリ、ディスク、GPU、OSの情報などを簡単に確認できます。

### 1. 🖥 CPU情報の確認
CPUのモデルやコア数、クロック速度などの情報を表示するスクリプトです。

```bash
#!/bin/bash
lscpu
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253735/f97b375b-1051-ba87-a2d8-b72bd1d6b515.png)



### 2. 💾 メモリ情報の確認
物理メモリやスワップメモリの使用状況を表示するスクリプトです。

```bash
#!/bin/bash
free -h
```

```bash
               total        used        free      shared  buff/cache   available
Mem:            46Gi       7.3Gi       1.4Gi       1.0Mi        38Gi        38Gi
Swap:          2.0Gi       207Mi       1.8Gi
```


### 3. 📀 ディスク情報の確認
ディスクの使用状況やマウントされているディスクの情報を表示するスクリプトです。

```bash
#!/bin/bash
echo "Disk Information:"
df -h
```

```bash
kawai@lm:~$ df -h
Filesystem                Size  Used Avail Use% Mounted on
tmpfs                     4.7G  2.3M  4.7G   1% /run
/dev/sda2                 234G  210G   12G  95% /
tmpfs                      24G     0   24G   0% /dev/shm
tmpfs                     5.0M  4.0K  5.0M   1% /run/lock
efivarfs                  246K  126K  116K  52% /sys/firmware/efi/efivars
/dev/sda1                 508M   64M  445M  13% /boot/efi
/dev/nvme0n1              3.6T  3.0T  497G  86% /mnt
tmpfs                     4.7G   84K  4.7G   1% /run/user/127
tmpfs                     4.7G   72K  4.7G   1% /run/user/1001
```


### 4. 🖥 GPU情報の確認
NVIDIAのGPUを利用している場合、`nvidia-smi`コマンドを使用してGPUの情報を表示します。


Driverが入っていない場合は、
```
lspci | grep -i nvidia
```

```bash
lspci | grep -i nvidia
21:00.0 VGA compatible controller: NVIDIA Corporation TU104GL [Quadro RTX 4000] (rev a1)
21:00.1 Audio device: NVIDIA Corporation TU104 HD Audio Controller (rev a1)
21:00.2 USB controller: NVIDIA Corporation TU104 USB 3.1 Host Controller (rev a1)
21:00.3 Serial bus controller: NVIDIA Corporation TU104 USB Type-C UCSI Controller (rev a1)

```

Driverが入っている場合は、
```bash
#!/bin/bash
nvidia-smi
```

### 5. 🗃 OS情報の確認
Linuxディストリビューションやカーネルバージョンの情報を表示するスクリプトです。

```bash
#!/bin/bash
cat /etc/os-release
```

```bash
PRETTY_NAME="Ubuntu 22.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.4 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
```


### 6. 🔧 システム全体の情報を表示
`inxi`コマンドを使ってシステム全体の情報を取得することも可能です。`inxi`がインストールされていない場合はインストールが必要です。

```bash
#!/bin/bash
# inxiをインストール（Debian/Ubuntuベースの場合）
# sudo apt install inxi
echo "System Information:"
inxi -Fxz
```

```bash
System:
  Kernel: 6.5.0-45-generic x86_64 bits: 64 compiler: N/A Console: pty pts/1
    Distro: Ubuntu 22.04.4 LTS (Jammy Jellyfish)
Machine:
  Type: Desktop System: HP product: HP Z4 G4 Workstation v: N/A serial: <superuser required>
  Mobo: HP model: 81C5 v: MVB serial: <superuser required> UEFI: HP v: P61 v02.67
    date: 02/08/2021
CPU:
  Info: quad core model: Intel Xeon W-2123 bits: 64 type: MT MCP arch: Skylake rev: 4 cache:
    L1: 256 KiB L2: 4 MiB L3: 8.2 MiB
  Speed (MHz): avg: 1531 high: 3847 min/max: 1200/3900 cores: 1: 1200 2: 1201 3: 1200 4: 3847
    5: 1200 6: 1200 7: 1200 8: 1200 bogomips: 57600
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3
Graphics:
  Device-1: NVIDIA TU104GL [Quadro RTX 4000] vendor: Hewlett-Packard driver: nvidia v: 545.23.08
    bus-ID: 21:00.0
  Display: server: X.org v: 1.21.1.4 with: Xwayland v: 22.1.1 driver: X: loaded: nvidia
    gpu: nvidia tty: 152x70
  Message: GL data unavailable in console. Try -G --display
Audio:
  Device-1: NVIDIA TU104 HD Audio vendor: Hewlett-Packard driver: snd_hda_intel v: kernel
    bus-ID: 21:00.1
  Sound Server-1: ALSA v: k6.5.0-45-generic running: yes
  Sound Server-2: PulseAudio v: 15.99.1 running: yes
  Sound Server-3: PipeWire v: 0.3.48 running: yes
Network:
  Device-1: Intel Ethernet I219-LM vendor: Hewlett-Packard driver: e1000e v: kernel port: N/A
    bus-ID: 00:1f.6
  IF: eno1 state: up speed: 1000 Mbps duplex: full mac: <filter>
  IF-ID-1: br-0244ac0b5479 state: up speed: 10000 Mbps duplex: unknown mac: <filter>
  IF-ID-2: br-1e4568c3a481 state: up speed: 10000 Mbps duplex: unknown mac: <filter>
  IF-ID-3: docker0 state: down mac: <filter>
  IF-ID-4: veth2ca6592 state: up speed: 10000 Mbps duplex: full mac: <filter>
  IF-ID-5: vethbf12ab1 state: up speed: 10000 Mbps duplex: full mac: <filter>
RAID:
  Hardware-1: Intel C600/X79 series SATA RAID Controller driver: ahci v: 3.0 bus-ID: 00:17.0
Drives:
  Local Storage: total: 5.69 TiB used: 4.56 TiB (80.1%)
  ID-1: /dev/nvme0n1 vendor: Crucial model: CT4000P3SSD8 size: 3.64 TiB temp: 32.9 C
  ID-2: /dev/nvme1n1 vendor: Samsung model: SSD 980 PRO 2TB size: 1.82 TiB temp: 32.9 C
  ID-3: /dev/sda vendor: Micron model: MTFDDAK256TDL-1AW1ZABHA size: 238.47 GiB
Partition:
  ID-1: / size: 233.18 GiB used: 208.35 GiB (89.4%) fs: ext4 dev: /dev/sda2
  ID-2: /boot/efi size: 508 MiB used: 63.5 MiB (12.5%) fs: vfat dev: /dev/sda1
Swap:
  ID-1: swap-1 type: file size: 2 GiB used: 206.3 MiB (10.1%) file: /swapfile
Sensors:
  System Temperatures: cpu: 34.0 C mobo: N/A gpu: nvidia temp: 34 C
  Fan Speeds (RPM): N/A
Info:
  Processes: 923 Uptime: 26d 50m Memory: 46.77 GiB used: 8.09 GiB (17.3%) Init: systemd
  Compilers: gcc: 11.4.0 Packages: 1948 Shell: Bash v: 5.1.16 inxi: 3.3.13
```


### 7. 🔍 ネットワーク情報の確認
ネットワークインターフェースの情報を確認するスクリプトです。

```bash
#!/bin/bash
ip addr
```

### 8. 📊 CPU負荷やメモリ使用状況のリアルタイム表示
`top` コマンドを使ってリアルタイムでシステムの状態を確認できますが、スクリプトで1回だけの結果を取得する場合は以下のようにします。

```bash
#!/bin/bash
uptime
```

```bash
 12:22:27 up 26 days, 51 min,  2 users,  load average: 0.31, 0.26, 0.21
```

```bash
top
```

```
top - 12:22:56 up 26 days, 51 min,  2 users,  load average: 0.24, 0.25, 0.21
Tasks: 932 total,   1 running, 930 sleeping,   0 stopped,   1 zombie
%Cpu(s):  0.7 us,  1.4 sy,  0.0 ni, 97.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  47891.0 total,   1048.8 free,   7715.4 used,  39126.8 buff/cache
MiB Swap:   2048.0 total,   1841.7 free,    206.3 used.  39527.2 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                         
2094174 root      20   0   43.7g 774972  54912 S   6.2   1.6   5:40.68 node                                                                            
2224545 root      20   0 1024124  43568  35840 S   1.3   0.1   0:00.12 node                                                                            
2224699 kawai     20   0   15080   4992   3328 R   1.0   0.0   0:00.09 top                                                                             
    381 root      20   0  295172   4572   3840 S   0.7   0.0 255:15.85 plymouthd                                                                       
2098919 kawai     20   0 1921216  26420  18432 S   0.3   0.1   0:00.28 docker                                                                          
2101725 kawai     20   0 1994948  26860  18816 S   0.3   0.1   0:00.27 docker                                                                          
2143951 root      20   0       0      0      0 I   0.3   0.0   0:00.22 kworker/6:1-events                                                              
2171557 kawai     20   0 2069192  26596  18176 S   0.3   0.1   0:00.14 docker                                                                          
2174235 kawai     20   0 2068936  26216  18176 S   0.3   0.1   0:00.14 docker                                                                          
2176888 kawai     20   0 2143180  25964  18048 S   0.3   0.1   0:00.12 docker                                                                          
2223876 root      20   0    2628   1536   1536 S   0.3   0.0   0:00.08 sh                                                                              
2224239 root      20   0    2628   1536   1536 S   0.3   0.0   0:00.06 sh                                                                              
      1 root      20   0  168236  11100   6364 S   0.0   0.0   8:07.57 systemd                                                                         
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.33 kthreadd                                                                        
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp                                                                          
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp                                                                      
      5 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 slub_flushwq                                               
```

これらのスクリプトを使って、PCのスペックやシステム状況を簡単に確認することができます。初めてアクセスするワークステーションの場合、上記を実行すれば大体確認できると思われます。