Linuxコマンド リンク集 

# はじめに

本投稿は、よく調べるLinuxコマンドを解説しているページのリンクを貼り、さらにその中でよく使うオプション例をメモ書きしておくものです。

逐次、追記していきます

# 1. ファイル操作関連

記述コマンド
1.1 rm
1.2 mv
1.3 cp
1.4 touch
1.5 mkdir
1.6 file
---

<details>

## 1.1 rmコマンド（削除）

<details><summary>リンク</summary>

- [【 rm 】コマンド――ファイルを削除する](https://atmarkit.itmedia.co.jp/ait/articles/1606/06/news013.html)

</details>

|オプション|説明|
|---|---|
|-r|中身も含めてディレクトリ削除|
|-w|実行経過表示|
|-f|強制実行|
|-i|削除確認あり|

## 1.2 mvコマンド（名前変更/移動）

<details><summary>リンク</summary>

- [【 mv 】コマンド――ファイルやディレクトリを移動する／名前を変更する](https://atmarkit.itmedia.co.jp/ait/articles/1606/13/news024.html)
- 
</details>

### 書式
```sh
mv 移動元 移動先
```

|オプション|説明|
|---|---|
|-f|強制上書き|
|-i|上書き確認あり|
|-b|上書きバックアップ指定|
|-n|上書き禁止|
|-w|詳細情報表示|

## 1.3 cpコマンド（複製）

<details><summary>リンク</summary>

- [【 cp 】コマンド――ファイルをコピーする](https://atmarkit.itmedia.co.jp/ait/articles/1605/31/news019.html)

</details>

### 書式
```sh
cp コピー元 コピー先
```

|オプション|説明|
|---|---|
|-v|実行内容表示|
|-n|上書き禁止|
|-f|強制上書き|
|-b|上書きバックアップ指定|
|-i|上書き確認あり|
|-r|ディレクトリコピー|
|-p|パーミッションと所有者とタイムスタンプを保持する|

## 1.4 touchコマンド（複製）

<details><summary>リンク</summary>

- [【 touch 】コマンド――タイムスタンプを変更する／新規ファイルを作成する](https://atmarkit.itmedia.co.jp/ait/articles/1606/14/news013.html)

</details>

### 書式
```sh
touch ファイルパス
```

オプションなしの場合、空ファイルを作成できる。

|オプション|説明|
|---|---|
|-t|タイムスタンプ更新 CCYYMMDDhhmmss|
|-c|ファイルを作らない|
|-m|ctimeのみ変更|
|-r|指定したファイルのタイムスタンプに合わせる|

## 1.5 mkdirコマンド（ディレクトリの作成）

<details><summary>リンク</summary>

- [【 mkdir 】コマンド／【 rmdir 】コマンド――ディレクトリを作成する／削除する](https://atmarkit.itmedia.co.jp/ait/articles/1606/07/news015.html)

</details>

### 書式
```sh
mkdir ディレクトリパス
```

|オプション|説明|
|---|---|
|-m|パーミッション指定|
|-p|階層通り作成|
|-v|経過表示|

## 1.6 fileコマンド（ファイルの確認）

<details><summary>リンク</summary>

- [【 file 】コマンド――ファイル形式を確認する](https://atmarkit.itmedia.co.jp/ait/articles/1605/10/news018.html)

</details>

### 書式
```sh
file ファイルパス
```

|オプション|説明|
|---|---|
|-z|圧縮ファイルの中身も検査|
|-L|シンボリックリンクの参照先|
|-f|ファイルリストから読み込む|

</details>

# 2. パフォーマンス測定

参考記事：[Linuxパフォーマンス調査などで使うコマンドメモ](https://qiita.com/toshihirock/items/0e0b20064730469e93e6)

記述コマンド
2.1 ps
2.2 top
2.3 vmstat
2.4 iostat
2.5 vnstat
---

<details>

## 2.1 PSコマンド(プロセス情報)

<details><summary>リンク</summary>

- [【 ps 】コマンド――実行中のプロセスを一覧表示する](https://atmarkit.itmedia.co.jp/ait/articles/1603/28/news022.html)
- [psコマンドについて詳しくまとめました 【Linuxコマンド集】](https://eng-entrance.com/linux-command-ps)
- [わかりづらいLinux psオプションシリーズまとめ](https://qiita.com/triple321jhango/items/f521eb0f07b7b16faa80)

</details>

### PSコマンドのよく使うオプション例
``` sh
$ ps aux
```
``` sh
#ps aux --sort pid
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.2  0.2 165200 10148 ?        Ss   09:25   0:04 /sbin/init #and-04/29/2024
root           2  0.0  0.0      0     0 ?        S    09:25   0:00 [kthreadd]
root           3  0.0  0.0      0     0 ?        I<   09:25   0:00 [rcu_gp]
root           4  0.0  0.0      0     0 ?        I<   09:25   0:00 [rcu_par_gp]
root           7  0.0  0.0      0     0 ?        I    09:25   0:01 [kworker/u8:0-events_power_efficient]
...
```
<details><summary>表記説明</summary>

#### 表記内容
|項目|説明|
|:---:|:---:|
|VSZ|仮想メモリサイズ|
|RSS|物理メモリサイズ|
|STAT|プロセスの状態|

#### STAT
|項目|説明|
|:---:|:---:|
|R|実行可能|
|S|割り込み可能Wait|
|D|Disk I/O待ち|
|Z|ゾンビプロセス|
|+|フォアグランド|
|s|セッションリーダー|
|<|優先度：高|
|N|優先度：低|
|l|マルチスレッド|

#### セッションリーダー
- [セキュリティ警告と監視の一環としてのLinuxプロセスとセッションモデル](https://www.elastic.co/jp/blog/linux-process-and-session-model-as-part-of-security-alerting-and-monitoring)
- [プロセスグループ](https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97)

</details>

## 2.2 topコマンド(CPU利用率のモニタ)

一定間隔でリアルタイムに情報を表示更新していくコマンド
Ctrl＋Cもしくはqで中断させるまで動作する。

<details><summary>リンク</summary>

- [【 top 】コマンド――実行中のプロセスをリアルタイムで表示する](https://atmarkit.itmedia.co.jp/ait/articles/1706/30/news018.html)

</details>

### 書式
```sh
top
```

|オプション|説明|
|---|---|
|-d|更新間隔 秒数で指定[ss.tt]|
|-n|表示を繰り返す回数|
|-p|PID指定(複数指定可能)|
|-i|何もしていないアイドルプロセスを表示/非表示（起動後は[i]で切替）|
|-S|累積時間モード（起動後は[S]で切替）|
|-o|出力表示項目の指定(-Oで指定可能項目表示)|

### topコマンドのよく使うオプション例
``` sh
$ top -i
```

```sh
top - 11:14:50 up  1:49,  2 users,  load average: 0.28, 0.26, 0.21
Tasks: 205 total,   1 running, 204 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.7 us,  1.4 sy,  0.0 ni, 96.5 id,  0.0 wa,  0.0 hi,  0.4 si,  0.0 st
MiB Mem :   3900.0 total,   2804.3 free,    681.1 used,    414.6 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   3154.3 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
   1981 root      20   0  315276  76064  10576 S   5.6   1.9   6:21.40 python3
   1627 redis     20   0   62088   6312   3828 S   2.6   0.2   2:46.64 redis-server
   1882 root      20   0   90144  74964  12996 S   1.0   1.9   1:36.32 python3
   2416 root      20   0       0      0      0 I   1.0   0.0   0:10.88 kworker/1:2-events
   2512 root      20   0    9036   3316   2552 R   1.0   0.1   0:00.12 top
     12 root      20   0       0      0      0 I   0.3   0.0   0:17.40 rcu_sched
     22 root      20   0       0      0      0 S   0.3   0.0   0:02.24 ksoftirqd/2
   1163 root      20   0   22700   6516   5696 S   0.3   0.2   0:01.07 systemd-logind
   1767 lightdm   20   0 1370268  90168  57216 S   0.3   2.3   0:11.91 lightdm-gtk-gre
   1881 root      20   0  308184  72440  17432 S   0.3   1.8   0:25.90 daphne
   1985 root      20   0  387576  74808  10564 S   0.3   1.9   0:03.93 python3
   2320 root      20   0       0      0      0 I   0.3   0.0   0:02.71 kworker/u8:1-devfreq_wq
   2441 root      20   0       0      0      0 I   0.3   0.0   0:01.33 kworker/3:1-events
```

<details><summary>表示内容</summary>

```
top - 11:14:50 up  1:49,  2 users,  load average: 0.28, 0.26, 0.21
```
top - 現在時刻 up 稼働時間, ログインユーザー数, ロードアベレージ: １分間、５分間、15分間

ロードアベレージ:平均的にどれだけプロセスが実行待ちになっているか
[LoadAverage(ロードアベレージ)とは一体何者？](https://qiita.com/Takao_/items/8cce7118b020e80750d4)

```
Tasks: 205 total,   1 running, 204 sleeping,   0 stopped,   0 zombie
```
Tasks: タスクの合計数, 稼働中タスク, 待機中タスク, 停止中タスク, ゾンビタスク

```
%Cpu(s):  1.7 us,  1.4 sy,  0.0 ni, 96.5 id,  0.0 wa,  0.0 hi,  0.4 si,  0.0 st
```
CPU状態の割合
|表記|説明|
|---|---|
|us|ユーザープロセス使用時間|
|sy|システムプロセス使用時間|
|ni|実行優先度を変更したユーザープロセス使用時間|
|id|アイドル状態時間|
|wa|I/O待機時間|
|hi|ハードウェア割り込み要求時間|
|si|ソフトウェア割り込み要求時間|
|st|OS仮想化時に他の仮想CPUで待たされた時間|

```
MiB Mem :   3900.0 total,   2804.3 free,    681.1 used,    414.6 buff/cache
```
メモリ使用量
|表記|説明|
|---|---|
|total|メモリ合計容量|
|free|未使用メモリ容量|
|used|使用中メモリ容量|
|buff/cache|バッファキャッシュ/ページキャッシュに割り当てられたメモリ|

```
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   3154.3 avail Mem
```
スワップ領域：この領域をどんどん使用していく状態だと遅くなる。
|表記|説明|
|---|---|
|total|合計容量|
|free|未使用容量|
|used|使用中容量|
|avail Mem|スワップせずに使えるメモリ容量|

```
    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
   1981 root      20   0  315276  76064  10576 S   5.6   1.9   6:21.40 python3
```
|表記|説明|
|---|---|
|PR|プロセスの静的優先度|
|NI|プロセスの相待優先度|
|VIRT|仮想メモリサイズ|
|RES|使用中の物理メモリサイズ|
|SHR|使用中の共有メモリサイズ|
|S|プロセス状態　R:実行中、S：スリープ中、I：アイドル、T：停止中、Z：ゾンビ|
|%CPU|CPU使用率|
|%MEM|物理メモリ使用率|
|+TIME|CPU使用時間|

</details>

## 2.3 vmstatコマンド(統計情報を表示)

仮想メモリやCPU、ディスクI/Oの統計情報を表示するコマンド

<details><summary>リンク</summary>

- [【 vmstat 】コマンド――仮想メモリやディスクI/Oの統計情報を表示する](https://atmarkit.itmedia.co.jp/ait/articles/1707/13/news015.html)

</details>

### 書式
```sh
vmstat
```
### vmstatコマンドのよく使うオプション例

#### 統計情報
``` sh
$ vmstat
```
```
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 2823128  47768 425696    0    0     8     1  115  143  2  1 97  0  0
```
<details>
<summary>表示内容</summary>


##### procs
|表記|説明|
|---|---|
|r|実行中と実行待ち中のプロセス数の合計|
|b|割り込み不可能なスリープ状態にあるプロセス数|

##### memory
|表記|説明|
|---|---|
|swpd|仮想メモリ量|
|free|未使用メモリ量|
|buff|バッファメモリ量|
|cache|キャッシュメモリ量|

##### swap
|表記|説明|
|---|---|
|si|スワップインしているメモリ量|
|so|スワップアウトしている量|

##### io
|表記|説明|
|---|---|
|bi|I/Oから受け取ったブロック数|
|bo|I/Oに送ったブロック数

##### system
|表記|説明|
|---|---|
|in|1秒当たりの割り込み回数|
|cs|コンテクストスイッチの回数|

##### cpu
|表記|説明|
|---|---|
|us|カーネルコード以外の実行時間|
|sy|カーネルコードの実行に使用した時間|
|id|アイドル時間|
|wa|I/O待ち時間|
|st|仮想環境実行時にCPUから割り当てられなかった時間|


</details>

#### メモリ統計情報

``` sh
$ vmstat -s
```
メモリ統計情報が表示される。
```
      3993592 K total memory
       697700 K used memory
       115520 K active memory
       906944 K inactive memory
      2822300 K free memory
        47880 K buffer memory
       425712 K swap cache
            0 K total swap
            0 K used swap
            0 K free swap
       103545 non-nice user cpu ticks
            0 nice user cpu ticks
        60606 system cpu ticks
      5006713 idle cpu ticks
          661 IO-wait cpu ticks
            0 IRQ cpu ticks
        16474 softirq cpu ticks
            0 stolen cpu ticks
       387368 pages paged in
        69032 pages paged out
            0 pages swapped in
            0 pages swapped out
      5968050 interrupts
      7416378 CPU context switches
   1739924720 boot time
         2937 forks
```

#### ディスクI/O統計情報

``` sh
$ vmstat -d 1 10
```
1:１秒間隔
10：１０回表示

```
disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
ram0       0      0       0       0      0      0       0       0      0      0
loop0      0      0       0       0      0      0       0       0      0      0
loop1      0      0       0       0      0      0       0       0      0      0
loop2      0      0       0       0      0      0       0       0      0      0
loop3      0      0       0       0      0      0       0       0      0      0
loop4      0      0       0       0      0      0       0       0      0      0
loop5      0      0       0       0      0      0       0       0      0      0
loop6      0      0       0       0      0      0       0       0      0      0
loop7      0      0       0       0      0      0       0       0      0      0
zram0      0      0       0       0      0      0       0       0      0      0
mmcblk0   9866   4896  774264    8405   8810   5136  138192   34774      0     35
mmcblk0boot1     29      0     232      85      0      0       0       0      0      0
mmcblk0boot0     29      0     232      72      0      0       0       0      0      0
```

## 2.4 iostatコマンド(CPUとI/O使用率を表示)

CPUの使用率とI/Oデバイスの使用状況を表示するコマンド

<details><summary>リンク</summary>

- [【 iostat 】コマンド――I/Oデバイスの使用状況を表示する](https://atmarkit.itmedia.co.jp/ait/articles/1707/20/news021.html)

</details>

### 書式
```sh
iostat
```
### iostatコマンドのよく使うオプション例

```sh
iostat
```
```sh
Linux 5.10.198 (linaro-alip)    02/19/25        _aarch64_       (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.99    0.00    1.50    0.01    0.00   96.49

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
mmcblk0           1.38        28.02         5.22         0.00     387192      72080          0
mmcblk0boot0      0.00         0.01         0.00         0.00        116          0          0
mmcblk0boot1      0.00         0.01         0.00         0.00        116          0          0

```

avg-cpuはCPU使用率を表す。
Device項目
tps:1秒当たりのI/Oリクエスト数



## 2.5 vnstatコマンド(ネットワークtrafficモニタ)

ネットワークトラフィックの統計情報を表示するコマンド

<details><summary>リンク</summary>

- [vnstatで手軽にtrafiicをモニタリング](https://qiita.com/kooohei/items/d4b29be4541cec5018c6)

</details>

### 書式
```sh
vnstat
```
### vnstatコマンドのよく使うオプション例

```sh
vnstat
```

```
                      rx      /      tx      /     total    /   estimated
 can0: Not enough data available yet.
 dummy0: Not enough data available yet.
 eth0:
       2025-02      1.42 MiB  /    2.66 MiB  /    4.08 MiB  /    2.31 MiB
         today      1.42 MiB  /    2.66 MiB  /    4.08 MiB  /    7.16 MiB

 eth1:
       2025-02     36.54 KiB  /        62 B  /   36.60 KiB  /     --
         today     36.54 KiB  /        62 B  /   36.60 KiB  /      63 KiB```

</details>