Linuxコマンド一覧(全280コマンド・実行例つき)
初級・中級・上級の全43章で登場する主なLinuxコマンドを、カテゴリ別にまとめた一覧です(全280コマンド)。コマンド名をクリックすると実行例と結果がその場で開きます。詳しい説明や実行例は「関連する章」のページを参照してください。
Linuxのコマンドは、オプションの意味まで一度にすべて暗記しようとすると挫折しやすいものです。このコマンド集では、各コマンドに最低1つの実行例と、そのコマンドが実際にどの章のどんな場面で登場するかという文脈をあわせて掲載しています。コマンド名とオプションを並べただけの早見表とは違い、「なぜそのオプションを使うのか」という理由を、本編の解説と行き来しながら確認できるようにしているのが特徴です。
同じ目的のために複数のコマンドが存在する場合(プロセスを確認するps・top・pgrepなど、ファイルを検索するfind・grep・locateなどが代表例です)は、それぞれの使い分けが分かるよう、関連するコマンドを同じカテゴリにまとめています。コマンド名を1つずつ丸暗記するのではなく、カテゴリ単位で「どんな場面でどのコマンドを選ぶか」を意識しながら眺めると、実務でも資格試験でも応用が利く理解につながります。
ファイル・ディレクトリ操作
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| -L 論理パスを表示(既定) / -P シンボリックリンクを解決した物理パスを表示 | 現在のディレクトリの絶対パスを表示する | 初級 第3章 | |
user@linux-study:~$ pwd /home/user pwdを実行すると、現在いるディレクトリの絶対パス(ここでは/home/user)がそのまま表示されます。相対パスでの移動を繰り返した後などに、迷子になっていないか確認するために使います。 |
|||
| -l 詳細表示 / -a 隠しファイルも表示 / -A .と..を除く隠しファイル表示 / -h サイズを読みやすく / -t 更新日時順 / -r 逆順 / -R 再帰的に表示 / -S サイズ順 / -1 1行に1件表示 / -d ディレクトリ自身の情報を表示 / -i inode番号を表示 / -F 種別記号を付与 | ディレクトリの中身を一覧表示する | 初級 第3章 | |
user@linux-study:~$ ls -l -rw-r--r-- 1 user user 220 Jan 10 09:00 notes.txt drwxr-xr-x 2 user user 4096 Jan 10 09:01 projects ls -lで詳細表示すると、権限・所有者・サイズ・更新日時・名前の順に並びます。先頭の-はファイル、dはディレクトリを表し、この例ではnotes.txtがファイル、projectsがディレクトリだとわかります。 |
|||
| パス省略でホームへ / cd - で直前のディレクトリへ戻る / cd .. で1つ上の階層へ / -L シンボリックリンクを解決しない(既定) / -P シンボリックリンクを実体パスに解決 | ディレクトリを移動する | 初級 第3章 | |
user@linux-study:~$ cd projects user@linux-study:~/projects$ cd - user@linux-study:~$ cd projectsでprojectsディレクトリに移動し、cd -で直前にいたディレクトリ(ここではホームディレクトリ)に一瞬で戻っています。プロンプトの表示(~から~/projectsへの変化)で今どこにいるかが確認できます。 |
|||
| -p 親ディレクトリごと作成 / -v 作成したことを表示 / -m 作成時のパーミッションを指定 | ディレクトリを作成する | 初級 第3章 | |
user@linux-study:~$ mkdir -p work/reports user@linux-study:~$ ls work reports mkdir -pを使うと、workディレクトリが存在しなくても、work・reportsという親子関係のディレクトリを一度にまとめて作成できます。-pなしだと親ディレクトリがない場合はエラーになります。 |
|||
| (空ディレクトリのみ削除) / -p 空の親ディレクトリもまとめて削除 / -v 削除したことを表示 / --ignore-fail-on-non-empty 空でなくてもエラーにしない | 空のディレクトリを削除する | 初級 第3章 | |
user@linux-study:~$ rmdir empty_dir user@linux-study:~$ ls (empty_dirが一覧から消える) rmdirは中身が空のディレクトリしか削除できません。empty_dirの中に何もファイルがなければ成功し、ls結果からempty_dirが消えます(中にファイルが残っているとエラーになります)。 |
|||
| -a アクセス日時のみ更新 / -m 更新日時のみ更新 / -t 日時を指定 / -c ファイルが無ければ作成しない / -r 他ファイルの日時を参照 | 空ファイルの作成・タイムスタンプ更新 | 初級 第4章 | |
user@linux-study:~$ touch memo.txt user@linux-study:~$ ls -l memo.txt -rw-r--r-- 1 user user 0 Jan 10 09:10 memo.txt touchで存在しないファイルを指定すると、中身が空(サイズ0)の新しいファイルが作成されます。すでに存在するファイルに対して実行すると、更新日時だけが現在時刻に更新されます。 |
|||
| -r ディレクトリごとコピー / -i 上書き確認 / -v 詳細表示 / -p 属性を保持 / -u 更新分のみコピー / -n 上書きしない / -f 強制上書き / -a 属性を保持し再帰的にコピー | ファイル・ディレクトリをコピーする | 初級 第4章 | |
user@linux-study:~$ cp -r projects projects_backup user@linux-study:~$ ls projects projects_backup cp -rでprojectsディレクトリを中身ごとprojects_backupという名前でコピーしています。-rを付けないとディレクトリはコピーできずエラーになります。 |
|||
| -i 上書き確認 / -v 詳細表示 / -f 確認なしで上書き / -n 上書きしない / -u 更新分のみ移動 | ファイルの移動・リネーム | 初級 第4章 | |
user@linux-study:~$ mv old.txt new.txt user@linux-study:~$ ls new.txt mvは同じディレクトリ内で使うと「リネーム」として働きます。old.txtという名前がnew.txtに変わり、元のold.txtは残りません(コピーではなく移動のため)。 |
|||
| -r ディレクトリごと削除 / -f 確認なしで強制削除 / -i 1件ずつ確認 / -I まとめて1回だけ確認 / -v 詳細表示 / -d 空のディレクトリも削除 | ファイル・ディレクトリを削除する | 初級 第4章 | |
user@linux-study:~$ rm -r old_folder user@linux-study:~$ ls (old_folderが一覧から消える) rm -rでold_folderを中身ごと削除しています。-rを付けないとディレクトリは削除できずエラーになるので注意してください。一度削除すると元には戻せません。 |
|||
| -s シンボリックリンクを作成(省略時はハードリンク) / -f 既存ファイルを上書き / -v 詳細表示 | ファイルにリンクを作成する | 中級 第11章 | |
user@linux-study:~$ ln -s /var/log/syslog syslog-link user@linux-study:~$ ls -l syslog-link lrwxrwxrwx 1 user user 15 Jan 10 09:20 syslog-link -> /var/log/syslog ln -sで/var/log/syslogへのシンボリックリンク(ショートカットのようなもの)を作成しています。ls -lの出力にある「->」がリンク先を指し示していることを表します。 |
|||
| -name 名前で検索 / -iname 大文字小文字を無視して検索 / -type f・d 種別 / -mtime 更新日数 / -size サイズ / -perm パーミッション / -user 所有者で検索 / -exec 見つけたファイルにコマンドを実行 / -delete 見つけたファイルを削除 / -maxdepth 探索する階層の深さを指定 | 条件を指定してファイルを検索する | 中級 第8章 | |
user@linux-study:~$ find . -name "*.log" ./var/log/app.log ./backup/old.log find . -name "*.log"で、現在のディレクトリ以下(.)を再帰的に探索し、拡張子が.logのファイルをすべて見つけています。サブディレクトリの中にあるファイルも探し出せるのが特徴です。 |
|||
| (事前にupdatedbで作成したDBを検索) / -i 大文字小文字を無視 / -c 件数のみ表示 / -l 表示件数を制限 / -r 正規表現で検索 | ファイル名で高速に検索する | 中級 第8章 | |
user@linux-study:~$ locate httpd.conf /etc/httpd/conf/httpd.conf locateはfindと違い、事前に作成されたデータベースを検索するため、ファイルシステム全体を探すより高速に結果が返ってきます。ただし新しく作られたファイルはデータベース更新(updatedb)まで見つからないことがあります。 |
|||
テキスト表示・処理
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| -n 行番号を表示 / -b 空行以外に行番号 / -s 連続空行をまとめる / -A 制御文字も可視化 / -E 行末に$を表示 | ファイルの中身を表示・連結する | 初級 第5章 | |
user@linux-study:~$ cat notes.txt 買い物リスト 牛乳 パン catにファイル名を渡すと、そのファイルの中身をそのままターミナルに出力します。複数のファイルを指定すると、それらを連結して表示することもできます。 |
|||
| スペース: 次画面 / b: 前画面 / /語: 検索 / q: 終了 / -N 行番号を表示 / -S 折り返さず表示 / -i 検索時に大文字小文字を無視 | 長いファイルをページ送りで閲覧する | 初級 第5章 | |
user@linux-study:~$ less notes.txt (1画面ずつ表示され、qキーで終了) lessは長いファイルの中身を1画面ずつスクロールしながら閲覧できるコマンドです。catと違い一度に全部表示されないため、大きなログファイルの確認に向いています。 |
|||
| -n 行数 表示する行数を指定 / -c バイト数を指定 / -q 複数ファイルでもヘッダーを省略 / -v 複数ファイルでも常にヘッダーを表示 | ファイルの先頭を表示する | 初級 第5章 | |
user@linux-study:~$ head -n 2 access.log 192.168.1.10 - - [10/Jan/2026:09:00:00] "GET / HTTP/1.1" 200 192.168.1.11 - - [10/Jan/2026:09:00:05] "GET /about HTTP/1.1" 200 head -n 2で、access.logの先頭2行だけを表示しています。ログファイルの最初の方だけをざっと確認したいときに便利です。 |
|||
| -n 行数 表示する行数を指定 / -c バイト数を指定 / -f 追記をリアルタイム表示 / -F ファイルの入れ替わりにも追従 / -q 複数ファイルでもヘッダーを省略 | ファイルの末尾を表示する | 初級 第5章 | |
user@linux-study:~$ tail -n 2 access.log 192.168.1.20 - - [10/Jan/2026:10:00:00] "GET /login HTTP/1.1" 200 192.168.1.21 - - [10/Jan/2026:10:00:03] "GET / HTTP/1.1" 404 tail -n 2で、access.logの末尾2行だけを表示しています。ログの一番新しい記録を確認したいときによく使われ、-fを付けるとリアルタイムに追記を監視できます。 |
|||
| -i 大文字小文字を無視 / -v 一致しない行を表示 / -c 件数のみ / -n 行番号 / -r 再帰検索 / -l 一致したファイル名のみ表示 / -w 単語単位で一致 / -E 拡張正規表現を使用 / -o 一致部分のみ表示 / -A・-B・-C 前後の行も表示 | 文字列パターンで検索する | 初級 第5章 | |
user@linux-study:~$ grep -n "ERROR" app.log 15:2026-01-10 09:12:03 ERROR Connection timeout 42:2026-01-10 09:20:11 ERROR Disk full grep -nで、app.logの中から"ERROR"という文字列を含む行だけを抽出し、-nによって行番号(15行目・42行目)も一緒に表示しています。 |
|||
| -d 区切り文字 / -f 列番号 / -c 文字位置で切り出し / --complement 指定範囲以外を出力 | 指定した列を切り出す | 中級 第7章 | |
user@linux-study:~$ cut -d: -f1 /etc/passwd root daemon user cut -d: -f1で、/etc/passwdの各行を「:」区切りで分割し、1列目(ユーザー名)だけを取り出しています。 |
|||
| -r 逆順 / -n 数値として比較 / -u 重複を除去 / -k 列(キー)を指定 / -t 区切り文字を指定 / -f 大文字小文字を無視 / -h 人が読みやすい単位で比較 | 行を並び替える | 中級 第7章 | |
user@linux-study:~$ sort -n scores.txt 2 15 40 sort -nで、scores.txtの内容を文字列としてではなく数値として比較し、小さい順に並び替えています。-nを付けないと「10」が「2」より前に来てしまうことがあります。 |
|||
| -c 出現回数を表示 / -d 重複行のみ表示 / -u 重複のない行のみ表示 / -i 大文字小文字を無視 | 連続する重複行をまとめる | 中級 第7章 | |
user@linux-study:~$ sort access.log | uniq -c 3 192.168.1.10 1 192.168.1.11 sortしてからuniq -cにパイプで渡すことで、access.log内の重複するIPアドレスをまとめ、それぞれの出現回数を数えています。uniqは隣り合った行しか比較できないため、事前にsortしておく必要があります。 |
|||
| 文字集合Aを文字集合Bに変換 / -d 指定した文字を削除 / -s 連続する同じ文字をまとめる / -c 指定した文字集合以外を対象にする | 文字を置換・削除する | 中級 第7章 | |
user@linux-study:~$ echo "hello" | tr a-z A-Z HELLO echoで出力した"hello"をtr a-z A-Zにパイプで渡すことで、小文字を大文字に変換しています。 |
|||
| -l 行数 / -w 単語数 / -c 文字数(バイト) / -m 文字数(マルチバイト対応) / -L 最長行の長さ | 行数・単語数・文字数を数える | 中級 第7章 | |
user@linux-study:~$ wc -l notes.txt 12 notes.txt wc -lで、notes.txtの行数(12行)を数えています。-wで単語数、-cで文字数を数えることもできます。 |
|||
| s/対象/置換後/ 置換 / g 全置換 / -i ファイルを直接書き換え / -e 複数の編集コマンドを指定 / -n 明示的にpしない限り出力しない / d 該当行を削除 | ストリーム上でテキストを編集する | 中級 第7章 | |
user@linux-study:~$ sed 's/foo/bar/g' sample.txt bar bar bar sed 's/foo/bar/g'で、sample.txtの中の"foo"という文字列をすべて"bar"に置換した結果を表示しています。ファイル自体は変更されず、-iオプションを付けるとファイルを直接書き換えられます。 |
|||
| {print $1} 列を指定 / -F 区切り文字を指定 / BEGIN{...}・END{...} 処理前後に実行 / -v 変数に値を代入 | 列指向でテキストを処理する | 中級 第7章 | |
user@linux-study:~$ awk -F: '{print $1}' /etc/passwd
root
daemon
user
awk -F: '{print $1}'で、/etc/passwdを「:」区切りで分割し、各行の1列目(ユーザー名)だけを取り出して表示しています。cutと似ていますが、awkはより複雑な条件処理も可能です。 |
|||
| Ctrl+O 保存 / Ctrl+X 終了 / Ctrl+K 行削除 / Ctrl+W 検索 | 初心者向けのシンプルなターミナルエディタ | 初級 第5章・中級 第10章 | |
user@linux-study:~$ nano notes.txt (エディタ画面が開く。Ctrl+Oで保存、Ctrl+Xで終了) nanoでファイルを開くと、画面いっぱいにエディタが表示され、画面下部に常に主要なキー操作が表示されます。Ctrl+Oで保存、Ctrl+Xで終了するなど、直感的なキー操作で編集を行える点が特徴です。 |
|||
| i 挿入モードへ / Esc ノーマルモードへ戻る / :wq 保存して終了 / dd 行削除 / /語 検索 / :%s/対象/置換後/g 全置換 | モード切り替え式の高機能なターミナルエディタ | 初級 第5章・中級 第10章 | |
user@linux-study:~$ vi notes.txt (i で挿入モードに入り編集 → Esc → :wq で保存終了) viはnanoと違い、「編集するモード」と「コマンドを実行するモード」を明確に切り替えながら操作する独特の設計です。多くのLinuxサーバーに標準搭載されているため、他のエディタが使えない環境での必須スキルとされています。 |
|||
権限・所有者
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| 数値指定(例 755) / 記号指定(例 u+x・g-w・o=r) / -R 再帰的に変更 / -v 変更内容を表示 / 特殊ビット(4000 SUID・2000 SGID・1000 スティッキー) | ファイルのパーミッションを変更する | 初級 第6章・中級 第11章 | |
user@linux-study:~$ chmod 755 deploy.sh user@linux-study:~$ ls -l deploy.sh -rwxr-xr-x 1 user user 512 Jan 10 09:30 deploy.sh chmod 755で、所有者に読み書き実行(7)、グループとその他に読み取り実行(5)の権限を設定しています。ls -lの出力の-rwxr-xr-xという部分でこの権限が確認できます。 |
|||
| ユーザー名 / ユーザー名:グループ名 の形式で指定 / -R 再帰的に変更 / -v 変更内容を表示 | ファイルの所有者・所有グループを変更する | 初級 第6章 | |
user@linux-study:~$ sudo chown user:developers project/ user@linux-study:~$ ls -ld project drwxr-xr-x 2 user developers 4096 Jan 10 09:31 project sudo chown user:developersで、projectディレクトリの所有者をuser、所有グループをdevelopersに変更しています。所有者・グループの変更にはroot権限が必要なため、sudoを付けています。 |
|||
| グループ名 ファイル / -R 再帰的に変更 / -v 変更内容を表示 | 所有グループだけを変更する | 初級 第6章 | |
user@linux-study:~$ sudo chgrp developers project/ user@linux-study:~$ ls -ld project drwxr-xr-x 2 user developers 4096 Jan 10 09:31 project chownでも「chown :グループ名」の形式でグループだけを変更できますが、chgrpはグループ変更だけに特化した別のコマンドです。所有者は変えずグループだけを変更したい意図が名前からも明確になります。 |
|||
| 現在値の確認、または新規作成時の既定権限を設定 / -S 記号形式で表示 | 新規作成時に与えない権限を設定する | 中級 第11章 | |
user@linux-study:~$ umask 0022 umaskだけを実行すると、これから新しく作成するファイルやディレクトリに対して、デフォルトでどの権限を与えないかという現在の設定値が表示されます。 |
|||
| +i 変更不可(immutable)属性を付与 / -i 属性を解除 / +a 追記のみ許可 | ファイルの拡張属性(変更不可フラグ等)を設定する | 上級 第4章 | |
user@linux-study:~$ sudo chattr +i important.conf 通常のパーミッションとは別に、chattr +iを付けるとroot権限があってもファイルの変更・削除・リネームができなくなります。設定ファイルの誤削除・改ざん防止に使われる、通常のrwxより強力な保護です。 |
|||
| (オプションなしで現在の拡張属性を表示) / -a 隠しファイルも表示 | ファイルの拡張属性を確認する | 上級 第4章 | |
user@linux-study:~$ lsattr important.conf ----i---------e------- important.conf chattrが属性を「設定する」コマンドであるのに対し、lsattrは現在どんな拡張属性が付いているかを「確認する」ための対になったコマンドです。 |
|||
プロセス・ジョブ管理
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| aux 全プロセス詳細(BSD形式) / -ef 全プロセス詳細(UNIX形式、PPID付き) / -u ユーザー指定 / -o 表示項目を指定 / --sort=-%cpu ソート順を指定 | 実行中のプロセスを表示する | 初級 第7章・中級 第9章 | |
user@linux-study:~$ ps aux | head -3 USER PID %CPU %MEM COMMAND user 1023 0.1 0.5 nginx user 1050 0.0 0.3 bash ps auxで実行中の全プロセスを表示し、head -3にパイプで渡すことで先頭3行(ヘッダーと2つのプロセス)だけを表示しています。CPU・メモリ使用率やプロセス名が確認できます。 |
|||
| q: 終了 / M: メモリ使用率順 / P: CPU使用率順 / k: プロセスをkill / 1: CPUコアごとの使用率表示 | リアルタイムでプロセスを監視する(標準搭載の定番ツール) | 初級 第7章 | |
user@linux-study:~$ top (プロセス一覧がリアルタイムで更新表示される。qキーで終了) topを実行すると、CPUやメモリの使用率が高いプロセスから順にリアルタイムで更新表示される画面が開きます。qキーを押すと終了して元のプロンプトに戻ります。ほぼすべてのLinux環境に標準で入っています。 |
|||
| (矢印キーでプロセス選択) / F9 シグナル送信 / F6 ソート項目変更 / F4 プロセス名で絞り込み | カラフルなUIで見やすく強化されたプロセス監視ツール | 初級 第7章 | |
user@linux-study:~$ htop (CPUコアごとのゲージ・カラー表示付きのプロセス一覧が開く。F10かqで終了) topの上位互換にあたる別パッケージのツールで、CPUコアごとの使用率をゲージで表示したり、マウスやファンクションキーでプロセスを直接操作できたりと視認性・操作性が向上しています。標準では入っておらず、別途インストールが必要な環境もあります。 |
|||
| (既定でSIGTERM=15) / -9 SIGKILLで強制終了 / -1 SIGHUPで再読み込み要求 / -l 利用可能なシグナル一覧を表示 | プロセスにシグナルを送る | 初級 第7章 | |
user@linux-study:~$ kill -9 1050 user@linux-study:~$ ps aux | grep 1050 (プロセスが一覧から消える) kill -9 1050で、PID(プロセスID)が1050のプロセスに強制終了のシグナルを送っています。-9を付けない場合は穏やかな終了シグナル(SIGTERM)が送られます。 |
|||
| -l PIDも表示 / 末尾に&を付けてバックグラウンド実行 | 現在のシェルのバックグラウンドジョブを一覧表示する | 初級 第7章 | |
user@linux-study:~$ sleep 100 & [1] 2048 user@linux-study:~$ jobs [1]+ Running sleep 100 & sleep 100 &のように末尾に&を付けるとコマンドをバックグラウンドで実行できます。jobsコマンドで、現在バックグラウンドで動いているジョブの一覧([1]という番号付き)が確認できます。 |
|||
| %番号 指定したジョブをフォアグラウンドへ(省略時は直近のジョブ) | 停止中・バックグラウンドのジョブをフォアグラウンドに呼び戻す | 初級 第7章 | |
user@linux-study:~$ fg %1 sleep 100 (フォアグラウンドに戻り、Ctrl+Cで停止するかCtrl+Zで一時停止できる) fgはjobsで確認したジョブ番号(%1など)を指定してフォアグラウンドに呼び戻します。Ctrl+Zで一時停止したジョブを手元の操作に戻したいときに使います。 |
|||
| %番号 指定したジョブをバックグラウンドで再開(省略時は直近のジョブ) | 停止中のジョブをバックグラウンドで再開する | 初級 第7章 | |
user@linux-study:~$ bg %1 [1]+ sleep 100 & fgがフォアグラウンドに呼び戻すのに対し、bgはCtrl+Zで一時停止したジョブをバックグラウンドで動かし続けます。fgとbgは互いに逆方向の操作を行う対になったコマンドです。 |
|||
| -n 値 起動時の優先度を指定(範囲は-20〜19、数値が大きいほど低優先度) | 優先度を指定してプロセスを新規起動する | 中級 第9章 | |
user@linux-study:~$ nice -n 10 ./batch.sh (優先度を下げた状態でbatch.shが起動する) nice -n 10で、これから起動するbatch.shの優先度をあらかじめ下げています。バッチ処理のように急ぎでない重い処理を、他の対話的な処理の邪魔にならない優先度で走らせたいときに使います。 |
|||
| 値 -p PID を指定して実行中のプロセスの優先度を変更 | すでに実行中のプロセスの優先度を後から変更する | 中級 第9章 | |
user@linux-study:~$ renice 5 -p 2048 2048 (process ID) old priority 10, new priority 5 niceが起動時にしか優先度を指定できないのに対し、reniceはすでに動いているプロセス(PID指定)の優先度を後から変更できます。後になって重いことが分かったプロセスの優先度を下げたい場合などに使います。 |
|||
| (オプションなし) / -p 経過時間を簡潔に表示 / -s 起動日時を表示 | 稼働時間とロードアベレージを表示する | 中級 第9章 | |
user@linux-study:~$ uptime 10:15:03 up 3 days, 2:14, 1 user, load average: 0.15, 0.10, 0.05 uptimeを実行すると、現在時刻・システムの連続稼働時間・ログインユーザー数・直近のCPU負荷(ロードアベレージ)がまとめて表示されます。 |
|||
| (オプションなし) / -p PIDも表示 / -a 起動時の引数も表示 / -u ユーザー変更箇所を表示 | プロセスの親子関係をツリー表示する | 中級 第9章 | |
user@linux-study:~$ pstree
systemd─┬─nginx───2*[nginx]
└─sshd───bash───pstree
pstreeを実行すると、どのプロセスがどのプロセスから起動されたかという親子関係がツリー状に表示されます。systemdを起点に、nginxやsshdがぶら下がっている様子が確認できます。 |
|||
| -c クラスを指定(1: リアルタイム、2: ベストエフォート、3: アイドル) / -n クラス内の優先度を指定 | プロセスのディスクI/O優先度を設定する | 中級 第9章 | |
user@linux-study:~$ ionice -c 3 rsync -a /data /backup/ (I/O負荷の低い「アイドル」クラスでrsyncを実行) niceがCPUの優先度を調整するのに対し、ioniceはディスクI/Oの優先度を調整します。バックアップ処理のように大量のディスクI/Oが発生する作業を、他のサービスに影響を与えにくい優先度で実行したいときに使います。 |
|||
パッケージ管理
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| update / upgrade / install パッケージ名 / remove パッケージ名 / purge 設定ファイルごと削除 / search 語句 / autoremove 不要な依存を削除 / -y 確認プロンプトを省略 | Debian/Ubuntu系のパッケージ管理 | 初級 第9章・中級 第5章 | |
user@linux-study:~$ sudo apt install curl (依存関係を解決してcurlパッケージがインストールされる) sudo apt installで、curlという名前のパッケージをインストールしています。必要な依存パッケージも自動的に解決してインストールされます。 |
|||
| -i インストール / -l 一覧 / -L ファイル一覧 / -r 削除(設定は残す) / -P 設定ごと完全削除 / -s パッケージの状態を表示 | Debian系パッケージの低レベル操作 | 中級 第5章 | |
user@linux-study:~$ dpkg -l | grep curl ii curl 7.81.0-1ubuntu1 amd64 command line tool for transferring data dpkg -lでインストール済みパッケージの一覧を表示し、grep curlにパイプで渡すことでcurlに関連するパッケージだけを絞り込んでいます。先頭のiiはインストール済みであることを示します。 |
|||
| install / update / search / history / remove パッケージ名 / list installed 一覧表示 | Red Hat系(RHEL 8以降・Fedora等)の現行パッケージ管理コマンド | 初級 第9章・中級 第5章 | |
user@linux-study:~$ sudo dnf install httpd (依存関係を解決してhttpdパッケージがインストールされる) sudo dnf installで、Red Hat系ディストリビューションにhttpdパッケージをインストールしています。aptと同様、依存関係は自動的に解決されます。 |
|||
| install / update / search / history / remove パッケージ名 / list installed 一覧表示(dnfとほぼ同じ書式) | Red Hat系の旧世代パッケージ管理コマンド(CentOS 7等) | 初級 第9章・中級 第5章 | |
user@linux-study:~$ sudo yum install httpd (依存関係を解決してhttpdパッケージがインストールされる) yumはdnfの前身にあたるコマンドで、コマンド体系はほぼ共通しています。dnfはyumの後継として依存関係解決の高速化などを図ったもので、現行のRHEL系では実体はdnfへの別名になっていることも多いですが、古い環境やドキュメントでは今もyumの表記が使われます。 |
|||
| -ivh インストール / -qa 一覧 / -ql ファイル一覧 / -e 削除 / -qi パッケージ情報を表示 / -Uvh 更新インストール | Red Hat系パッケージの低レベル操作 | 中級 第5章 | |
user@linux-study:~$ rpm -qa | grep httpd httpd-2.4.37-51.el8.x86_64 rpm -qaでインストール済みパッケージの一覧を表示し、grep httpdでhttpdに関連するパッケージ名とバージョンだけを絞り込んで確認しています。 |
|||
| -S インストール / -R 削除 / -Syu システム全体を更新 / -Ss リポジトリを検索 / -Q インストール済み一覧 | Arch Linux系のパッケージ管理 | 初級 第9章 | |
user@linux-study:~$ sudo pacman -S vim (依存関係を解決してvimパッケージがインストールされる) sudo pacman -Sで、Arch Linux系ディストリビューションにvimパッケージをインストールしています。-Sはsyncの意味で、リポジトリからパッケージを取得・インストールします。 |
|||
| 実行ファイルを指定(オプションなしで依存ライブラリを一覧表示) | 実行ファイルが依存する共有ライブラリを表示する | 中級 第5章 | |
user@linux-study:~$ ldd /bin/ls
linux-vdso.so.1
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
ldd /bin/lsで、lsコマンドの実行ファイルがどの共有ライブラリ(.soファイル)に依存しているかを一覧表示しています。「共有ライブラリが見つかりません」といったエラーの原因調査に使います。 |
|||
| (オプションなしでキャッシュを再構築) / -p 現在のキャッシュの内容を表示 | 共有ライブラリのキャッシュを更新する | 中級 第5章 | |
user@linux-study:~$ sudo ldconfig user@linux-study:~$ ldconfig -p | grep libssl libssl.so.3 (libc6,x86-64) => /lib/x86_64-linux-gnu/libssl.so.3 lddが個々の実行ファイルの依存関係を「調べる」コマンドであるのに対し、ldconfigは新しくインストールした共有ライブラリをOS全体が使えるようキャッシュに登録する「設定側」のコマンドです。新しいライブラリをインストールした直後に実行するのが一般的です。 |
|||
ディスク・ファイルシステム
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| (オプションなし) / -f ファイルシステムの種類・UUIDも表示 / -a 空のデバイスも表示 | ブロックデバイスをツリー表示する | 中級 第2章 | |
user@linux-study:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part / lsblkを実行すると、パソコンやサーバーに接続されているディスク(sda)とそのパーティション(sda1・sda2)が、マウント先(/bootや/)と一緒にツリー状に表示されます。 |
|||
| -t 種類を指定 / -o マウントオプションを指定(ro・rw等) / -a fstabの内容をまとめてマウント | ファイルシステムをマウントする | 中級 第4章 | |
user@linux-study:~$ sudo mount -t ext4 /dev/sdb1 /mnt/data sudo mount -tで、/dev/sdb1というデバイスをext4形式として/mnt/dataにマウント(接続)しています。 |
|||
| 対象(デバイス名 or マウントポイント)を指定 / -l 使用中でも遅延アンマウント | マウントしたファイルシステムを取り外す | 中級 第4章 | |
user@linux-study:~$ sudo umount /mnt/data mountの逆操作で、使い終わったファイルシステムを取り外します。「device is busy」で失敗する場合は、lsof・fuserで使用中のプロセスを確認してから-lオプションを検討します。 |
|||
| -h 読みやすい単位で表示 / -i inodeの使用状況を表示 / -T ファイルシステムの種類も表示 | ファイルシステムの空き容量を表示する | 中級 第4章 | |
user@linux-study:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 19G 8.2G 10G 46% / df -hで、各ファイルシステムの容量・使用量・空き容量を人が読みやすい単位(GやM)で表示しています。ディスクの空き容量が少なくなっていないか確認するときに使います。 |
|||
| -s 合計のみ / -h 読みやすい単位 / -a ファイル単位でも表示 / --max-depth 集計する階層の深さを指定 | ディレクトリの使用容量を集計する | 中級 第4章 | |
user@linux-study:~$ du -sh projects/ 128M projects/ du -shで、projectsディレクトリ全体の使用容量を合計して人が読みやすい単位(この例では128M)で表示しています。-sを付けないとサブディレクトリごとの内訳まで表示されます。 |
|||
| (通常アンマウント状態で実行) / -y 確認をすべて自動でyes / -f クリーンでも強制チェック / -n 実際には修復しない | ファイルシステムの整合性をチェック・修復する | 中級 第4章 | |
user@linux-study:~$ sudo fsck /dev/sdb1 (ファイルシステムの整合性がチェックされ、問題があれば修復される) sudo fsckで、/dev/sdb1というファイルシステムの整合性をチェックし、壊れている部分があれば修復します。マウントしたまま実行すると危険なので、通常はアンマウントした状態で実行します。 |
|||
| 対話形式でMBR形式のパーティションを操作 / -l パーティション情報を一覧表示 | MBR形式のディスクにパーティションを作成・編集する | 中級 第3章 | |
user@linux-study:~$ sudo fdisk -l /dev/sdb Disk /dev/sdb: 20 GiB, 21474836480 bytes sudo fdisk -lで、/dev/sdbというディスクの容量やパーティション情報を表示しています。パーティションの作成・変更をしたい場合は、オプションを付けずに対話モードで起動します。従来のMBR形式のディスクを想定した設計です。 |
|||
| 対話形式またはワンライナーでGPT形式にも対応 / print 現在の構成を表示 / mkpart パーティションを作成 | GPT形式・2TB超の大容量ディスクにも対応するパーティション操作ツール | 中級 第3章 | |
user@linux-study:~$ sudo parted /dev/sdb print Model: ATA VBOX HARDDISK Partition Table: gpt fdiskが基本的にMBR形式向けなのに対し、partedはGPT形式や2TBを超える大容量ディスクにも対応しています。近年の大容量ディスクを扱う際は、partedを使うのが標準的です。 |
|||
| .ext4 / .xfs など作成する種類を指定 / -L ボリュームラベルを指定 | ファイルシステムを作成する | 中級 第3章 | |
user@linux-study:~$ sudo mkfs.ext4 /dev/sdb1 (/dev/sdb1がext4形式でフォーマットされる) sudo mkfs.ext4で、/dev/sdb1というパーティションをext4形式のファイルシステムとしてフォーマットしています。実行するとそのパーティション内の既存データはすべて消去されます。 |
|||
| (オプションなし) / -o value 値のみ出力 / デバイスを指定してUUID・種類を確認 | デバイスのUUID・種類を確認する | 中級 第4章 | |
user@linux-study:~$ sudo blkid /dev/sda2 /dev/sda2: UUID="1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d" TYPE="ext4" sudo blkidで、/dev/sda2というデバイスのUUID(一意な識別子)とファイルシステムの種類(ここではext4)を確認しています。UUIDは/etc/fstabなどでデバイスを指定する際によく使われます。 |
|||
| --create 作成 / --detail 詳細 / --fail・--remove・--add 故障対応 / --stop 停止 / --assemble 既存アレイを再構成 | ソフトウェアRAIDを管理する | 上級 第5章 | |
user@linux-study:~$ sudo mdadm --detail /dev/md0
Raid Level : raid1
Array Size : 20970496 (20.00 GiB)
sudo mdadm --detailで、/dev/md0というソフトウェアRAIDデバイスの詳細情報(RAIDレベルやアレイ全体の容量)を確認しています。 |
|||
| --size・-L 容量指定 / -n 名前指定 / --snapshot スナップショット作成 | LVM論理ボリューム(LV)を新規作成する | 上級 第6章 | |
user@linux-study:~$ sudo lvcreate --size 10G --name data_lv vg01 Logical volume "data_lv" created. sudo lvcreateで、vg01というボリュームグループの中に10GBのdata_lvという論理ボリュームを新しく作成しています。 |
|||
| -L +容量 現在のサイズに加算 / -L 容量 絶対値で指定 / -r 拡張と同時にファイルシステムもリサイズ | 既存のLVM論理ボリュームを拡張する | 上級 第6章 | |
user@linux-study:~$ sudo lvextend -L +10G -r /dev/vg01/data_lv Size of logical volume vg01/data_lv changed to 20.00 GiB. lvcreateが新規作成なのに対し、lvextendはすでに存在するLVの容量を後から拡張します。-rを付けると、LV拡張と同時にext4/XFSなどファイルシステム自体のリサイズもまとめて行われます。 |
|||
| -a 詳細情報 / -H 健全性のみ / -t シングル自己診断テストを実行 / -l エラーログを表示 | ディスクのS.M.A.R.T.情報を確認する | 上級 第4章 | |
user@linux-study:~$ sudo smartctl -H /dev/sda SMART overall-health self-assessment test result: PASSED sudo smartctl -Hで、/dev/sdaというディスクの健全性(S.M.A.R.T.情報)を簡易チェックしています。PASSEDと表示されれば現時点で大きな問題は検出されていません。 |
|||
| デバイス・ファイルを指定してスワップ領域として初期化 | パーティションやファイルをスワップ領域として初期化する | 中級 第3章 | |
user@linux-study:~$ sudo mkswap /dev/sdb2 Setting up swapspace version 1, size = 2 GiB mkfsのスワップ版にあたるコマンドで、指定したパーティション(この例では/dev/sdb2)をスワップ領域として使えるようフォーマットします。初期化しただけではまだ使用は開始されません。 |
|||
| デバイスを指定して有効化 / -s 現在の使用状況を確認 | スワップ領域を有効化する | 中級 第3章 | |
user@linux-study:~$ sudo swapon /dev/sdb2 user@linux-study:~$ swapon -s Filename Type Size Used Priority /dev/sdb2 partition 2097148 0 -2 mkswapで初期化した領域は、swaponを実行して初めて実際にスワップとして使用開始されます。メモリ増設や一時的な負荷対策として、スワップ領域を追加したいときに使います。 |
|||
| デバイスを指定して無効化 | スワップ領域を無効化する | 中級 第3章 | |
user@linux-study:~$ sudo swapoff /dev/sdb2 swaponの逆操作で、スワップの使用を停止します。取り外し前や、スワップ領域の設定を変更したいときに使います。 |
|||
| -f クリーンな状態でも強制的にチェック / -y 確認をすべて自動でyes / -p 自動修復モード | ext系ファイルシステムの整合性をチェック・修復する | 上級 第4章 | |
user@linux-study:~$ sudo e2fsck -f /dev/sdb1 Pass 1: Checking inodes, blocks, and sizes 汎用のfsckは内部的に、対象がext2/ext3/ext4であればe2fsckを呼び出しています。より詳細なオプションを指定したい場合はe2fsckを直接実行します。 |
|||
| (通常アンマウント状態で実行) / -n 実際には修復せず検査のみ(ドライラン) | XFSファイルシステムを検査・修復する | 上級 第4章 | |
user@linux-study:~$ sudo xfs_repair /dev/sdb1 Phase 1 - find and verify superblock... XFSはext系と設計が異なるため専用の修復ツールが必要で、fsckからXFS向けに呼び出されるのがxfs_repairです。ext系のe2fsckとは対象のファイルシステム形式が異なる、別系統のコマンドです。 |
|||
| luksFormat デバイスをLUKS暗号化領域として初期化 / luksOpen 復号してマッピング / luksClose マッピングを解除 | ディスクをLUKS方式で暗号化する | 上級 第14章 | |
user@linux-study:~$ sudo cryptsetup luksFormat /dev/sdb1 user@linux-study:~$ sudo cryptsetup luksOpen /dev/sdb1 secure_data ノートPCの盗難対策やコンプライアンス要件など、ディスク全体を暗号化したい場合にcryptsetupでLUKS(Linux Unified Key Setup)方式の暗号化ボリュームを作成します。 |
|||
アーカイブ・圧縮
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| -c 作成 / -x 展開 / -t 一覧 / -z gzip圧縮併用 / -j bzip2圧縮併用 / -v 詳細表示 / -f ファイル名指定 / -C 展開先ディレクトリを指定 | 複数ファイルをアーカイブする | 中級 第8章 | |
user@linux-study:~$ tar -czvf backup.tar.gz projects/ projects/ projects/index.html tar -czvfで、projectsディレクトリ全体をgzip圧縮しながら(z)ひとつのアーカイブファイルbackup.tar.gzにまとめています(c: 作成、v: 詳細表示、f: ファイル名指定)。 |
|||
| 圧縮後は元ファイル削除(-kで保持) / -v 詳細表示 / -9 圧縮率優先 / -1 速度優先 | ファイルをgzip形式に圧縮する | 中級 第8章 | |
user@linux-study:~$ gzip -k access.log user@linux-study:~$ ls access.log access.log.gz gzip -kで、access.logをgzip形式に圧縮しています。-kを付けると圧縮後も元のaccess.logが残り、両方のファイルが確認できます(付けない場合は元ファイルが削除されます)。 |
|||
| (オプションなしで展開。gzip -dと同じ) / -k 展開後も.gzファイルを保持 | gzip形式のファイルを展開する | 中級 第8章 | |
user@linux-study:~$ gunzip access.log.gz user@linux-study:~$ ls access.log gzipの逆操作にあたるコマンドで、.gz形式に圧縮されたファイルを元に戻します。 |
|||
| 複数ファイルをまとめて圧縮 / -r ディレクトリごと圧縮 | ZIP形式で圧縮する | 中級 第8章 | |
user@linux-study:~$ zip -r archive.zip projects/ adding: projects/ (stored 0%) adding: projects/index.html (deflated 60%) zip -rで、projectsディレクトリを中身ごと再帰的にひとつのZIPファイルarchive.zipにまとめています。ファイルごとに圧縮率(deflatedの割合)が表示されます。 |
|||
| -l 中身を一覧表示(展開しない) / -d 展開先を指定 | ZIP形式のファイルを展開する | 中級 第8章 | |
user@linux-study:~$ unzip archive.zip -d projects_restored Archive: archive.zip inflating: projects_restored/index.html zipの逆操作にあたるコマンドで、ZIPファイルの中身を展開します。-dで展開先ディレクトリを指定しない場合は、カレントディレクトリに展開されます。 |
|||
| -a 属性を保持し再帰的にコピー / -v 詳細表示 / -z 転送時圧縮 / --delete 完全同期 / -n 実際には転送しないドライラン / --exclude パターンを除外 | 差分だけを効率的に同期する | 上級 第8章 | |
user@linux-study:~$ rsync -avz projects/ user@server:/backup/projects/ sending incremental file list projects/index.html rsync -avzで、projectsディレクトリの中身をuser@serverという別のマシンの/backup/projects/へ、変更があった差分だけ効率的に同期しています。 |
|||
| -o アーカイブを作成(標準出力へ) / -i アーカイブから展開 / -t 一覧表示 | ファイル一覧を受け取ってアーカイブを作成・展開する | 中級 第8章 | |
user@linux-study:~$ find . -name "*.conf" | cpio -o > conf.cpio user@linux-study:~$ cpio -idv < conf.cpio cpioはtarと似た役割のアーカイブツールですが、findの出力するファイル一覧をそのままパイプで受け取って処理する使い方が特徴です。initramfsの構築など、tarより向いている場面もあります。 |
|||
| if= 入力元を指定 / of= 出力先を指定 / bs= 一度に読み書きするブロックサイズを指定 / status=progress 進捗を表示 / conv=noerror,sync 読み取りエラーが起きても処理を継続しゼロ埋めで位置ずれを防ぐ | ファイルシステムを意識せず、ディスクやパーティションをブロック単位で複製する | 上級 第8章 | |
user@linux-study:~$ sudo dd if=/dev/sda of=/mnt/backup/sda.img bs=4M status=progress 21474836480 bytes (21 GB, 20 GiB) copied, 62 s, 346 MB/s dd if=/dev/sda of=/mnt/backup/sda.imgで、/dev/sdaディスク全体をブロック単位でそのまま複製し、sda.imgというイメージファイルを作成しています。bs=4Mで一度に読み書きするサイズを大きくして転送を高速化し、status=progressで進捗を表示しています。指定を誤ると既存のディスクを上書きしてしまう危険なコマンドのため、ifとofの向きには特に注意が必要です。 |
|||
| -c 記録済みのチェックサムファイルと照合 | MD5方式でファイルのハッシュ値を計算・検証する | 上級 第8章 | |
user@linux-study:~$ md5sum backup.tar.gz 5d41402abc4b2a76b9719d911017c592 backup.tar.gz 古くから広く使われているハッシュ方式ですが、現在は暗号学的な強度が低いとされ、セキュリティ用途(改ざん検知など)にはsha256sumなどより強いアルゴリズムが推奨されます。単純な転送破損の確認用途では今も使われます。 |
|||
| -c 記録済みのチェックサムファイルと照合 | SHA-256方式でファイルのハッシュ値を計算・検証する | 上級 第8章 | |
user@linux-study:~$ sha256sum backup.tar.gz > backup.tar.gz.sha256 user@linux-study:~$ sha256sum -c backup.tar.gz.sha256 backup.tar.gz: OK md5sumより強度の高いSHA-256アルゴリズムを使うため、ソフトウェア配布時の改ざん検知など、セキュリティが重要な場面で標準的に使われます。-cオプションで、事前に記録したチェックサムファイルと現在の値を自動照合できます。 |
|||
| (POSIX標準のCRC方式。オプションなしでチェックサムとバイト数を表示) | CRC方式でファイルのチェックサムを計算する | 上級 第8章 | |
user@linux-study:~$ cksum backup.tar.gz 1234567890 10485760 backup.tar.gz md5sum・sha256sumが暗号学的ハッシュなのに対し、cksumはPOSIX標準の巡回冗長検査(CRC)方式を使う、より単純な破損検知向けのコマンドです。改ざん検知の強度は低いため、セキュリティ用途にはsha256sumが向いています。 |
|||
ネットワーク
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| addr show アドレス確認 / route show 経路確認 / link set デバイス制御(up・down) / addr add アドレスを追加 / -s リンクの統計情報も表示 | ネットワークの確認・設定をする | 中級 第15章・上級 第7章 | |
user@linux-study:~$ ip addr show
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500
inet 192.168.1.10/24 scope global eth0
ip addr showで、eth0というネットワークインターフェースの状態(UPかどうか)と、割り当てられているIPアドレス(192.168.1.10/24)を確認しています。 |
|||
| -c 回数を指定 / -i 送信間隔を指定 / -W 応答待ちのタイムアウトを指定 / -s パケットサイズを指定 | ICMPで疎通確認する | 中級 第15章 | |
user@linux-study:~$ ping -c 2 example.com 64 bytes from example.com: icmp_seq=1 ttl=55 time=12.3 ms 64 bytes from example.com: icmp_seq=2 ttl=55 time=11.9 ms ping -c 2で、example.comに対して2回だけICMPパケットを送信し、応答時間(time)を確認しています。応答が返ってくれば、そのホストまでネットワークが疎通していることがわかります。 |
|||
| (経由するルーターを表示) / -n 名前解決せずIPアドレスのみ表示 / -m 最大ホップ数を指定 | 経路上のルーターを確認する | 中級 第15章 | |
user@linux-study:~$ traceroute example.com 1 192.168.1.1 1.021 ms 2 10.0.0.1 5.213 ms tracerouteで、自分のマシンからexample.comまでの通信がどのルーター(経由地点)を通っているかを、1ホップ目から順番に表示しています。 |
|||
| -t TCP / -u UDP / -l 待受のみ / -n 名前解決しない / -p プロセス情報も表示 / -a 待受・接続中の両方を表示 | ソケットの状態を確認する | 中級 第15章 | |
user@linux-study:~$ ss -tulnp Netid State Local Address:Port tcp LISTEN 0.0.0.0:22 ss -tulnpで、現在ポートを開いて接続を待ち受けている(LISTEN状態の)TCP/UDPソケットと、それを使っているプロセスを確認しています。この例では22番ポート(SSH)が待ち受け中です。 |
|||
| @サーバー 問い合わせ先のDNSサーバーを指定 / レコード種別(A・MX・NS等)を指定 / +short 結果を簡潔に表示 / -x 逆引き / +trace ルートから順にたどる | DNSの名前解決を詳細に確認する | 中級 第15章・上級 第9章 | |
user@linux-study:~$ dig example.com +short 93.184.216.34 dig example.com +shortで、example.comというドメイン名に対応するIPアドレス(93.184.216.34)だけを簡潔に表示しています。既定では、ANSWER SECTIONなどを含む詳細な問い合わせ結果が表示されます。 |
|||
| (引数なしで対話モードに入る) / -type=レコード種別 を指定 / サーバー名 問い合わせ先のDNSサーバーを指定 | DNSの名前解決を簡易に確認する(対話形式にも対応) | 中級 第15章・上級 第9章 | |
user@linux-study:~$ nslookup example.com Server: 192.168.1.1 Address: 192.168.1.1#53 Name: example.com Address: 93.184.216.34 nslookupはdigより古くからあるコマンドで、出力形式もシンプルです。引数を付けずに実行すると対話モードに入り、続けて複数のドメインを問い合わせることもできます。現在はdigの方が高機能で推奨されますが、nslookupは多くの環境に標準で入っている手軽さが利点です。 |
|||
| device status / connection show・up・down / connection modify 設定変更 | NetworkManagerをCUIから操作する | 上級 第7章 | |
user@linux-study:~$ nmcli device status DEVICE TYPE STATE eth0 ethernet connected nmcli device statusで、NetworkManagerが管理しているネットワークデバイス(eth0)の種類と接続状態(connectedかどうか)を確認しています。 |
|||
| -I ヘッダーのみ取得 / -O ファイルとして保存 / -X メソッドを指定(POST等) / -d データを送信 / -H リクエストヘッダーを指定 / -L リダイレクトを追跡 | HTTPなどのリクエストを送信する | 上級 第10章 | |
user@linux-study:~$ curl -I https://example.com HTTP/1.1 200 OK Content-Type: text/html curl -Iで、https://example.comにHTTPリクエストを送り、実際のページ内容ではなくレスポンスヘッダー(ステータスコードやContent-Typeなど)だけを取得しています。 |
|||
| (オプションなし・シンプルな正引き/逆引き) / -t レコード種別を指定 | digより簡易な出力でDNSの名前解決を確認する | 上級 第9章 | |
user@linux-study:~$ host example.com example.com has address 93.184.216.34 digが詳細なセクション分けで結果を返すのに対し、hostは1行程度の簡潔な出力で名前解決の結果だけを素早く確認したいときに使われます。 |
|||
| -O ファイル名を指定して保存 / -c 中断した転送を再開 / -r 再帰的にダウンロード | URLを指定してファイルをダウンロードする | 上級 第10章 | |
user@linux-study:~$ wget https://example.com/file.tar.gz Saving to: 'file.tar.gz' curlが応答内容の確認やAPI呼び出しに向いているのに対し、wgetはファイルをディスクに保存する用途に特化しており、-cによる再開機能や-rによる再帰的なダウンロードが特徴です。 |
|||
| -r ディレクトリごとコピー / -P ポート番号を指定 | SSH経由でファイルを1回のコマンドでコピーする | 中級 第22章 | |
user@linux-study:~$ scp report.txt user@server:/home/user/ report.txt 100% 1.2KB scpはSSHの暗号化された通信路を使ってcpのようにファイルをコピーするコマンドです。1回のコマンドで転送が完結するため、スクリプトへの組み込みにも向いています。 |
|||
| (実行するとFTP風の対話シェルに入る) / get・put ダウンロード・アップロード / ls・cd リモート側の一覧・移動 | 対話的にファイル一覧を見ながらSSH経由で転送する | 中級 第22章 | |
user@linux-study:~$ sftp user@server sftp> ls sftp> get report.txt sftp> exit scpが1回のコマンドで転送を完結させるのに対し、sftpはFTPに似た対話シェルに入り、リモート側のディレクトリを確認しながら複数のファイルをやり取りできます。転送先の構成がよく分からない場合に便利です。 |
|||
| (pingとtracerouteを組み合わせて継続的に計測) / -n 名前解決しない | 経路上の各ホップの疎通状況を継続的に確認する | 上級 第7章 | |
user@linux-study:~$ mtr example.com (各ホップごとのパケットロス率・応答時間がリアルタイムに更新表示される。qで終了) tracerouteが1回限りの経路確認なのに対し、mtrはping的な継続測定を経路上の各ホップに対して行うため、どのホップで断続的にパケットロスが発生しているかを特定しやすくなります。 |
|||
システム管理・時刻・ユーザー
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| start / stop / restart / status / enable / disable / daemon-reload / list-units 一覧表示 / is-active 起動状態を確認 / mask /dev/nullへのリンクで起動を完全に禁止 / unmask maskの解除 | systemdサービスを制御する | 中級 第1章・上級 第3章 | |
user@linux-study:~$ systemctl status nginx ● nginx.service - A high performance web server Active: active (running) systemctl statusで、nginxというサービスが現在起動中かどうか(Active: active (running))と、サービスの概要を確認しています。 |
|||
| blame サービスごとの起動時間を表示 / critical-chain 起動のクリティカルパスを表示 / time 起動全体の所要時間を表示 | 起動時間を分析する | 上級 第3章 | |
user@linux-study:~$ systemd-analyze blame 2.104s nginx.service 1.532s network-online.target systemd-analyze blameで、起動時にどのサービスがどれだけ時間をかけて起動したかを、時間がかかった順に一覧表示しています。起動を遅くしている原因を調べるときに使います。 |
|||
| -f リアルタイム表示 / -u サービス指定 / --since・--until 期間指定 / -p 優先度で絞り込み / -b 今回起動分のみ / -k カーネルログのみ | systemdジャーナルログを閲覧する | 中級 第14章 | |
user@linux-study:~$ journalctl -u nginx --since today Jan 10 09:00:01 host nginx[1023]: start worker process journalctl -u nginx --since todayで、nginxサービスに関するログのうち、今日分だけを絞り込んで表示しています。 |
|||
| +形式 表示形式を指定(例 +%Y-%m-%d) / -s 日時を指定して設定(非推奨) | 現在の日時を表示・簡易的に設定する | 中級 第14章 | |
user@linux-study:~$ date Sat Jan 10 09:00:00 JST 2026 dateを実行すると、システムに設定されている現在の日時とタイムゾーンがそのまま表示されます。シェルスクリプト内でログファイル名に日付を埋め込む際など、+形式指定で出力フォーマットを変えてよく使われます。 |
|||
| status 現在の設定を確認 / set-timezone タイムゾーンを設定 / set-time 日時を設定 / set-ntp NTP同期の有効・無効を切替 | systemd経由でシステム時刻・タイムゾーンを管理する | 中級 第14章 | |
user@linux-study:~$ timedatectl status
Local time: Sat 2026-01-10 09:00:00 JST
NTP service: active
dateが「今の時刻を表示・簡易設定する」コマンドであるのに対し、timedatectlはタイムゾーンの変更やNTPによる自動同期の有効化など、systemd管理下でのより恒久的な時刻設定全般を担うコマンドです。 |
|||
| -e 編集 / -l 一覧表示 / -r 削除 / -u ユーザー指定(root権限が必要) | 定期実行(cron)ジョブを管理する | 中級 第13章 | |
user@linux-study:~$ crontab -l 0 3 * * * /home/user/backup.sh crontab -lで、現在のユーザーに設定されている定期実行ジョブ(cron)の一覧を表示しています。この例では、毎日午前3時にbackup.shというスクリプトを実行する設定になっています。 |
|||
| -m ホーム作成 / -s シェル指定 / -aG グループ追加 / -u UIDを指定 | ユーザーアカウントを新規作成する | 中級 第13章 | |
user@linux-study:~$ sudo useradd -m -s /bin/bash newuser user@linux-study:~$ id newuser uid=1001(newuser) gid=1001(newuser) groups=1001(newuser) sudo useradd -m -sで、ホームディレクトリ付き(-m)でシェルにbashを指定した(-s)newuserというユーザーを新規作成し、idコマンドで作成されたユーザーのUID・GIDを確認しています。 |
|||
| -aG グループ追加 / -s シェルを変更 / -L アカウントロック / -l 名前を変更 | 既存のユーザーアカウントの設定を変更する | 中級 第13章 | |
user@linux-study:~$ sudo usermod -aG developers newuser user@linux-study:~$ groups newuser newuser : newuser developers useraddが新規作成なのに対し、usermodはすでに存在するユーザーの所属グループやシェルなどの設定を後から変更します。-aG(追加)を忘れて-Gだけを使うと、既存の所属グループが上書きされて消えてしまう点に注意が必要です。 |
|||
| -r ホームディレクトリごと削除 | ユーザーアカウントを削除する | 中級 第13章 | |
user@linux-study:~$ sudo userdel -r retireduser 退職・異動などでアカウントが不要になった際に使います。-rを付けないとホームディレクトリは残ったままになるため、完全に削除したい場合は明示的に指定します。 |
|||
| -l アカウントロック / -u ロック解除 / -e 次回ログイン時に変更を強制 / -S 状態を確認 | パスワードそのものを設定・変更する | 中級 第13章・上級 第28章 | |
user@linux-study:~$ sudo passwd newuser New password: Retype new password: passwd: password updated successfully sudo passwdで、newuserというユーザーのパスワードを設定しています。新しいパスワードを2回入力すると、passwd: password updated successfullyと表示されて完了します。 |
|||
| -l 有効期限・変更履歴を確認 / -M 変更間隔(最大日数)を設定 / -E 有効期限日を指定 / -W 期限前の警告日数を指定 | パスワードの有効期限・変更ポリシーを管理する | 中級 第13章・上級 第28章 | |
user@linux-study:~$ sudo chage -l newuser Last password change : Jan 10, 2026 Password expires : never passwdがパスワードそのものの値を扱うのに対し、chageは「あと何日で失効するか」「何日ごとの変更を強制するか」といった、パスワードのライフサイクル・ポリシーを管理する別のコマンドです。 |
|||
| グループ名で新規作成 / -g GIDを指定 | グループを新規作成する | 中級 第13章 | |
user@linux-study:~$ sudo groupadd developers user@linux-study:~$ sudo usermod -aG developers alice useraddがユーザー単位の作成コマンドであるのに対し、groupaddはグループそのものを新規作成するためのコマンドです。 |
|||
| -n 新名前 で名前を変更 / -g 新GID を変更 | 既存のグループの設定を変更する | 中級 第13章 | |
user@linux-study:~$ sudo groupmod -n staff developers groupaddで作成したグループの名前やGIDを後から変更したいときに使います。 |
|||
| グループ名で削除 | グループを削除する | 中級 第13章 | |
user@linux-study:~$ sudo groupdel developers 不要になったグループを削除します。まだそのグループを主グループとしているユーザーが存在する場合は削除できません。 |
|||
| -a 全パラメータを表示 / -w 一時的に値を変更 / -p /etc/sysctl.confの内容を反映 | カーネルパラメータを確認・変更する | 上級 第7章 | |
user@linux-study:~$ sudo sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 0 user@linux-study:~$ sudo sysctl -w net.ipv4.ip_forward=1 sysctl -wでの変更は再起動すると元に戻る一時的なものです。恒久的に反映したい場合は/etc/sysctl.d/以下の設定ファイルに記述し、sysctl -pで読み込ませます。 |
|||
| (オプションなし・ハードウェアクロックの現在値を表示) / --systohc システム時刻をハードウェアクロックに反映 | ハードウェア(RTC)の時計を確認・設定する | 中級 第14章 | |
user@linux-study:~$ sudo hwclock 2026-01-10 09:00:00.123456+09:00 dateが表示するのはOSが管理するシステム時刻ですが、hwclockはマザーボード上の物理的な時計(RTC)の時刻を扱います。両者がずれている場合、起動直後のシステム時刻に影響します。 |
|||
| status 現在のロケール設定を確認 / set-locale ロケールを設定 / set-keymap キーボード配列を設定 | システムのロケール・キーボード設定を管理する | 中級 第14章 | |
user@linux-study:~$ localectl status System Locale: LANG=ja_JP.UTF-8 hostnamectl・timedatectlと同じsystemd系列のコマンドで、システム全体の言語・文字コード設定(ロケール)やキーボード配列を管理します。 |
|||
| ファイル名 を指定するとファイルの内容を送信(オプションなしなら標準入力を送信) | ログイン中の全ユーザーの端末にメッセージを一斉送信する | 中級 第13章 | |
user@linux-study:~$ echo "5分後に再起動します" | wall Broadcast message from user メンテナンス予告などを、ログイン中の全ユーザーの端末に一斉表示したいときにwallを使います。 |
|||
| ユーザー名 tty名 を指定(tty名は省略可) | 特定の1ユーザーだけにメッセージを送る | 中級 第13章 | |
user@linux-study:~$ write alice この後デプロイ作業をします (Ctrl+Dで送信終了) wallが全員に一斉送信するのに対し、writeは指定した1人のユーザーの端末にだけメッセージを送ります。1対1で直接やり取りしたいときに使います。 |
|||
| y 他ユーザーからのメッセージ受信を許可 / n 拒否 | write・wallによるメッセージの受信可否を設定する | 中級 第13章 | |
user@linux-study:~$ mesg n user@linux-study:~$ mesg is n wall・writeで送られてくるメッセージを自分の端末に表示させたくない場合、mesg nで受信を拒否できます。作業に集中したいときなどに使う、受信側の設定コマンドです。 |
|||
| -r now 即時再起動 / -h +10 10分後にシャットダウン / -c 予約をキャンセル | 予告時間を指定してシステムを停止・再起動する | 中級 第1章 | |
user@linux-study:~$ sudo shutdown -r +5 "5分後にメンテナンスのため再起動します" Broadcast message from user shutdownは予告時間を指定できるため、利用者への事前アナウンスを兼ねた計画停止に向いています。ログイン中の全ユーザーへの通知(wallと同様の仕組み)も自動で行われます。 |
|||
| (オプションなしで即時再起動) | システムを即座に再起動する | 中級 第1章 | |
user@linux-study:~$ sudo reboot shutdown -r nowとほぼ同じ効果ですが、予告なしで即座に再起動します。内部的にはsystemdのreboot.targetへの切り替えとして処理されます。 |
|||
| halt システムを停止(電源は切らない場合がある) / poweroff システムを停止し電源も切断 | システムを即座に停止する | 中級 第1章 | |
user@linux-study:~$ sudo poweroff halt・poweroffはどちらもシステムを停止しますが、poweroffは物理的に電源も切断する点が異なります。現在のLinuxではhaltを実行しても内部的に電源が切れる設定になっていることが多く、両者の違いはほぼ意識せず使われています。 |
|||
セキュリティ
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| - でログインシェルとして環境ごと切替 / -c コマンドを1つだけ実行 | 別のユーザー(既定ではroot)に切り替える | 中級 第16章 | |
user@linux-study:~$ su - Password: root@linux-study:~# su -を実行すると、対象ユーザー(省略時はroot)のパスワード入力を求められ、認証に成功するとそのユーザーとしてシェルが丸ごと切り替わります。切り替えた後の操作はすべて「root」として記録されるため、誰が何をしたかの追跡がしにくくなる点に注意が必要です。 |
|||
| コマンド で許可範囲だけroot実行 / -u ユーザー 指定ユーザーとして実行 / -l 実行可能なコマンドを確認 | コマンド単位で一時的に権限を昇格させる | 中級 第16章 | |
user@linux-study:~$ sudo systemctl restart nginx [sudo] password for user: sudoを付けてコマンドを実行すると、シェルごと切り替わるsuと違い、そのコマンド1つだけを一時的に管理者権限で実行できます。実行時にはログイン中のユーザー自身のパスワード入力が求められ、/var/log/auth.logなどに誰が何を実行したかが記録されるため、複数管理者がいる環境でも操作の追跡がしやすくなります。 |
|||
| user@ホスト でログイン / -i 秘密鍵ファイルを指定 / -p ポート番号を指定 / -L ローカルポートフォワーディング / -R リモートポートフォワーディング / -D ダイナミックフォワーディング(SOCKSプロキシ) / -N リモートでコマンドを実行しない / -f 認証後にバックグラウンドへ移行 / -A エージェントフォワーディングを有効化 | リモートサーバーに安全にログイン・コマンド実行する | 上級 第25章 | |
user@linux-study:~$ ssh -i ~/.ssh/id_ed25519 alice@203.0.113.10 Welcome to Ubuntu 22.04 LTS alice@remote-server:~$ ssh -iで秘密鍵ファイルを明示的に指定し、alice@203.0.113.10というリモートサーバーにログインしています。ログインに成功すると、プロンプトがローカルからリモートサーバー側のもの(alice@remote-server)に切り替わります。 |
|||
| -t 鍵の種類を指定 / -b 鍵長を指定 / -f 出力ファイル名を指定 / -C コメントを付与 / -R ホスト名 known_hostsから指定ホストのエントリだけを安全に削除 | SSH鍵ペア(秘密鍵・公開鍵)を新規生成する、またはknown_hostsを整理する | 中級 第22章 | |
user@linux-study:~$ ssh-keygen -t ed25519 Generating public/private ed25519 key pair. ssh-keygen -tで、ed25519というアルゴリズムを使った新しいSSH鍵ペア(秘密鍵と公開鍵)を生成しています。サーバーの再構築などでホスト鍵が変わった場合は、ssh-keygen -R ホスト名でknown_hosts内の古いエントリだけを安全に削除できます。 |
|||
| ユーザー@ホスト を指定(既定の公開鍵を自動で転送・登録) | 生成した公開鍵をリモートサーバーに登録する | 中級 第22章 | |
user@linux-study:~$ ssh-copy-id user@newserver (~/.ssh/authorized_keysに公開鍵が追記される) ssh-keygenが鍵ペアを「作る」コマンドであるのに対し、ssh-copy-idはすでに作った公開鍵をリモートサーバーのauthorized_keysに「登録する」ための別のコマンドです。 |
|||
| (オプションなしでエージェントを起動。eval "$(ssh-agent)"で環境変数をシェルに反映) | 秘密鍵を復号済みの状態でメモリ上に保持するエージェントを起動する | 上級 第25章 | |
user@linux-study:~$ eval "$(ssh-agent)" Agent pid 2048 パスフレーズ付きの秘密鍵は、接続のたびにパスフレーズを入力するのは煩雑です。ssh-agentを起動し、続けてssh-addで鍵を登録しておくと、以降の接続ではパスフレーズの再入力が不要になります。 |
|||
| (オプションなしで既定の鍵を登録) / -l 登録済みの鍵の指紋一覧を表示 / -L 登録済みの鍵の公開鍵本体を表示 / -t 秒数 有効期限を指定 / -D 登録済みの鍵をすべて削除 | ssh-agentに秘密鍵を登録・確認・削除する | 上級 第25章 | |
user@linux-study:~$ ssh-add ~/.ssh/id_ed25519 Enter passphrase for /home/alice/.ssh/id_ed25519: ssh-addで鍵をエージェントに登録すると、以降はパスフレーズを再入力せずにSSH接続できます。-lで登録状況を確認し、不要になったら-Dでまとめて削除できます。 |
|||
| ホスト名(複数指定可)を指定して公開ホスト鍵を収集 | 接続前にリモートホストの公開ホスト鍵を収集する | 上級 第25章 | |
user@linux-study:~$ ssh-keyscan server1.example.com >> ~/.ssh/known_hosts 新しいサーバー群を構築する際、あらかじめssh-keyscanでホスト鍵を収集してknown_hostsに登録しておくと、初回接続時の確認プロンプトを省略でき、自動化されたプロビジョニング処理に組み込みやすくなります。 |
|||
| --gen-key 鍵生成 / -e 暗号化 / -d 復号 / -r 宛先の鍵を指定 / --armor テキスト形式で出力 / --list-keys 鍵一覧を表示 | ファイルを暗号化・電子署名する | 中級 第22章 | |
user@linux-study:~$ gpg -e -r alice@example.com secret.txt (secret.txt.gpgという暗号化ファイルが生成される) gpg -e -rで、secret.txtというファイルをalice@example.comの公開鍵で暗号化しています。実行するとsecret.txt.gpgという暗号化されたファイルが新しく作られます。 |
|||
| -A ルール追加 / -L ルール表示 / -j ACCEPT・DROP 処理指定 / -D ルール削除 / -F 全ルール削除 / -P デフォルトポリシーを設定 | 旧世代の書式でパケットフィルタリングを設定する | 上級 第14章 | |
user@linux-study:~$ sudo iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination sudo iptables -Lで、現在設定されているパケットフィルタリングのルール一覧を表示しています。この例のChain INPUT (policy ACCEPT)は、既定で受信パケットを許可する設定になっていることを示します。多くのディストリビューションで内部的にはnftablesへの互換レイヤーとして動作するようになっています。 |
|||
| list ruleset 現在のルールを表示 / add rule ルールを追加 / add table・chain テーブル・チェーンを作成 | 現行のnftablesの書式でパケットフィルタリングを設定する | 上級 第14章 | |
user@linux-study:~$ sudo nft list ruleset
table inet filter {
chain input { type filter hook input priority 0; }
}
nftはiptablesの後継として設計された、より新しい書式のパケットフィルタリングツールです。iptablesがプロトコルごとに別コマンド(ip6tablesなど)だったのに対し、nftは1つのコマンドでIPv4/IPv6を統一的に扱えます。 |
|||
| --list-all 現在のルールを確認 / --add-service 許可するサービスを指定 / --add-port 許可するポートを指定 / --permanent 恒久的に設定 / --reload 設定を反映 | firewalldをCUIから設定・確認する | 上級 第14章 | |
user@linux-study:~$ sudo firewall-cmd --add-service=http --permanent user@linux-study:~$ sudo firewall-cmd --reload RHEL系で標準的に使われるfirewalldは、iptablesのようにルールを1本ずつ書くのではなく、ゾーンという単位でまとめてルールを管理する仕組みです。--permanentを付けないと、次回起動時に設定が失われる一時的な変更になります。 |
|||
| status サービス名 で状況確認 / set jail名 unbanip IP でブロック解除 / reload 設定を再読み込み | 不正アクセスを自動遮断する | 上級 第15章 | |
user@linux-study:~$ sudo fail2ban-client status sshd Status for the jail: sshd |- Currently banned: 2 sudo fail2ban-client status sshdで、sshdという監視対象(jail)の状況を確認し、現在何件のIPアドレスがブロック(ban)されているかを表示しています。 |
|||
| -sS TCP SYNスキャン / -p 対象ポートを指定 / -O OS推定 / -A OS推定・バージョン検出などをまとめて実行 | 対象ホストの開いているポートやサービスを調査する | 上級 第26章 | |
user@linux-study:~$ sudo nmap -sS -p 22,80,443 192.168.1.10 PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 443/tcp closed https nmap -sS -pで、指定したホストの22番・80番・443番ポートの状態を調べています。STATE列がopenのポートは外部から接続可能な状態で、意図しないサービスが公開されていないかの棚卸しに使われます。 |
|||
| (/etc/sudoersを構文チェック付きで安全に編集する専用コマンド) / -c 構文チェックのみ実行 | sudoの許可設定ファイルを安全に編集する | 中級 第16章 | |
user@linux-study:~$ sudo visudo (構文エラーがあれば保存前に警告される) /etc/sudoersを直接エディタで開いて編集すると、構文エラーがあった場合にsudo自体が使えなくなる危険があります。visudoは保存前に自動で文法チェックを行うため、必ずこちらを使うのが安全です。 |
|||
シェル操作の基礎
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| -n 改行を付けない / -e エスケープシーケンスを解釈 | 文字列や変数の値を出力する | 初級 第8章 | |
user@linux-study:~$ echo "Hello, $USER" Hello, user echoは指定した文字列をそのまま出力するコマンドです。ダブルクォート内では$USERのような変数が展開されるため、シェルスクリプトのデバッグ出力や動作確認によく使われます。 |
|||
| 書式文字列と引数を指定(例 %s・%d・%-10s) / \n で改行を明示 | 書式(フォーマット)を指定して出力する | 中級 第12章 | |
user@linux-study:~$ printf "%s: %d件\n" "エラー" 3 エラー: 3件 echoは環境やシェルによって-eの扱いなど挙動が微妙に異なることがありますが、printfはC言語のprintfに近い書式指定ができ、改行も\nで明示する必要があるため、スクリプトの出力を厳密に揃えたい場面ではechoより確実に動作します。 |
|||
| -a 該当するものをすべて表示 | PATH上にある外部コマンドの実行ファイルの場所を調べる | 中級 第12章 | |
user@linux-study:~$ which python3 /usr/bin/python3 whichはPATH上のどこにそのコマンドの実行ファイルがあるかを教えてくれます。シェルのビルトインコマンドやエイリアスは対象外で、あくまで外部の実行ファイルだけを探します。 |
|||
| (オプションなしでコマンドの種別を判定) / -a 該当するものをすべて表示 | コマンドがビルトイン・エイリアス・外部コマンドのどれかを判定する | 中級 第12章 | |
user@linux-study:~$ type cd cd is a shell builtin user@linux-study:~$ type ls ls is aliased to `ls --color=auto' whichが外部コマンドの実行ファイルしか探せないのに対し、typeはそれがビルトインコマンドなのか、エイリアスなのか、外部コマンドなのかまで判定できるシェル自身の機能です。 |
|||
| 名前=コマンド で登録(オプションなしで一覧表示) | コマンドに短い別名を付ける | 中級 第12章 | |
user@linux-study:~$ alias ll='ls -alF' user@linux-study:~$ ll aliasでよく使う長いコマンドに短い別名を付けておくと、毎回オプションを打たずに済みます。ここでの設定は現在のシェルセッション限りなので、恒久化するには.bashrcなどに追記します。 |
|||
| 名前 で解除 / -a すべて解除 | 設定したエイリアスを解除する | 中級 第12章 | |
user@linux-study:~$ unalias ll aliasの逆操作で、登録したエイリアスを取り消したいときに使います。 |
|||
| 変数名=値 で環境変数として設定 / -p 現在の環境変数を一覧表示 | シェル変数を子プロセスにも引き継がれる環境変数にする | 中級 第12章 | |
user@linux-study:~$ export EDITOR=vim user@linux-study:~$ echo $EDITOR vim exportを付けずに変数を設定すると、そのシェル自身の中でしか使えません。exportを付けて設定すると、そのシェルから起動する子プロセス(別のプログラム)にも値が引き継がれる環境変数になります。 |
|||
| 変数名 を指定して削除 | シェル変数・環境変数を削除する | 中級 第12章 | |
user@linux-study:~$ unset EDITOR user@linux-study:~$ echo $EDITOR (空になる) exportで設定した変数も含め、不要になった変数はunsetで削除できます。値を空文字にするのとは違い、変数自体が存在しない状態に戻る点に注意してください。 |
|||
| 変数名 を指定して標準入力を読み込む / -p プロンプト文字列を表示 / -s 入力内容を非表示(パスワード入力用) | 標準入力から1行読み込んで変数に代入する | 中級 第12章 | |
user@linux-study:~$ read -p "名前を入力してください: " name 名前を入力してください: alice user@linux-study:~$ echo $name alice シェルスクリプトの中でユーザーからの入力を受け取りたいときに使う基本コマンドです。-sを付けるとパスワード入力のように画面に文字が表示されなくなります。 |
|||
| 変数名=値 コマンド で一時的な環境変数付きで実行 / -i 環境変数をすべてクリアして実行 | 現在の環境変数を一覧表示・一時的に変更してコマンドを実行する | 中級 第12章 | |
user@linux-study:~$ env | grep EDITOR EDITOR=vim exportがシェル変数を環境変数へ「変換して設定する」コマンドなのに対し、envは現在有効な環境変数を一覧表示したり、env 変数名=値 コマンドのように、そのコマンド実行時だけ環境変数を差し替えたりするのに使う別のコマンドです。 |
|||
| -I{} 出力を差し込む位置を指定 / -n 引数の個数を指定 / -0 NUL区切りに対応(findの-print0と組み合わせ) | 標準入力の内容を引数としてコマンドに渡す | 中級 第8章 | |
user@linux-study:~$ find . -name "*.tmp" | xargs rm user@linux-study:~$ ls (*.tmpファイルがすべて削除される) findの検索結果はそのままではrmの引数になりません。xargsを挟むことで、パイプで受け取った出力(ファイル名の一覧)を後続コマンドの引数として渡せるようになります。 |
|||
| -b ファイル名を省略して結果のみ表示 | ファイルの種類を判定する | 初級 第4章 | |
user@linux-study:~$ file notes.txt notes.txt: ASCII text fileは拡張子ではなく、ファイルの中身(先頭のバイト列など)を見てファイル形式を判定します。拡張子が付いていない、あるいは間違っているファイルの種類を確認したいときに役立ちます。 |
|||
| パス ファイル名部分のみ抽出 / 拡張子 を追加指定すると拡張子も除去 | パスからファイル名部分だけを取り出す | 中級 第12章 | |
user@linux-study:~$ basename /home/user/notes.txt notes.txt シェルスクリプトの中でパス文字列からファイル名だけを取り出したいときに使います。ループ処理でファイル名を加工する際の定番コマンドです。 |
|||
| パス ディレクトリ部分のみ抽出 | パスからディレクトリ部分だけを取り出す | 中級 第12章 | |
user@linux-study:~$ dirname /home/user/notes.txt /home/user basenameがファイル名部分を取り出すのに対し、dirnameはその逆でディレクトリ部分だけを取り出す、対になったコマンドです。 |
|||
| -f ファイルの存在確認 / -d ディレクトリの存在確認 / -z 文字列が空か判定 / -eq・-ne 数値比較 | 条件式を評価する(シェルスクリプトの分岐に使用) | 中級 第12章 | |
user@linux-study:~$ [ -f notes.txt ] && echo "ファイルが存在します" ファイルが存在します test(角括弧[ ]も同じ意味)はif文の条件部分で使われ、ファイルの存在確認や文字列・数値の比較結果を終了ステータスとして返します。シェルスクリプトの分岐処理の基本です。 |
|||
| 時刻 指定時刻に1回だけ実行予約 / atq 予約一覧の確認 / atrm 番号 予約の取消 | 指定した時刻に1回だけコマンドを実行する | 中級 第13章 | |
user@linux-study:~$ at 23:00 at> /home/user/backup.sh at> Ctrl+D job 3 at Sat Jan 10 23:00:00 2026 cronが「定期的な繰り返し実行」を担当するのに対し、atは「1回限りの予約実行」を担当します。深夜メンテナンスなど、決まった時刻に一度だけ実行したい作業に使います。 |
|||
| (引数なしで実行し、コマンドを標準入力で受け付ける) | システム負荷が下がったタイミングで1回だけコマンドを実行する | 中級 第13章 | |
user@linux-study:~$ batch at> /home/user/heavy-report.sh at> Ctrl+D job 4 at Sat Jan 10 09:05:00 2026 atが「指定した時刻」に実行するのに対し、batchは時刻を指定せず、システムの負荷(load average)が一定以下に下がったタイミングを見計らって実行します。重い処理を、他の作業の邪魔にならないタイミングで走らせたいときに使います。 |
|||
| -a 追記モード(既定は上書き) | 標準入力を画面表示しつつファイルにも保存する | 中級 第8章 | |
user@linux-study:~$ ps aux | tee process.log | grep nginx (画面にはgrepの結果、process.logには全プロセスが保存される) リダイレクトだけだと画面には何も表示されなくなりますが、teeを挟むことで「画面に表示しつつ同時にファイルにも保存する」ことができます。パイプの途中経過を記録したいときに便利です。 |
|||
| 最初 増分 最後 の形式で範囲を指定 / -s 区切り文字を指定 / -w 桁数を揃える | 連続した数値を生成する | 中級 第12章 | |
user@linux-study:~$ seq 1 2 10 1 3 5 7 9 seq 1 2 10で、1から10までを2刻みで生成しています。forループの回数指定や、連番のファイル名を一括生成するシェルスクリプトでよく使われます。 |
|||
| & と組み合わせてバックグラウンド実行することが多い | ログアウト後もプロセスを実行し続けさせる | 中級 第9章 | |
user@linux-study:~$ nohup ./long-task.sh & appending output to 'nohup.out' 通常、SSH接続を切断するとそのセッションで起動したプロセスも終了してしまいます。nohupを付けて起動すると、ログアウト後もプロセスの実行が継続され、出力はnohup.outに保存されます。 |
|||
| -S 名前 新規セッション作成 / Ctrl+A d デタッチ / -r 再アタッチ / -ls セッション一覧を表示 | 端末セッションを維持したまま切断・再接続する(古くからある定番ツール) | 中級 第9章 | |
user@linux-study:~$ screen -S work (screen内で作業 → Ctrl+A d でデタッチ) user@linux-study:~$ screen -r work nohupと似た目的で、こちらは仮想的な端末セッションごと維持する仕組みです。作業を中断してデタッチ(切り離し)し、後で別の端末から再アタッチして続きの画面をそのまま再開できます。多くの環境に古くから標準で入っています。 |
|||
| -s 名前 new で新規セッション作成 / Ctrl+B d デタッチ / attach -t 再アタッチ / 画面分割(Ctrl+B %など)に対応 | 端末セッションを維持したまま切断・再接続する(画面分割等が可能な後発ツール) | 中級 第9章 | |
user@linux-study:~$ tmux new -s work (tmux内で作業 → Ctrl+B d でデタッチ) user@linux-study:~$ tmux attach -t work screenと同じ目的の後発ツールで、1画面を複数ペインに分割したり、設定ファイルで細かくカスタマイズできたりする点が強化されています。screenと比べて操作性・拡張性を重視する場合によく選ばれますが、標準では入っていない環境もあります。 |
|||
| -n 秒数 実行間隔を指定 / -d 前回との差分をハイライト / -g 出力が変化したら終了 | 指定したコマンドを定期的に自動で再実行し続ける | 上級 第1章 | |
user@linux-study:~$ watch -n 2 'df -h' (2秒おきにdf -hの結果が更新され続ける画面が表示される。Ctrl+Cで終了) 本来は1回しか実行されないコマンドを、watchで包むことで定期的に自動再実行できます。ディスク使用量やプロセス数の変化をリアルタイムに目視確認したいときによく使われます。 |
|||
テキスト処理(応用)
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| スペース: 次画面 / q: 終了(lessの前身にあたる古典的なページャ) | ファイルをページ送りで表示する | 初級 第5章 | |
user@linux-study:~$ more notes.txt (1画面ずつ表示され、qキーで終了) moreはlessの前身にあたるページャで、前の画面に戻れないなど機能は限定的です。現在では上位互換のlessを使うのが一般的ですが、最小構成の環境などでは今も使われています。 |
|||
| -u 差分をunified形式で表示 / -r ディレクトリごと再帰的に比較 / -y 左右並べて表示 | 2つのファイルの差分を表示する | 中級 第7章 | |
user@linux-study:~$ diff -u old.conf new.conf --- old.conf +++ new.conf -port 8080 +port 8090 diff -uは変更前後の差分を、削除行に-、追加行に+を付けて表示します。設定ファイルの変更内容を確認したり、パッチファイルを作成したりする際の基本コマンドです。 |
|||
| -1・-2・-3 それぞれの列(片方のみ・もう片方のみ・両方共通)を非表示にする | ソート済みの2ファイルを比較し共通行・差分行を表示する | 中級 第7章 | |
user@linux-study:~$ comm -12 sorted1.txt sorted2.txt (両方のファイルに共通する行だけが表示される) comm -12のように-1と-2の両方を指定すると、3列表示のうち片方だけの行を消し、両ファイルに共通する行だけが残ります。事前にsortしておく必要がある点がuniqと似ています。 |
|||
| -1・-2 結合キーとなる列番号を指定 / -t 区切り文字を指定 | 共通の列をキーに2つのファイルを結合する | 中級 第7章 | |
user@linux-study:~$ join users.txt depts.txt 1001 alice sales joinはデータベースのJOIN操作のように、共通のキー列を持つ2つのファイルを1つの行にまとめます。事前に両ファイルをキー列でソートしておく必要があります。 |
|||
| -d 区切り文字を指定(既定はタブ) / -s 複数行を1行にまとめる | 複数ファイルを行単位で横に連結する | 中級 第7章 | |
user@linux-study:~$ paste names.txt scores.txt alice 90 bob 85 catがファイルを縦に連結するのに対し、pasteは複数ファイルの同じ行番号同士を横に並べて連結します。CSV風のデータを組み立てる際などに使われます。 |
|||
| -l 行数で分割 / -b サイズ(例 10M)で分割 | 大きなファイルを複数の小さなファイルに分割する | 中級 第7章 | |
user@linux-study:~$ split -l 1000 huge.log part_ user@linux-study:~$ ls part_aa part_ab part_ac split -l 1000で、huge.logを1000行ごとの小さなファイル(part_aa、part_abなど)に分割しています。メール添付やアップロードの容量制限に合わせてファイルを分けたいときに使います。 |
|||
| (オプションなしで行の順序を逆転。catの逆読みが名前の由来) | ファイルの行の並び順を逆転して表示する | 中級 第7章 | |
user@linux-study:~$ tac access.log | head -3 (ログファイルの末尾3行が、新しい順に表示される) tacはcatを逆から読んだ名前の通り、ファイルの行を逆順(最終行から)に表示します。最新のログから確認したいときに、tail -rの代わりとして使われることがあります。 |
|||
| (オプションなしで各行内の文字の並びを逆転) | 各行内の文字の並び順を逆転して表示する | 中級 第7章 | |
user@linux-study:~$ echo "hello" | rev olleh tacが「行の順序」を逆転するのに対し、revは各行の「文字そのものの並び」を逆転します。用途は全く異なり、パリンドローム判定や特定パターンのテキスト加工などで使われる小さなツールです。 |
|||
| タブをスペースに変換 / -t 幅を指定 | タブをスペースに変換する | 中級 第7章 | |
user@linux-study:~$ expand -t 4 code.py > code_spaces.py (タブがスペース4個に変換される) エディタやチームによってタブとスペースの扱いが異なるため、コードの整形時にexpandで統一することがあります。-tでタブ幅(何文字分に展開するか)を指定できます。 |
|||
| スペースをタブに変換 / -a 行頭以外の連続スペースも対象にする | スペースをタブに変換する | 中級 第7章 | |
user@linux-study:~$ unexpand -t 4 code_spaces.py > code.py (スペース4個ごとにタブへ変換される) expandの逆操作で、スペースをタブに変換します。設定を切り替える際の相互変換ペアです。 |
|||
| (オプションなしで行番号付き表示。catの-nより高機能) / -b 番号付けの対象行を指定 | テキストファイルに行番号を付けて表示する | 中級 第7章 | |
user@linux-study:~$ nl notes.txt
1 買い物リスト
2 牛乳
cat -nでも簡易的な行番号表示はできますが、nlは空行を除外して番号を振る、書式を細かく指定できるなど、より柔軟な行番号付けに特化したコマンドです。 |
|||
| -c 内容を文字表示 / -x 16進数表示 / -A 番地表示の基数を指定 | バイナリファイルの中身を8進数・16進数等で確認する | 中級 第7章 | |
user@linux-study:~$ od -c /bin/ls | head -1 0000000 177 E L F 002 001 001 000 nlがテキストファイルに行番号を振るコマンドであるのに対し、odはテキストエディタでは開けないバイナリファイルの中身を8進数・16進数・文字表現として確認するための、まったく別の用途のコマンドです。ファイル形式の判定やトラブルシューティングで使われます。 |
|||
システム情報・カーネルモジュール
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| -a すべての情報 / -r カーネルバージョン / -m アーキテクチャ(x86_64等) / -n ホスト名 | カーネルやシステムの情報を表示する | 中級 第2章 | |
user@linux-study:~$ uname -a Linux linux-study 6.8.0-generic #1 SMP x86_64 GNU/Linux uname -aで、カーネル名・ホスト名・カーネルバージョン・アーキテクチャなど、システムの基本情報がまとめて表示されます。サポート対応時に環境情報を伝える際によく使われます。 |
|||
| -f FQDN(完全修飾ドメイン名)を表示 / -I 割り当てられたIPアドレスを表示 | ホスト名を表示・一時的に設定する | 上級 第3章 | |
user@linux-study:~$ hostname linux-study hostnameだけを実行すると、現在のホスト名がそのまま表示されます。hostnameコマンドでの変更は一時的なもので、再起動すると元に戻ります。 |
|||
| set-hostname ホスト名を恒久的に設定 / status 現在の設定を確認 | systemd経由でホスト名を恒久的に設定する | 上級 第3章 | |
user@linux-study:~$ sudo hostnamectl set-hostname web01.example.local user@linux-study:~$ hostnamectl status hostnameコマンドでの変更が一時的なのに対し、hostnamectlはsystemd管理下で恒久的にホスト名を変更できる、現在の標準的な方法です。 |
|||
| (オプションなしでログイン中のユーザーと時刻を表示) | 現在ログイン中のユーザーを一覧表示する | 中級 第13章 | |
user@linux-study:~$ who user pts/0 2026-01-10 09:00 whoは現在ログインしているユーザーと、それぞれのログイン時刻・端末を一覧表示します。 |
|||
| (オプションなしでログイン中のユーザーと実行中コマンドを表示) | ログイン中のユーザーと現在の負荷・実行中コマンドを表示する | 中級 第13章 | |
user@linux-study:~$ w 10:15:03 up 3 days, load average: 0.15 USER TTY LOGIN@ IDLE WHAT user pts/0 09:00 0.00s top whoの表示内容に加えて、システムの負荷(load average)や、各ユーザーが今何を実行しているか(WHAT列)まで一度に確認できる、より情報量の多いコマンドです。 |
|||
| ユーザー名 で対象を絞り込み / -n 表示件数を指定 | 過去のログイン履歴を確認する | 中級 第13章 | |
user@linux-study:~$ last -n 3 user pts/0 192.168.1.5 Sat Jan 10 09:00 still logged in who・wが「今」の状態を表示するのに対し、lastは/var/log/wtmpに記録された過去のログイン履歴を確認するコマンドです。不審なログインがなかったかの調査などに使います。 |
|||
| ユーザー名を指定可(省略時は自分自身) / -u UIDのみ表示 / -g GIDのみ表示 | ユーザーのUID・GID・所属グループを表示する | 中級 第13章 | |
user@linux-study:~$ id uid=1000(user) gid=1000(user) groups=1000(user),27(sudo) idを実行すると、自分自身または指定したユーザーのUID・GID・所属しているすべてのグループが表示されます。sudo権限があるかどうかも、groups一覧にsudoグループが含まれているかで判断できます。 |
|||
| ユーザー名を指定可(省略時は自分自身) | 所属グループ名のみを表示する | 中級 第13章 | |
user@linux-study:~$ groups user sudo developers idの出力からUID・GIDなどの数値情報を省き、所属グループ名だけを手早く確認したいときに使う、より単純なコマンドです。 |
|||
| (オプションなしでPCIデバイス一覧を表示) / -v 詳細表示 | PCI接続のデバイス情報を表示する | 中級 第2章 | |
user@linux-study:~$ lspci | head -3 00:00.0 Host bridge: Intel Corporation 00:02.0 VGA compatible controller グラフィックボードやネットワークカードなど、マザーボードのPCIスロットに接続されている機器の一覧を確認するのに使います。 |
|||
| (オプションなしでUSBデバイス一覧を表示) / -v 詳細表示 | USB接続のデバイス情報を表示する | 中級 第2章 | |
user@linux-study:~$ lsusb Bus 001 Device 002: ID 8087:0aaa Intel Corp. lspciがPCI接続の機器を確認するのに対し、lsusbはキーボード・マウス・USBメモリなどUSB接続の機器を確認する、対象デバイスの種類が異なる別のコマンドです。 |
|||
| (オプションなしでCPU情報の詳細を表示) | CPUのアーキテクチャ・コア数等の詳細を表示する | 中級 第2章 | |
user@linux-study:~$ lscpu | head -3 Architecture: x86_64 CPU(s): 4 lspci・lsusbが接続デバイスの一覧なのに対し、lscpuはCPU自体のコア数・アーキテクチャ・キャッシュサイズなどの詳細情報を確認する専用コマンドです。 |
|||
| (オプションなしで読み込み済みモジュール一覧を表示) | 現在読み込まれているカーネルモジュールを一覧表示する | 中級 第2章 | |
user@linux-study:~$ lsmod | grep nvidia nvidia_drm 69632 2 lsmodは現在読み込まれているカーネルモジュールの一覧と、依存関係・使用数を確認する「照会専用」のコマンドです。 |
|||
| (オプションなしでロード) / -r 依存関係も含めてアンロード | 依存関係を解決しながらカーネルモジュールをロード・アンロードする | 中級 第2章 | |
user@linux-study:~$ sudo modprobe nvidia user@linux-study:~$ sudo modprobe -r nvidia modprobeは依存する他のモジュールも自動的に解決してロード・アンロードするため、実務では単体操作のinsmod/rmmodより広く使われます。 |
|||
| ファイルパス(.koファイル)を指定してロード | 依存関係を解決せず単体でカーネルモジュールをロードする | 中級 第2章 | |
user@linux-study:~$ sudo insmod ./mymodule.ko modprobeと違い、依存する他のモジュールを自動解決しません。自分でビルドしたモジュールのテストなど、単体でのロードを厳密に制御したい場面で使われます。 |
|||
| モジュール名を指定してアンロード | 依存関係を解決せず単体でカーネルモジュールをアンロードする | 中級 第2章 | |
user@linux-study:~$ sudo rmmod mymodule insmodの逆操作で、ロードしたモジュールを取り外します。他のモジュールがまだそのモジュールに依存している場合は失敗します。 |
|||
| -h 人が読みやすい単位で表示 / -s 秒数 定期的に更新表示 / -t 合計行も表示 | メモリとスワップの使用状況を確認する | 上級 第1章 | |
user@linux-study:~$ free -h
total used free shared buff/cache
Mem: 7.8G 2.1G 3.2G 180M 2.5G
メモリ不足が疑われる障害の一次切り分けで真っ先に確認する項目です。availableの値が実質的な空き容量の目安になります。 |
|||
| vmstat 秒数 回数(例: vmstat 2 5 で2秒おき5回表示) / -a active・inactiveメモリも表示 | CPU・メモリ・I/O・スワップの状況を一定間隔で表示する | 上級 第1章 | |
user@linux-study:~$ vmstat 2 3 procs -----------memory---------- ---swap-- -----io---- r b swpd free buff cache si so bi bo システム全体のボトルネックがCPU・メモリ・ディスクI/Oのどこにあるかを大まかに切り分けるときに使う定番コマンドです。 |
|||
| -T タイムスタンプを人が読める形式に / --level=err エラーのみ表示 / -w 新しいメッセージを待機して表示 | カーネルが出力したメッセージ(起動ログ・ハードウェア関連ログ)を確認する | 中級 第2章 | |
user@linux-study:~$ dmesg -T | tail -3 [Fri Aug 14 09:00:00 2026] eth0: link up ディスク障害やUSB機器の抜き差しなど、ハードウェア寄りの異常が疑われるときに真っ先に確認するログです。 |
|||
| (オプションなし) | ディスクへの書き込みバッファを強制的にフラッシュする | 中級 第3章 | |
user@linux-study:~$ sync (メモリ上の未書き込みデータがディスクへ反映される) Linuxは書き込みを一旦メモリ上のバッファに溜めてからまとめてディスクに反映することがあります。USBメモリを安全に取り外す前や、電源断のリスクがある操作の前にsyncを実行して確実に書き込ませます。 |
|||
| -c 出力形式を指定 / -f ファイルシステム自体の情報を表示 | ファイルの詳細な状態(inode情報)を表示する | 初級 第4章 | |
user@linux-study:~$ stat notes.txt File: notes.txt Size: 220 Access: 2026-01-10 09:00:00 Modify: 2026-01-09 18:30:00 ls -lより詳しく、アクセス日時(Access)・変更日時(Modify)・inode変更日時(Change)をそれぞれ個別に確認できます。ファイルがいつ最後に読まれたかを調べたいときなどに使います。 |
|||
| -x 拡張統計情報を表示 / -d ディスクI/Oのみ表示(sysstatパッケージ) | ディスクI/Oの詳細な統計情報を表示する | 上級 第1章 | |
user@linux-study:~$ iostat -x 1 3 Device r/s w/s %util sda 2.1 5.3 12.4 vmstatが全体的なI/O状況を大まかに示すのに対し、iostatはディスクデバイスごとの詳細な統計(%util=ディスク使用率など)を確認でき、特定のディスクがボトルネックになっていないか切り分けられます。 |
|||
| (オプションなしで現在のロケール設定を表示) / -a 利用可能なロケール一覧を表示 | 現在のロケール(言語・文字コード)設定を確認する | 中級 第14章 | |
user@linux-study:~$ locale LANG=ja_JP.UTF-8 LC_ALL= localeで現在の言語・文字コード設定を確認できます。表示や日付形式が想定と違う場合の確認に使う「照会用」のコマンドです。 |
|||
| -f 変換元の文字コードを指定 / -t 変換先の文字コードを指定 | ファイルの文字コードを変換する | 中級 第14章 | |
user@linux-study:~$ iconv -f SHIFT-JIS -t UTF-8 old.txt > new.txt localeが設定を「確認する」コマンドであるのに対し、iconvは異なる文字コード(Shift-JISとUTF-8など)間で実際にファイルを変換する、まったく別の役割のコマンドです。文字化けの調査・修正によく使われます。 |
|||
| chroot 新しいルート コマンド | プロセスから見えるルートディレクトリを変更する | 上級 第4章 | |
user@linux-study:~$ sudo chroot /mnt/recovery /bin/bash (/mnt/recoveryをルートとした環境に切り替わる) レスキュー環境から起動して壊れたシステムを修復する際、chrootで対象のディスクをルートディレクトリとして切り替えることで、あたかもそのシステムが起動しているかのようにコマンドを実行できます。 |
|||
ドキュメント参照
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| -k キーワード検索(apropos相当) / 数字 セクション番号を指定して同名コマンドを区別 | コマンドのマニュアルを表示する | 初級 第1章 | |
user@linux-study:~$ man ls (lsコマンドの詳細なマニュアルページが表示される。qで終了) manは各コマンドの公式マニュアルを表示します。同じ名前でもコマンドと設定ファイルなどセクションが分かれている場合があり、man 5 passwdのようにセクション番号を指定して区別できます。 |
|||
| コマンド名を正確に指定 | コマンド名から一行の簡潔な説明を表示する | 初級 第1章 | |
user@linux-study:~$ whatis ls ls (1) - list directory contents whatisはコマンド名から短い説明だけを素早く確認したいときに使います。コマンド名を正確に知っている必要があります。 |
|||
| キーワード(man -kと同義) | キーワードから関連するコマンドを検索する | 初級 第1章 | |
user@linux-study:~$ apropos partition fdisk (8) - manipulate disk partition table parted (8) - a partition manipulation program whatisが正確なコマンド名を知っている前提なのに対し、aproposはコマンド名がうろ覚えのとき、キーワードから関連しそうなコマンドを幅広く検索できます。 |
|||
| (オプションなし・manより階層的で詳細な場合がある) | GNU info形式のマニュアルを表示する | 初級 第1章 | |
user@linux-study:~$ info coreutils (ハイパーリンク形式でセクションを辿れるマニュアルが表示される) GNU系のコマンドの一部は、manよりも詳しい説明がinfo形式で提供されています。ハイパーリンクのようにセクション間を移動しながら読み進められるのが特徴です。 |
|||
ディスクメンテナンス(応用)
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| -l ファイルシステムのパラメータを表示 / -L ボリュームラベルを設定 | ext系ファイルシステムのパラメータを調整する | 中級 第4章 | |
user@linux-study:~$ sudo tune2fs -l /dev/sda2 | head -5 Filesystem volume name: <none> Filesystem UUID: 1a2b3c4d-... tune2fsで、ext4などext系ファイルシステムのラベルやマウント回数、最終チェック日時といった内部パラメータを確認・変更できます。 |
|||
| サイズを省略すると対象パーティションいっぱいまで拡張 | ext系ファイルシステムのサイズを拡張・縮小する | 上級 第6章 | |
user@linux-study:~$ sudo lvextend -L +10G /dev/vg01/data_lv user@linux-study:~$ sudo resize2fs /dev/vg01/data_lv lvextendでLVの容量を拡張しただけでは、ファイルシステム自体のサイズは変わりません。ext2/ext3/ext4であれば、resize2fsで拡張した容量までファイルシステムを広げる必要があります。 |
|||
| マウントポイントを指定(デバイス名ではない点に注意) | XFSファイルシステムのサイズを拡張する(縮小は非対応) | 上級 第6章 | |
user@linux-study:~$ sudo xfs_growfs /mnt/data resize2fsがext系専用なのに対し、xfs_growfsはXFS専用のリサイズコマンドです。対象をデバイス名ではなくマウントポイントで指定する点や、縮小に対応していない点がresize2fsと異なります。 |
|||
| -u ユーザーの使用量確認 / -g グループの使用量確認 | 自分(または指定ユーザー)のディスク使用量・上限を確認する | 中級 第4章 | |
user@linux-study:~$ quota -u alice Disk quotas for user alice: 1200MB used, 2000MB limit 共用サーバーで特定のユーザーがディスクを使い切ってしまうのを防ぐため、quota機能でユーザーごとに使用容量の上限(クォータ)を設定できます。quotaコマンドはその使用状況を「確認」するためのものです。 |
|||
| -u ユーザー名 を指定してエディタで割り当てを編集 | ユーザー・グループごとのディスク割り当て上限を編集する | 中級 第4章 | |
user@linux-study:~$ sudo edquota -u alice (エディタが開き、blocks・inodesの上限値を編集できる) quotaが使用状況を見るだけなのに対し、edquotaは実際に上限値を「設定・変更する」ための管理者向けコマンドです。 |
|||
| -a すべてのファイルシステムについてレポート | 全ユーザーの使用量をまとめてレポート表示する | 中級 第4章 | |
user@linux-study:~$ sudo repquota -a User used soft hard alice 1200M 1500M 2000M quotaが1ユーザーずつ確認するコマンドであるのに対し、repquotaは全ユーザー分をまとめて一覧表示するため、ディスクを圧迫しているユーザーを一目で洗い出したいときに使います。 |
|||
| -v 詳細表示 / -n 読み書きテスト(データは保持) / -w 書き込みテスト(データが破壊される) | ディスクの不良セクタを検査する | 上級 第4章 | |
user@linux-study:~$ sudo badblocks -v /dev/sdb Checking blocks 0 to 20971519 (不良ブロックが見つかればブロック番号が一覧表示される) ディスク障害が疑われる際に、実際に読み書きを試して不良セクタを洗い出すコマンドです。-wの書き込みテストはデータを破壊するため、既存データがあるディスクでは使用に注意が必要です。 |
|||
LVM/RAID詳細確認
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| (オプションなしで物理ボリューム一覧を表示) | 物理ボリューム(PV)の状態を一覧表示する | 上級 第6章 | |
user@linux-study:~$ pvs PV VG Fmt Attr PSize PFree /dev/sdb1 vg01 lvm2 a-- 20.00g 4.00g pvsは、物理ディスクをLVMに登録した単位である物理ボリューム(PV)の状態を1行1件のコンパクトな表形式で確認できます。 |
|||
| (オプションなしでボリュームグループ一覧を表示) | ボリュームグループ(VG)の状態を一覧表示する | 上級 第6章 | |
user@linux-study:~$ vgs VG #PV #LV #SN Attr VSize VFree vg01 1 2 0 wz--n- 19.00g 4.00g 複数のPVをまとめた「容量のプール」であるボリュームグループ(VG)の状態を確認します。pvsとは対象の粒度(PVかVGか)が異なります。 |
|||
| (オプションなしで論理ボリューム一覧を表示) | 論理ボリューム(LV)の状態を一覧表示する | 上級 第6章 | |
user@linux-study:~$ lvs LV VG Attr LSize data_lv vg01 -wi-ao---- 10.00g VGから実際に切り出して使う論理ボリューム(LV)の状態を確認します。pvs・vgs・lvsはLVMの3階層(PV→VG→LV)にそれぞれ対応する別のコマンドです。 |
|||
| 対象を省略すると全件、指定すると個別の詳細情報を表示 | 物理ボリューム(PV)の詳細情報を表示する | 上級 第6章 | |
user@linux-study:~$ sudo pvdisplay /dev/sdb1 PV Name /dev/sdb1 VG Name vg01 pvsが一覧向けの簡潔な表示なのに対し、pvdisplayは1件ごとの詳細情報を縦に並べて表示します。 |
|||
| 対象を省略すると全件、指定すると個別の詳細情報を表示 | ボリュームグループ(VG)の詳細情報を表示する | 上級 第6章 | |
user@linux-study:~$ sudo vgdisplay vg01 VG Name vg01 VG Size 19.00 GiB vgsが一覧向けの簡潔な表示なのに対し、vgdisplayは1件ごとの詳細情報を縦に並べて表示します。 |
|||
| 対象を省略すると全件、指定すると個別の詳細情報を表示 | 論理ボリューム(LV)の詳細情報を表示する | 上級 第6章 | |
user@linux-study:~$ sudo lvdisplay /dev/vg01/data_lv LV Path /dev/vg01/data_lv LV Size 10.00 GiB lvsが一覧向けの簡潔な表示なのに対し、lvdisplayは1件ごとの詳細情報を縦に並べて表示します。特定のLVの詳細な設定値を確認したいときに使います。 |
|||
| VG名 PV名 を指定してVGにPVを追加 | ボリュームグループに物理ボリュームを追加して拡張する | 上級 第6章 | |
user@linux-study:~$ sudo pvcreate /dev/sdd user@linux-study:~$ sudo vgextend vg01 /dev/sdd 新しいディスクをPVとして初期化した後、vgextendで既存のVGに追加すると、VG全体の容量を拡張できます。 |
|||
| VG名 PV名 を指定してVGからPVを取り除く | ボリュームグループから物理ボリュームを取り除いて縮小する | 上級 第6章 | |
user@linux-study:~$ sudo vgreduce vg01 /dev/sdd vgextendの逆方向の操作です。取り外したいPVにまだデータが残っている場合は、先にpvmoveで他のPVへデータを退避してからvgreduceを実行する必要があります。 |
|||
| 移動元PV 移動先PV を指定(省略時は空いている他のPVへ自動で移動) | 物理ボリューム間でデータを移動する | 上級 第6章 | |
user@linux-study:~$ sudo pvmove /dev/sdd /dev/sde ディスクを無停止で交換・退役させたいとき、pvmoveでデータを別のPVへ移してからvgreduceで古いPVを切り離す、という流れで使います。vgextend・vgreduceとは異なり、容量そのものは変えずデータの配置だけを移動する点が特徴です。 |
|||
| デバイス(例 /dev/sdd)を指定して物理ボリュームとして初期化 | ディスクやパーティションをLVMの物理ボリューム(PV)として初期化する | 上級 第6章 | |
user@linux-study:~$ sudo pvcreate /dev/sdd LVMを使い始める最初の一歩となるコマンドです。対象のディスクにLVM用のメタデータ領域を書き込み、次のvgcreateやvgextendで使えるPVにします。 |
|||
| VG名 PV名 を指定して新規ボリュームグループを作成 | 物理ボリュームをまとめてボリュームグループ(VG)を新規作成する | 上級 第6章 | |
user@linux-study:~$ sudo vgcreate vg01 /dev/sdd pvcreateで作成したPVを1つ以上まとめて、論理ボリューム(LV)を切り出す土台となるVGを作成します。後からvgextendでPVを追加し、容量を拡張できます。 |
|||
| VGパス上の論理ボリュームを指定して削除 | 論理ボリュームを削除する | 上級 第6章 | |
user@linux-study:~$ sudo lvremove /dev/vg01/lv_data Do you really want to remove active logical volume vg01/lv_data? [y/n]: y 削除すると中のデータも失われるため、対話的な確認プロンプトが表示されます。事前にumountでアンマウントしておく必要があります。 |
|||
| VG名 を指定して削除(配下のLVがすべて削除済みである必要あり) | ボリュームグループを削除する | 上級 第6章 | |
user@linux-study:~$ sudo vgremove vg01 VG配下にLVが残っている状態では削除できません。lvremoveで配下のLVをすべて削除してから実行します。 |
|||
| -a y 対象VGのすべてのLVを活性化 / -a n 非活性化 | ボリュームグループ内のLVをまとめて活性化・非活性化する | 上級 第6章 | |
user@linux-study:~$ sudo vgchange -a y vg01 サルベージ作業でディスクを別サーバーに移した直後など、LVが非活性(inactive)状態になっている場合にvgchange -a yで使える状態にします。 |
|||
ネットワーク応用
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| -tulnp 待受ポートとプロセスを表示(ssの前身にあたる旧世代のコマンド) | ネットワーク接続状況を確認する | 中級 第15章 | |
user@linux-study:~$ netstat -tulnp Proto Local Address State PID/Program tcp 0.0.0.0:22 LISTEN 1023/sshd netstatはssの前身にあたるコマンドで、多くのディストリビューションでは標準では入っておらずnet-toolsパッケージの追加インストールが必要です。現在はssの使用が推奨されていますが、古い環境やドキュメントでは今も見かけます。 |
|||
| (オプションなしで有効なインターフェース一覧を表示) / インターフェース名 up・down 有効化・無効化 / インターフェース名 IPアドレス netmask マスク でアドレス設定 | ネットワークインターフェースの状態を確認・設定する(ipコマンドの前身にあたる旧世代のコマンド) | 中級 第15章 | |
user@linux-study:~$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.10 netmask 255.255.255.0
ifconfigはip addrやip linkの前身にあたるコマンドで、net-toolsパッケージに含まれます。多くの現行ディストリビューションでは標準では入っておらず、後継のipコマンドの使用が推奨されていますが、古い手順書や試験範囲では今も登場します。 |
|||
| (オプションなしで現在の経路情報を表示) / add・del 経路の追加・削除 / -n 名前解決せずIPアドレスのみ表示 | ルーティングテーブルを確認・設定する(ip routeの前身にあたる旧世代のコマンド) | 中級 第15章 | |
user@linux-study:~$ route -n Kernel IP routing table Destination Gateway Genmask Flags Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG eth0 routeはip route showの前身にあたるコマンドで、netstatと同じくnet-toolsパッケージに含まれます。デフォルトゲートウェイが正しく設定されているかを確認する用途で使われますが、現在はip routeが標準です。 |
|||
| -i インターフェース指定 / -n 名前解決しない / -w ファイルに保存 / port 80 のようにポート指定でフィルタ | パケットをキャプチャして解析する | 上級 第14章 | |
user@linux-study:~$ sudo tcpdump -i eth0 -n port 80 09:00:01.123 IP 192.168.1.10.51234 > 93.184.216.34.80: Flags [S] tcpdumpは指定したネットワークインターフェースを流れるパケットをリアルタイムでキャプチャします。-wでファイルに保存すれば、後からWiresharkのようなGUIツールで詳細に解析することもできます。 |
|||
| eth0 リンク速度・デュプレックスモードなどを確認 / -s 速度・デュプレックスを設定 | NICの物理層の状態を確認・設定する | 上級 第7章 | |
user@linux-study:~$ ethtool eth0
Settings for eth0:
Speed: 1000Mb/s
Duplex: Full
ethtoolで、NICが実際にどの速度(1Gbpsなど)・どのデュプレックスモード(全二重/半二重)でリンクしているかを確認できます。速度が想定より低い場合の通信遅延調査などに使います。 |
|||
| -a ARPテーブルを表示 | IPアドレスとMACアドレスの対応表(ARPテーブル)を旧世代のコマンドで確認する | 上級 第7章 | |
user@linux-study:~$ arp -a ? (192.168.1.1) at 00:11:22:33:44:55 [ether] on eth0 arpはnet-toolsパッケージに含まれる旧世代のコマンドで、多くの現行ディストリビューションでは標準では入っていません。 |
|||
| show 一覧表示(省略可) / add・del エントリの追加・削除 | IPアドレスとMACアドレスの対応表(ARPテーブル)をipコマンド体系で確認する | 上級 第7章 | |
user@linux-study:~$ ip neigh show 192.168.1.1 dev eth0 lladdr 00:11:22:33:44:55 REACHABLE 同じネットワークセグメント内の機器と通信する際、IPアドレスからMACアドレスを解決するARPというプロトコルの結果がここに記録されます。ip neighは、ip addr・ip routeと同じipコマンド体系での確認方法で、現在はこちらの使用が推奨されています。 |
|||
| -r 現在のリースを解放 / インターフェース名を指定して特定NICのみ更新 | DHCPクライアントとしてIPアドレスの取得・更新を行う | 上級 第12章 | |
user@linux-study:~$ sudo dhclient -r eth0 user@linux-study:~$ sudo dhclient eth0 DHCPサーバーから割り当てられたIPアドレスに問題がある場合、dhclient -rで一旦リース(割り当て)を解放し、再度dhclientを実行することでアドレスを再取得できます。 |
|||
| -i インターフェース指定 / -P ポート番号も表示 | インターフェースごとの帯域使用状況をリアルタイムに表示する | 上級 第7章 | |
user@linux-study:~$ sudo iftop -i eth0 (送信元・宛先ごとの帯域使用量がリアルタイムに一覧表示される) topがプロセス単位でCPU・メモリを表示するのに対し、iftopは接続(ホストペア)単位でどことの通信が帯域を占有しているかを可視化するツールです。 |
|||
| -d 秒数 更新間隔を指定 | プロセス単位でネットワーク帯域の使用状況を表示する | 上級 第7章 | |
user@linux-study:~$ sudo nethogs eth0 PID USER PROGRAM SENT RECEIVED 2048 user /usr/bin/rsync 1.2 MB/s 0.1 MB/s iftopが通信先ごとに帯域を表示するのに対し、nethogsはどのプロセスが帯域を消費しているかをプロセス単位で表示します。特定プロセスが帯域を占有していないかの切り分けに便利です。 |
|||
| -c 回数 送信するARPリクエストの回数を指定 | ARPレベルで同一セグメント内の機器への疎通を確認する | 上級 第7章 | |
user@linux-study:~$ arping -c 3 192.168.1.1 Unicast reply from 192.168.1.1 [00:11:22:33:44:55] pingがICMP(IP層)で疎通確認するのに対し、arpingはARP(データリンク層)で応答を確認します。IPアドレスが未設定の機器や、IP層より下のレイヤーの疎通調査に使います。 |
|||
| インターフェース名 を指定(オプションなしで全インターフェースの無線設定を一覧表示) | 無線LANインターフェースの設定・状態を確認する | 上級 第7章 | |
user@linux-study:~$ iwconfig wlan0
wlan0 IEEE 802.11 ESSID:"office-wifi"
Link Quality=70/70 Signal level=-40 dBm
ifconfigの無線LAN版にあたる旧世代のコマンドで、SSIDや電波強度を確認できます。現在はip・iwコマンド(iproute2、iw)への移行が進んでいますが、試験範囲や古い環境では今も使われます。 |
|||
DNS・Webサーバー管理
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| 設定ファイル(named.conf)を指定(省略時は既定のパス) | BINDの全体設定ファイルの文法をチェックする | 上級 第9章 | |
user@linux-study:~$ sudo named-checkconf 設定変更後、サービスを再起動する前に必ず実行しておきたい文法チェックです。named.confなどの全体設定を対象にします。 |
|||
| ゾーン名 ゾーンファイル を指定 | BINDの個別ゾーンファイルの文法をチェックする | 上級 第9章 | |
user@linux-study:~$ sudo named-checkzone example.com /etc/bind/db.example.com named-checkconfが全体設定を対象にするのに対し、named-checkzoneはドメインごとのゾーンファイル(レコード定義)を個別にチェックする別のコマンドです。 |
|||
| reload 設定の再読み込み / status 稼働状況の確認 | 稼働中のBIND(DNSサーバー)を制御する | 上級 第9章 | |
user@linux-study:~$ sudo rndc reload server reload successful named-checkconf・named-checkzoneが「設定ファイルの文法を静的にチェックする」コマンドであるのに対し、rndcはBINDを起動したまま設定の再読み込みなどを行う「稼働中の制御」用の別のコマンドです。 |
|||
| configtest 設定ファイルの文法チェック / graceful 無停止で設定を再読み込み | Apache HTTPサーバーの設定検証・制御を行う | 上級 第10章 | |
user@linux-study:~$ sudo apache2ctl configtest Syntax OK Apache HTTPサーバー専用の制御コマンドです。設定変更後にsystemctl restartする前に、まずconfigtestで文法エラーがないか確認するのが安全な手順です。 |
|||
| -t 設定ファイルの文法チェックのみ実行(サービスは起動しない) | Nginxの設定ファイルを検証する | 上級 第10章 | |
user@linux-study:~$ sudo nginx -t nginx: configuration file /etc/nginx/nginx.conf test is successful apache2ctlがApache専用のコマンドであるのに対し、こちらはNginx自体の実行ファイルに-tオプションを付けて文法チェックを行います。Webサーバーの種類が異なるため、それぞれ別々のコマンド体系になっています。 |
|||
| -c 新規ファイル作成 / -b パスワードを引数で直接指定 | Basic認証用のパスワードファイルを作成・管理する | 上級 第10章 | |
user@linux-study:~$ sudo htpasswd -c /etc/nginx/.htpasswd alice New password: Re-type new password: Webサーバーで簡易的なBasic認証を設定する際、htpasswdでユーザー名とハッシュ化されたパスワードのペアを記録したファイルを作成します。-cは新規作成時のみ付け、既存ファイルへの追加時は付けません。 |
|||
| -k 鍵ファイルを指定 / 対話的にupdate add・update deleteコマンドを入力 | DNSレコードを動的に追加・更新・削除する | 上級 第9章 | |
user@linux-study:~$ nsupdate > update add test.example.com 300 A 192.168.1.50 > send ゾーンファイルを手動編集せずに、実行中のDNSサーバーへ直接レコードの追加・削除を反映できます。DHCPと連携した動的DNS更新(DDNS)の仕組みの中核でもあります。 |
|||
| サイト設定名 を指定して有効化・無効化 | Apache(Debian系)でサイト設定を有効化・無効化する | 上級 第10章 | |
user@linux-study:~$ sudo a2ensite example.conf user@linux-study:~$ sudo systemctl reload apache2 /etc/apache2/sites-available内の設定ファイルへのシンボリックリンクをsites-enabledに作成・削除するDebian系Apache独自のコマンドです。反映にはreloadが必要です。 |
|||
| certonly 証明書のみ取得 / renew 更新 / --nginx nginx用に自動設定 | Let's Encryptの無料SSL/TLS証明書を取得・更新する | 上級 第10章 | |
user@linux-study:~$ sudo certbot --nginx -d example.com Congratulations! Your certificate has been saved. 手動でCSRを作成してopensslでやり取りする代わりに、certbotはLet's Encrypt認証局とのやり取りから証明書の設置、更新の自動化までをまとめて行います。 |
|||
ファイル共有・ディレクトリサービス
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| (オプションなし・Sambaの設定ファイルsmb.confの文法チェック) | Sambaの設定ファイルを検証する | 上級 第11章 | |
user@linux-study:~$ testparm Load smb config files from /etc/samba/smb.conf Loaded services file OK. Sambaの設定を変更した後、testparmで文法エラーがないかを確認してからサービスを再起動するのが安全な手順です。 |
|||
| -L ホスト名 共有一覧を表示 / -U ユーザー名 接続ユーザーを指定 | SMB/CIFS共有に接続してファイル操作を行う | 上級 第11章 | |
user@linux-study:~$ smbclient -L //fileserver -U alice Sharename Type data Disk smbclientは、FTPクライアントのような対話的な操作でSMB/CIFS共有に接続し、ファイルの一覧表示やダウンロード・アップロードができるコマンドです。共有への疎通確認にもよく使われます。 |
|||
| -ra /etc/exportsの内容を再読み込み / -v 現在の設定を詳細表示 | NFSサーバー側で共有設定を管理・反映する | 上級 第11章 | |
user@linux-study:~$ sudo exportfs -ra /etc/exportsを編集した後は、exportfs -raで設定を再読み込みしないと変更が反映されません。サーバー側で共有を「設定・反映する」コマンドです。 |
|||
| -e ホスト名 公開されている共有一覧を確認 | NFSサーバーが公開している共有一覧をクライアント側から確認する | 上級 第11章 | |
user@linux-study:~$ showmount -e localhost Export list for localhost: /data 192.168.1.0/24 exportfsがサーバー側の設定コマンドであるのに対し、showmountはクライアント側から「実際にどの共有が公開されているか」を確認するための別のコマンドです。 |
|||
| -x -b 検索ベースを指定して検索 | LDAPディレクトリのエントリを検索する | 上級 第12章 | |
user@linux-study:~$ ldapsearch -x -b "dc=example,dc=com" "(uid=alice)" ldapsearchはLDAPサーバーに問い合わせてエントリを検索する「読み取り専用」のコマンドです。 |
|||
| LDIF形式のファイルを-fで指定して新規エントリを追加 | LDIFファイルを使ってLDAPディレクトリに新規エントリを追加する | 上級 第12章 | |
user@linux-study:~$ ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f newuser.ldif ldapsearchが検索専用なのに対し、ldapaddはLDIF(LDAP Data Interchange Format)という形式のファイルを使って、実際に新しいエントリを追加する「書き込み用」のコマンドです。 |
|||
| LDIF形式のファイルを-fで指定して既存エントリを変更 | LDIFファイルを使ってLDAPディレクトリの既存エントリを変更する | 上級 第12章 | |
user@linux-study:~$ ldapmodify -x -D "cn=admin,dc=example,dc=com" -W -f update.ldif ldapaddが新規追加なのに対し、ldapmodifyはすでに存在するエントリの属性値を変更するための別のコマンドです。LDIFファイル内でchangetype: modifyのように操作の種類を指定します。 |
|||
| getent passwd ユーザー名 でユーザー情報を検索 / getent hosts ホスト名 で名前解決を検索 / getent group グループ名 でグループ情報を検索 | NSS(Name Service Switch)経由でローカル・LDAP等を横断検索する | 上級 第12章 | |
user@linux-study:~$ getent passwd alice alice:x:1001:1001::/home/alice:/bin/bash /etc/passwdを直接catすると、LDAPなど外部のディレクトリサービスに登録されたユーザーは表示されません。getentは/etc/nsswitch.confの設定に従い、ローカルファイルとLDAP等を横断的に検索するため、LDAP連携がうまくいっているかの確認によく使われます。 |
|||
| (オプションなしで接続中のクライアント・共有・ロック状況を表示) | Sambaサーバーへの現在の接続状況を確認する | 上級 第11章 | |
user@linux-study:~$ sudo smbstatus Samba version 4.19.0 PID Username Group Machine 2048 alice staff 192.168.1.20 testparmが設定ファイルの静的チェックであるのに対し、smbstatusは今まさに接続しているクライアントや、どのファイルがロックされているかといった稼働中の状態を確認するコマンドです。 |
|||
| -c クライアント側の統計を表示 / -s サーバー側の統計を表示 | NFSの通信統計情報を表示する | 上級 第11章 | |
user@linux-study:~$ nfsstat -s Server rpc stats: calls badcalls 182340 0 showmountが公開共有の一覧を確認するコマンドであるのに対し、nfsstatはRPC呼び出し回数などNFSの稼働統計を表示し、パフォーマンス調査に使います。 |
|||
| -p ホスト名 登録されているRPCサービス一覧を表示 | RPCサービスの登録状況を確認する | 上級 第11章 | |
user@linux-study:~$ rpcinfo -p localhost program vers proto port service 100003 3 tcp 2049 nfs NFSはRPC(rpcbind)の仕組みの上で動作するため、NFSがうまく使えないときはまずrpcinfoでnfsやmountdなどのRPCサービスが正しく登録されているかを確認します。 |
|||
| DN(識別名)を指定してエントリを削除 | LDAPディレクトリのエントリを削除する | 上級 第12章 | |
user@linux-study:~$ ldapdelete -x -D "cn=admin,dc=example,dc=com" -W "uid=alice,ou=people,dc=example,dc=com" ldapadd・ldapmodifyが追加・変更用のコマンドであるのに対し、ldapdeleteは指定したDNのエントリをディレクトリから削除する専用のコマンドです。 |
|||
| プリンシパル名 を指定してKerberosチケットを取得 | Kerberos認証のチケット(TGT)を取得する | 上級 第12章 | |
user@linux-study:~$ kinit alice@EXAMPLE.COM Password for alice@EXAMPLE.COM: LDAPと組み合わせてKerberos認証を使う環境では、kinitでチケット保証チケット(TGT)を取得しておくことで、以降のサービス利用時にパスワードを再入力せずに済みます。klistで取得済みチケットを確認できます。 |
|||
アクセス制御・セキュリティ応用
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| ファイルを指定(オプションなしでACLの設定内容を表示) | 拡張ACL(アクセス制御リスト)の設定内容を確認する | 中級 第11章 | |
user@linux-study:~$ getfacl shared.txt user:bob:rw- 通常のls -lでは見えない、ACLで追加設定された細かい権限を確認するためのコマンドです。 |
|||
| -m 追加設定 / -x 削除 / -R 再帰的に適用 | 拡張ACL(アクセス制御リスト)を設定する | 中級 第11章 | |
user@linux-study:~$ sudo setfacl -m u:bob:rw shared.txt 通常のパーミッション(所有者・グループ・その他の3種類)では表現しきれない、「特定の1ユーザーだけに追加で権限を与えたい」といった細かい制御をsetfaclで設定できます。getfaclはその設定内容を確認する対になったコマンドです。 |
|||
| req 証明書署名要求(CSR)を作成 / x509 証明書の内容を確認 / s_client 接続テスト | 証明書の作成・確認やSSL/TLS接続のテストを行う | 上級 第10章 | |
user@linux-study:~$ openssl x509 -in cert.pem -noout -dates notBefore=Jan 10 00:00:00 2026 GMT notAfter=Apr 10 00:00:00 2026 GMT openssl x509で証明書の有効期限や発行者情報を確認できます。openssl s_client -connect ホスト:443のように使うと、実際のSSL/TLSハンドシェイクをテストし、証明書チェーンの問題を調査できます。 |
|||
| (オプションなしで現在のモードを確認) | SELinuxの現在の動作モードを確認する | 上級 第14章 | |
user@linux-study:~$ getenforce Enforcing SELinuxはRed Hat系でよく有効化されている強制アクセス制御の仕組みです。getenforceは現在Enforcing(強制)かPermissive(記録のみ)かを確認する照会用のコマンドです。 |
|||
| 0 Permissiveへ切替 / 1 Enforcingへ切替 | SELinuxの動作モードを一時的に切り替える | 上級 第14章 | |
user@linux-study:~$ sudo setenforce 0 user@linux-study:~$ getenforce Permissive getenforceが確認専用なのに対し、setenforceは実際にモードを切り替える設定用のコマンドです。この切替は再起動すると元に戻る一時的な変更です。 |
|||
| fcontext ファイルコンテキストの管理 / port ポートのラベル管理 / boolean 各種スイッチの管理 | SELinuxのポリシーを永続的に変更する | 上級 第14章 | |
user@linux-study:~$ sudo semanage port -a -t http_port_t -p tcp 8080 getenforce/setenforceが再起動で元に戻る一時的な切替なのに対し、semanageはポート番号やファイルパスに対するラベル付けなど、より恒久的なSELinuxポリシーを変更するための、機能も対象も異なる管理コマンドです。 |
|||
| -t タイプを指定 / -R 再帰的に適用 | ファイルのSELinuxコンテキストを一時的に変更する | 上級 第14章 | |
user@linux-study:~$ sudo chcon -t httpd_sys_content_t /var/www/html/index.html semanageが恒久的なポリシー変更であるのに対し、chconはその場でファイル1つのラベルを書き換える一時的な変更です。restorecon実行やファイルシステムの再ラベル付けで元に戻ってしまう点に注意が必要です。 |
|||
| -R 再帰的に適用 / -v 変更内容を表示 | ファイルのSELinuxコンテキストをポリシー上の既定値に復元する | 上級 第14章 | |
user@linux-study:~$ sudo restorecon -Rv /var/www/html chconなどで一時的に変更したラベルや、mvで持ち込んだファイルの誤ったラベルを、ポリシーで定義された正しい既定値に戻すためのコマンドです。原因不明のPermission deniedの調査で頻出します。 |
|||
| (オプションなしでAppArmorの状態とプロファイル一覧を表示) | AppArmorの動作状況とロード済みプロファイルを確認する | 上級 第14章 | |
user@linux-study:~$ sudo aa-status apparmor module is loaded. 15 profiles are in enforce mode. Ubuntu系で標準的に使われる強制アクセス制御AppArmorの、getenforceに相当する状態確認コマンドです。SELinuxとは別の実装ですが、目的は同様にプロセスの権限を制限することです。 |
|||
| -l 現在の監査ルールを一覧表示 / -w パス -p 権限 監視対象を追加 | Linux監査サブシステム(audit)の監視ルールを設定・確認する | 上級 第14章 | |
user@linux-study:~$ sudo auditctl -w /etc/passwd -p wa -k passwd_changes 特定のファイルへの読み書きやシステムコールの呼び出しを監査ログ(/var/log/audit/audit.log)に記録するルールを設定します。記録された内容はausearchコマンドで検索できます。 |
|||
プロセス応用
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| 名前 一致するプロセスのPIDを検索 / -f コマンドライン全体で検索 | プロセス名からPIDを検索する | 中級 第9章 | |
user@linux-study:~$ pgrep nginx 1023 1024 psやgrepを組み合わせなくても、pgrepはプロセス名から直接PIDを検索できます。 |
|||
| 名前 一致するプロセスにシグナルを送信 / -f コマンドライン全体で検索 / -9 SIGKILLで強制終了 | プロセス名を指定してシグナルを送信する | 中級 第9章 | |
user@linux-study:~$ pkill nginx pgrepがPIDを検索するだけなのに対し、pkillは見つかったプロセスにまとめてシグナル(既定ではSIGTERM)を送信します。killがPIDを指定するのに対し、pkillはプロセス名で複数まとめて指定できる点が異なります。 |
|||
| プロセスが開いているファイル一覧を表示 / +D ディレクトリ配下を使用中のプロセスを表示 / -i ネットワーク接続も対象にする | 開いているファイルからプロセスを特定する | 上級 第4章 | |
user@linux-study:~$ lsof +D /mnt/data COMMAND PID USER FD TYPE DEVICE NODE NAME bash 2048 user cwd DIR 8,1 /mnt/data ファイルやディレクトリを起点に「今どのプロセスが使っているか」を幅広く調べられます。削除済みなのにディスク容量が解放されないファイルの調査(lsof | grep deleted)でも定番です。 |
|||
| -m マウントポイントを使用中のプロセスを表示 / -k 該当プロセスを終了 | マウントポイント・ファイルを使用中のプロセスを特定する | 上級 第4章 | |
user@linux-study:~$ sudo fuser -vm /mnt/data
USER PID ACCESS COMMAND
/mnt/data: user 2048 ..c.. bash
lsofより出力がシンプルで、umountが「device is busy」で失敗する場合など、特定のマウントポイントを使用中のプロセスをピンポイントで特定したいときによく使われます。-kで該当プロセスを直接終了させることもできます。 |
|||
| コマンド プロセスが呼び出すシステムコールを追跡 / -p PID 実行中のプロセスにアタッチ / -c 呼び出し回数を集計 | プロセスが呼び出すシステムコールを追跡する | 上級 第4章 | |
user@linux-study:~$ strace -c ls (システムコールごとの呼び出し回数・所要時間の集計が表示される) 原因不明のエラーやフリーズが起きたとき、そのプロセスが実際にどのシステムコール(ファイルオープン・ネットワーク接続等)を呼んで失敗しているかを追跡できる、低レベルなトラブルシューティングツールです。 |
|||
| コマンド プロセスが呼び出すライブラリ関数を追跡 | プロセスが呼び出すライブラリ関数を追跡する | 上級 第4章 | |
user@linux-study:~$ ltrace ls (呼び出したライブラリ関数の一覧が表示される) straceがOSのシステムコールを追跡するのに対し、ltraceはより上位のライブラリ関数(strcpyやmallocなど)の呼び出しを追跡します。追跡する対象のレイヤーが異なる別のツールです。 |
|||
| -a 現在のリソース制限を一覧表示 / -n 開けるファイル数の上限を設定 / -u 起動できるプロセス数の上限を設定 / -c コアダンプサイズの上限を設定 | シェルが使えるリソースの上限を確認・設定する | 上級 第4章 | |
user@linux-study:~$ ulimit -a open files (-n) 1024 max user processes (-u) 3813 1ユーザー・1プロセスが使い過ぎてシステム全体に影響が出ないよう、ファイル数やプロセス数に上限を設けます。恒久的な設定は/etc/security/limits.conf(PAMのpam_limits.so経由)で行います。 |
|||
| %ジョブ番号 を指定(省略時は直前のジョブ) / -h シェル終了時もSIGHUPを送らないようにする | バックグラウンドジョブをシェルの管理下から切り離す | 上級 第4章 | |
user@linux-study:~$ long_task & user@linux-study:~$ disown %1 nohupが最初からSIGHUPを無視させて起動するのに対し、disownはすでに起動済みのジョブを後からシェルのジョブ一覧・管理から外します。ログアウトしてもプロセスを継続させたい場合に使います。 |
|||
| 秒数 コマンド の形式で指定 / -s シグナルを指定(既定はSIGTERM) | 指定した時間が経過したらコマンドを強制終了する | 上級 第4章 | |
user@linux-study:~$ timeout 5 ping example.com フリーズする可能性のあるコマンドや、動作確認用に一定時間だけ実行したいコマンドに時間制限をかけられます。cron等のバッチ処理がハングしたまま残り続けるのを防ぐためにもよく使われます。 |
|||
| -c CPU番号 コマンド の形式で指定 / -p PID 実行中プロセスのCPU割り当てを確認・変更 | プロセスを特定のCPUコアに割り当てる(CPUアフィニティ) | 上級 第4章 | |
user@linux-study:~$ taskset -c 0,1 ./heavy_job 特定のプロセスを決まったCPUコアだけで実行させることで、他のプロセスとのCPUキャッシュの奪い合いを避けたり、負荷を特定のコアに固定してベンチマークしたりする際に使います。 |
|||
| -f 優先度 コマンド でFIFOスケジューリングを指定 / -p PID 実行中プロセスのポリシーを確認 | プロセスのリアルタイムスケジューリングポリシーを設定・確認する | 上級 第4章 | |
user@linux-study:~$ chrt -p 2048 policy: SCHED_OTHER, priority: 0 通常のプロセスはSCHED_OTHERという通常優先度のポリシーで動きますが、音声・制御処理など遅延が許されない用途ではchrtでSCHED_FIFOやSCHED_RRといったリアルタイムポリシーを設定します。設定を誤ると他のプロセスがCPUを奪われる点に注意が必要です。 |
|||
ブートローダーとブート関連
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| デバイス(例 /dev/sda)を指定してMBR/ブートパーティションにGRUB本体をインストール | GRUBブートローダー本体をディスクにインストールする | 中級 第1章 | |
user@linux-study:~$ sudo grub-install /dev/sda ブートローダー自体が壊れた際の復旧などで使う、GRUB本体をディスクの起動領域に書き込むコマンドです。 |
|||
| (grub-mkconfig -o /boot/grub/grub.cfg のラッパー) | GRUBの起動メニュー設定ファイルを再生成する | 中級 第1章 | |
user@linux-study:~$ sudo update-grub Generating grub configuration file... grub-installがブートローダー本体を「インストールする」コマンドであるのに対し、update-grubは現在インストールされているカーネル一覧をもとに、起動メニューの「設定ファイル」を再生成する別のコマンドです。カーネルを更新した後によく実行します。 |
|||
| (オプションなしで再生成、RHEL系標準) | initramfs(起動時の一時的なルートファイルシステム)をRHEL系の書式で再構築する | 中級 第1章 | |
user@linux-study:~$ sudo dracut -f (現在のカーネル向けにinitramfsが再生成される) RHEL/Fedora系ディストリビューションで標準的に使われるinitramfs構築ツールです。 |
|||
| -u 既存のinitramfsを更新(Debian系標準) | initramfs(起動時の一時的なルートファイルシステム)をDebian系の書式で再構築する | 中級 第1章 | |
user@linux-study:~$ sudo update-initramfs -u update-initramfs: Generating /boot/initrd.img-6.8.0-generic dracutと目的は同じですが、Debian/Ubuntu系ディストリビューションで使われる別のコマンドです。ディスクドライバなど起動に必要なモジュール構成を変更した際は、対応するコマンドで再構築しないと変更が反映されず、最悪の場合起動できなくなります。 |
|||
| -o 出力先ファイルを指定(例 /boot/grub2/grub.cfg) | GRUB2の起動メニュー設定ファイルを再生成する(RHEL系の呼び名) | 中級 第1章 | |
user@linux-study:~$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg update-grubと同じ役割のコマンドですが、RHEL/Fedora系ではgrub2-mkconfigという名前で提供されており、出力先ファイルを-oで明示的に指定する必要がある点がDebian系との違いです。 |
|||
| -v 現在のUEFIブートエントリ一覧を表示 / -o 起動順序を変更 | UEFI環境のブートエントリを確認・変更する | 中級 第1章 | |
user@linux-study:~$ efibootmgr -v BootCurrent: 0001 BootOrder: 0001,0000 Boot0001* ubuntu grub-installやupdate-grubがGRUB自体の設定であるのに対し、efibootmgrはマザーボード(UEFIファームウェア)側が保持しているブートエントリと起動順序を操作する、レイヤーの異なるコマンドです。 |
|||
| (オプションなしで他のパーティションにインストールされたOSを検出) | ディスク内の他のOSを検出し、GRUBのマルチブートメニューに追加する | 中級 第1章 | |
user@linux-study:~$ sudo os-prober Found Windows 11 on /dev/sda1 update-grub(grub-mkconfig)の内部で自動的に呼び出され、検出した他OSのエントリをgrub.cfgに追加します。デュアルブート環境で他OSがメニューに出てこない場合、このコマンド単体で検出できるか確認するとよいです。 |
|||
運用フェーズ別コマンド集
上の分野別一覧とは別に、①運用監視 ②運用保守 ③設計・構築 の3つの運用フェーズで使用頻度が高いコマンドをまとめました(全47コマンド)。同じコマンドが上の分野別一覧と重複して掲載されている場合があります。
① 運用監視
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| q: 終了 / M: メモリ使用率順 / P: CPU使用率順 / k: プロセスをkill / 1: CPUコアごとの使用率表示 / -d 秒数: 更新間隔を指定 | リアルタイムでCPU・メモリ使用率の高いプロセスを監視する | 初級 第7章・中級 第9章 | |
user@linux-study:~$ top (プロセス一覧がリアルタイムで更新表示される。qキーで終了) 運用監視の現場では、サーバーの応答が重いと感じたときにまず実行するコマンドの代表格です。CPUやメモリを大量に消費しているプロセスをその場で特定できます。 |
|||
| aux 全プロセス詳細(BSD形式) / --sort=-%cpu CPU使用率順に並べ替え / -u ユーザー指定 / -o 表示項目を指定 | 実行中のプロセスをスナップショットで一覧表示する | 初級 第7章・中級 第9章 | |
user@linux-study:~$ ps aux --sort=-%cpu | head -3 USER PID %CPU %MEM COMMAND user 1023 12.4 2.1 nginx user 2048 8.1 1.5 mysqld topのようにリアルタイムではなく、ある瞬間のプロセス状態を記録として残したいとき(障害調査のログ取得など)によく使われます。 |
|||
| vmstat 秒数 回数(例: vmstat 2 5 で2秒おき5回表示) / -a active・inactiveメモリも表示 / -s 統計情報をまとめて表示 | CPU・メモリ・I/O・スワップの状況を一定間隔で表示する | 上級 第1章 | |
user@linux-study:~$ vmstat 2 3 procs -----------memory---------- ---swap-- -----io---- r b swpd free buff cache si so bi bo システム全体のボトルネックがCPU・メモリ・ディスクI/Oのどこにあるかを大まかに切り分けるときに使う定番コマンドです。 |
|||
| -h 人が読みやすい単位で表示 / -s 秒数 定期的に更新表示 / -m・-g MB・GB単位で表示 / -t 合計行も表示 | メモリとスワップの使用状況を確認する | 上級 第1章 | |
user@linux-study:~$ free -h
total used free shared buff/cache
Mem: 7.8G 2.1G 3.2G 180M 2.5G
メモリ不足が疑われる障害の一次切り分けで真っ先に確認する項目です。availableの値が実質的な空き容量の目安になります。 |
|||
| -h 読みやすい単位 / -i inode使用状況を表示 / -T ファイルシステムの種類も表示 | ディスクの空き容量を確認する | 中級 第4章 | |
user@linux-study:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 19G 8.2G 10G 46% / 「ディスクフル」によるサービス停止は運用監視でよくあるトラブルのひとつです。定期的な確認や監視ツールへの組み込みで予防します。 |
|||
| -u CPU / -r メモリ / -d ディスクI/O / -n NETWORK ネットワーク / -q ロードアベレージ / -A すべての統計情報を表示(sysstatパッケージ) | 過去のリソース使用状況を時系列で確認する | 上級 第1章 | |
user@linux-study:~$ sar -u 1 3 10:00:01 AM CPU %user %system %idle 10:00:02 AM all 12.50 3.20 84.30 topやvmstatが「今」の状態しかわからないのに対し、sarは過去のデータも記録・確認できるため、「昨夜何が起きていたか」を調べる障害対応でよく使われます。 |
|||
| -t TCP / -u UDP / -l 待受のみ / -n 名前解決しない / -p プロセス情報も表示 / -a 待受・接続中の両方を表示 | 待受中のポートと利用プロセスを確認する | 中級 第15章 | |
user@linux-study:~$ ss -tulnp Netid State Local Address:Port Process tcp LISTEN 0.0.0.0:80 nginx 「想定していないポートが開いていないか」「サービスが正しくポートを待ち受けているか」を確認する、セキュリティと稼働確認の両面で使う監視コマンドです。 |
|||
| -f 追記をリアルタイム表示 / -F ファイルの入れ替わりにも追従 / -n 行数 表示開始行数を指定 / -c バイト数を指定 | ログファイルへの追記をリアルタイムで確認する | 初級 第5章 | |
user@linux-study:~$ tail -f /var/log/app.log (新しいログが追記されるたびに画面に表示され続ける。Ctrl+Cで終了) アプリケーションの動作確認やエラーの発生タイミングをその場でリアルタイムに追いたいときの定番コマンドです。 |
|||
| スペース: 次画面 / b: 前画面 / /語: 検索 / q: 終了 / -N 行番号を表示 / -S 折り返さず表示 / -i 検索時に大文字小文字を無視 | 長いログファイルをページ送りしながら確認する | 初級 第5章 | |
user@linux-study:~$ less /var/log/app.log (1画面ずつ表示され、スペースキーで次画面、/エラーで検索できる。qで終了) tailのようにリアルタイム追従はしませんが、過去の広い範囲のログを行き来しながら読みたいとき(エラー発生前後の文脈を追いたいときなど)は、catで一気に表示するよりlessでページ送りしながら確認するほうが調査しやすくなります。 |
|||
| -n 行数 表示する行数を指定 / -c バイト数を指定 / -q 複数ファイルでもヘッダーを省略 / -v 複数ファイルでも常にヘッダーを表示 | ログファイルの先頭(起動直後の初期化ログなど)を確認する | 初級 第5章 | |
user@linux-study:~$ head -n 20 /var/log/app.log (サービス起動時の初期化ログなど、ファイル冒頭の内容が表示される) tailで最新の状況を確認するのと対になる形で、headはサービスが起動した直後にどんな初期化処理が行われたかを確認したいときに使います。 |
|||
| -f リアルタイム表示 / -u サービス指定 / --since・--until 期間指定 / -p 優先度で絞り込み / -b 今回起動分のみ | systemdジャーナルログをリアルタイムで確認する | 中級 第14章 | |
user@linux-study:~$ journalctl -u nginx -f (nginxサービスのログがリアルタイムで表示され続ける) systemd管理下のサービスの動作状況を、操作している最中にリアルタイムで確認したいときに使います。 |
|||
| -T タイムスタンプを人が読める形式に / --level=err エラーのみ表示 / -w 新しいメッセージを待機して表示 / -H 見やすく整形して表示 | カーネルが出力したメッセージ(起動ログ・ハードウェア関連ログ)を確認する | 中級 第2章 | |
user@linux-study:~$ dmesg -T | tail -3 [Fri Aug 14 09:00:00 2026] eth0: link up ディスク障害やUSB機器の抜き差しなど、ハードウェア寄りの異常が疑われるときに真っ先に確認するログです。 |
|||
| (オプションなし) / -p 経過時間を簡潔に表示 / -s 起動日時を表示 | 稼働時間とロードアベレージを確認する | 中級 第9章 | |
user@linux-study:~$ uptime 10:15:03 up 30 days, 2:14, 1 user, load average: 0.15, 0.10, 0.05 サーバーが再起動されていないか、また現在の負荷傾向を一目で確認できるため、監視の第一歩としてよく使われます。 |
|||
| -n 秒数 実行間隔を指定 / -d 前回との差分をハイライト / -t ヘッダーを非表示 / -g 出力が変化したら終了 | 指定したコマンドを定期的に自動で再実行し続ける | 上級 第1章 | |
user@linux-study:~$ watch -n 2 'df -h' (2秒おきにdf -hの結果が更新され続ける画面が表示される) 監視用のダッシュボードがない環境で、簡易的に数値の変化をリアルタイムに追いたいときに他のコマンドと組み合わせて使います。 |
|||
| -x 拡張統計情報を表示 / -d ディスクI/Oのみ表示 / 間隔 回数 を指定して定期実行(例 iostat -x 2 5) | ディスクI/Oの詳細な使用状況をデバイス単位で確認する | 上級 第1章 | |
user@linux-study:~$ iostat -x 2 3 Device r/s w/s %util sda 2.10 15.30 45.20 vmstatやsarで「ディスクI/Oが怪しい」と当たりをつけた後、iostatでデバイスごとの%util(使用率)をさらに詳しく確認し、どのディスクがボトルネックになっているかを特定します。 |
|||
| -c 回数を指定 / -i 送信間隔を指定 / -W 応答待ちのタイムアウトを指定 | 対象ホストへのネットワーク到達性をICMPで確認する | 中級 第15章 | |
user@linux-study:~$ ping -c 3 db01 64 bytes from db01 (192.168.1.20): icmp_seq=1 ttl=64 time=0.312 ms サービス間の疎通に問題がありそうなとき、まずpingでネットワークレベルの到達性を確認し、その後ssで実際にポートが待ち受けているかを確認する、という切り分けの流れがよく使われます。 |
|||
② 運用保守
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| restart 再起動 / status 状態確認 / stop・start 個別制御 / reload 設定の再読み込み(無停止) / is-active 起動状態を確認 | サービスを再起動する | 中級 第1章・上級 第3章 | |
user@linux-study:~$ sudo systemctl restart nginx user@linux-study:~$ systemctl status nginx ● nginx.service - Active: active (running) 設定変更を反映させたいときや、応答が悪化したサービスを立て直したいときなど、日常保守で最も使う操作のひとつです。 |
|||
| -e 編集 / -l 一覧表示 / -r 削除 / -u ユーザー指定(root権限が必要) | 定期実行ジョブ(cron)を編集・確認する | 中級 第13章 | |
user@linux-study:~$ crontab -l 0 3 * * * /home/user/backup.sh バックアップやログのクリーンアップなど、決まった時間に自動実行したい保守作業の多くはcronで管理します。 |
|||
| -f 強制的にローテーション実行 / -d 実際には実行せず動作確認のみ(dry-run) / -v 詳細な処理内容を表示 | 肥大化したログファイルを世代管理しながら圧縮・入れ替える | 中級 第14章 | |
user@linux-study:~$ sudo logrotate -f /etc/logrotate.d/nginx (nginxのログがローテーションされ、古いログはgz圧縮される) ログが際限なく肥大化してディスクを圧迫するのを防ぐための保守作業で、通常はcron経由で自動実行されるよう設定します。 |
|||
| update パッケージ一覧を最新化 / upgrade インストール済みパッケージを更新 / -y 確認プロンプトを省略 / full-upgrade 依存関係の変更を伴う更新も許可 | パッケージとその一覧を最新の状態に更新する | 初級 第9章・中級 第5章 | |
user@linux-study:~$ sudo apt update && sudo apt upgrade -y (パッケージ一覧の更新後、更新可能なパッケージが一括でアップグレードされる) 脆弱性への対応や不具合修正のため、計画的なメンテナンス作業として定期的に実行します。本番環境ではいきなり実行せず、事前に検証環境で確認するのが一般的です。 |
|||
| -a 属性を保持し再帰的にコピー / -v 詳細表示 / -z 転送時圧縮 / --delete 完全同期 / -n 実際には転送しないドライラン | ファイルを差分だけ効率的にバックアップ・同期する | 上級 第8章 | |
user@linux-study:~$ rsync -av /var/www/ /backup/www/ sending incremental file list index.html 変更があったファイルだけを転送するため、定期バックアップのスクリプトに組み込まれることが多いコマンドです。 |
|||
| -c 作成 / -x 展開 / -t 一覧 / -z gzip圧縮 / -v 詳細表示 / -f ファイル名指定 / -C 展開先ディレクトリを指定 | 設定ファイルやデータをアーカイブとしてバックアップする | 中級 第8章 | |
user@linux-study:~$ tar -czvf etc-backup-20260815.tar.gz /etc (/etc以下がひとつの圧縮ファイルにまとめられる) 作業前のバックアップ取得や、定期的な設定ファイルのアーカイブ保存など、保守作業の基本になるコマンドです。 |
|||
| -r ディレクトリごとコピー / -i 上書き確認 / -v 詳細表示 / -p 属性を保持 / -a 属性を保持し再帰的にコピー | 設定ファイルを変更する前に、念のためバックアップとしてコピーしておく | 初級 第4章 | |
user@linux-study:~$ cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak (変更前の状態をすぐ元に戻せるよう、同じディレクトリに.bak付きで複製する) 設定変更で万が一問題が起きても、cpで取っておいたバックアップに戻すだけで即座に復旧できます。tarでのアーカイブ化ほど大掛かりでない、1ファイル単位の保守作業でよく使われます。 |
|||
| useradd -m ホーム作成 / useradd -s シェル指定 / usermod -aG グループ追加 / userdel -r ホームごと削除 | ユーザーアカウントを追加・変更・削除する | 中級 第13章 | |
user@linux-study:~$ sudo useradd -m -s /bin/bash newuser user@linux-study:~$ sudo userdel -r retireduser 入退社などにあわせたアカウントの棚卸しは、セキュリティ維持のための重要な定常保守作業です。 |
|||
| (対象ユーザーを省略すると自分自身) / -l アカウントロック / -u ロック解除 / -e 次回ログイン時にパスワード変更を強制 / -S パスワードの状態を確認 | パスワードの変更・リセットやアカウントのロックを行う | 中級 第13章・上級 第16章 | |
user@linux-study:~$ sudo passwd suspended_user New password: passwd: password updated successfully パスワード忘れの問い合わせ対応や、退職者アカウントの一時ロックなど、日常のヘルプデスク的な保守作業でよく使います。 |
|||
| chmod 数値指定(例 644) / chmod -R 再帰的に変更 / chown ユーザー名:グループ名 / chown -R 再帰的に変更 | 誤って変更されたファイルの権限・所有者を修正する | 初級 第6章・中級 第11章 | |
user@linux-study:~$ sudo chown www-data:www-data -R /var/www/html user@linux-study:~$ sudo chmod 644 /var/www/html/index.html デプロイ作業後に「権限エラーでアクセスできない」といった問い合わせの多くは、この2つのコマンドで解決します。 |
|||
| kill PID指定 / killall プロセス名で指定 / -9 SIGKILLで強制終了 / -15 SIGTERMで穏やかに終了要求(既定) | 応答しなくなったプロセスを終了させる | 初級 第7章 | |
user@linux-study:~$ ps aux | grep hung_process user@linux-study:~$ kill -9 4821 アプリケーションがフリーズしてサービス影響が出ている場合の、応急的な保守対応として使われます。根本原因の調査は別途必要です。 |
|||
| mount -t 種類を指定 / mount -o マウントオプションを指定 / mount -a fstabの内容をまとめてマウント / umount -l 使用中でも遅延アンマウント | 外部ストレージや一時的なディスクをマウント・取り外しする | 中級 第4章 | |
user@linux-study:~$ sudo mount /dev/sdb1 /mnt/backup user@linux-study:~$ sudo umount /mnt/backup バックアップ用ディスクの一時接続や、障害調査のための外部ディスク接続など、保守作業のたびに使う機会があります。 |
|||
| shutdown -r now 即時再起動 / shutdown -h +10 10分後にシャットダウン / shutdown -c 予約をキャンセル / reboot 即時再起動 | 計画停止・再起動を行う | 中級 第1章 | |
user@linux-study:~$ sudo shutdown -r +5 "5分後にメンテナンスのため再起動します" Broadcast message from user 予告時間を指定できるため、利用者への事前アナウンスを兼ねた計画メンテナンスでよく使われます。 |
|||
| history | grep キーワード 過去の操作を検索 / !番号 で再実行 / -c 履歴をすべて削除 / -d 番号 指定した履歴を削除 | 過去に実行したコマンドの履歴を確認する | 中級 第6章 | |
user@linux-study:~$ history | grep systemctl 120 sudo systemctl restart nginx 「さっき何を実行したか」を思い出したいときや、作業記録としてログを残したいときに使う、地味ながら保守現場で頻出のコマンドです。 |
|||
| -sh ディレクトリ合計をまとめて人が読みやすい単位で表示 / --max-depth=1 1階層分の内訳を表示 | ディスク使用量の多いディレクトリ・ファイルを特定する | 中級 第4章 | |
user@linux-study:~$ du -sh /var/log/* | sort -rh | head -5 1.2G /var/log/app 300M /var/log/nginx dfでディスク全体が逼迫していることがわかった後、du --max-depth=1でディレクトリを掘り下げながら繰り返し実行し、具体的にどこが容量を圧迫しているかを特定してから、logrotateや不要ファイルの削除に移ります。 |
|||
| -name 名前で検索 / -iname 大文字小文字を無視して検索 / -type f・d 種別 / -mtime 更新日数 / -size サイズ / -exec 見つけたファイルにコマンドを実行 / -delete 見つけたファイルを削除 | 条件に一致する不要なファイルを洗い出してから、まとめて処理する | 中級 第8章 | |
user@linux-study:~$ find /tmp -name "*.tmp" -mtime +7 /tmp/session_a1b2.tmp /tmp/session_c3d4.tmp 「何を消すか」をfindでまず確認してから実際にrmする、という2段階の手順を踏むことで、意図しないファイルまで削除してしまう事故を防げます。ログのアーカイブ整理や、条件に合う設定ファイルの一括変更などでも使われます。 |
|||
| -r ディレクトリごと削除 / -f 確認なしで強制削除 / -i 1件ずつ確認 / -v 詳細表示 | 不要になった一時ファイルやログファイルを削除する | 初級 第4章 | |
user@linux-study:~$ rm /tmp/session_a1b2.tmp /tmp/session_c3d4.tmp (不要と確認できたセッションの一時ファイルを削除する) findで容量を圧迫しているファイルを洗い出した後、最終的に不要と判断したファイルを削除する保守作業の締めくくりとして使います。誤って必要なファイルを消さないよう、対象を慎重に確認してから実行することが重要です。 |
|||
| renew 期限が近い証明書だけを自動更新 / --dry-run 実際には更新せず動作確認のみ | Let's Encrypt証明書の有効期限が切れる前に更新する | 上級 第10章 | |
user@linux-study:~$ sudo certbot renew --dry-run Congratulations, all simulated renewals succeeded Let's Encrypt証明書の有効期間は90日と短いため、通常はcron等でcertbot renewを定期実行するよう設定しておきます。--dry-runを使うと、実際には更新せずに正常動作するかを事前確認できます。 |
|||
③ 設計・構築
| コマンド | 主なオプション | 説明 | 関連する章 |
|---|---|---|---|
| fdisk 対話形式でMBR操作 / fdisk -l パーティション情報を一覧表示 / parted GPT対応・大容量ディスク向け | 新規ディスクにパーティションを作成する | 中級 第3章 | |
user@linux-study:~$ sudo fdisk /dev/sdb Command (m for help): n (対話形式で新しいパーティションを作成する) サーバー構築の初期段階で、追加したディスクを使える状態にするための最初の一歩です。 |
|||
| .ext4 / .xfs など作成する種類を指定 / -L ボリュームラベルを指定 | パーティションにファイルシステムを作成する | 中級 第3章 | |
user@linux-study:~$ sudo mkfs.ext4 /dev/sdb1 (/dev/sdb1がext4形式でフォーマットされる) パーティション作成の直後、実際にファイルを保存できる状態にするための構築作業の一環です。 |
|||
| pvcreate 物理ボリューム作成 / vgcreate ボリュームグループ作成 / lvcreate -L 容量・-n 名前を指定して論理ボリューム作成 | LVM(論理ボリューム管理)の構成をゼロから構築する | 上級 第6章 | |
user@linux-study:~$ sudo pvcreate /dev/sdb1 user@linux-study:~$ sudo vgcreate vg01 /dev/sdb1 user@linux-study:~$ sudo lvcreate -L 20G -n data_lv vg01 将来的な容量拡張のしやすさを考慮し、システム構築の設計段階でLVM構成を選択するケースは多くあります。 |
|||
| mount -a fstabの内容をまとめてマウント(設定確認に便利) / blkid UUIDを確認してfstabに記載 | 起動時に自動マウントされるよう恒久的な設定を行う | 中級 第4章 | |
user@linux-study:~$ sudo vi /etc/fstab (UUIDとマウントポイントの対応を追記する) user@linux-study:~$ sudo mount -a mountコマンドだけでは再起動すると設定が失われるため、恒久的に使うディスクは/etc/fstabへの記載までがセットの構築作業です。 |
|||
| useradd -m -s シェル指定 / groupadd グループ名 / usermod -aG 既存ユーザーをグループに追加 | サーバー初期構築時のユーザー・グループ設計を行う | 中級 第13章 | |
user@linux-study:~$ sudo groupadd appteam user@linux-study:~$ sudo useradd -m -G appteam -s /bin/bash deploy 構築段階で権限設計(誰がどのグループに属し、何ができるか)を固めておくことが、後の運用のしやすさに直結します。 |
|||
| -t 鍵の種類を指定(例 ed25519) / -b 鍵長を指定 / ssh-copy-id で公開鍵を登録 | SSHでの鍵認証によるログインを初期設定する | 中級 第22章 | |
user@linux-study:~$ ssh-keygen -t ed25519 user@linux-study:~$ ssh-copy-id user@newserver パスワード認証よりも安全な鍵認証は、サーバー構築時に真っ先に設定しておきたいセキュリティ項目のひとつです。 |
|||
| set-hostname ホスト名を設定 / status 現在の設定を確認 / set-hostname --pretty 表示用の名前を設定 | サーバーのホスト名を設定する | 上級 第3章 | |
user@linux-study:~$ sudo hostnamectl set-hostname web01.example.local user@linux-study:~$ hostnamectl status 複数台のサーバーを構築する際、後から見て役割がわかるホスト名を初期段階で設定しておくと管理がしやすくなります。 |
|||
| nmcli connection modify 設定変更 / nmcli connection up 設定を反映 / ip addr add 一時的なアドレス追加 | ネットワークインターフェースの初期設定(IPアドレス等)を行う | 中級 第15章・上級 第7章 | |
user@linux-study:~$ sudo nmcli connection modify eth0 ipv4.addresses 192.168.1.10/24 user@linux-study:~$ sudo nmcli connection up eth0 固定IPアドレスの割り当ては、サーバーを本番環境に組み込む前の構築作業として必ず行う設定です。 |
|||
| install パッケージ名 / -y 確認プロンプトを省略 / remove パッケージ名 アンインストール | サービスに必要なミドルウェアやツールを導入する | 初級 第9章・中級 第5章 | |
user@linux-study:~$ sudo dnf install -y nginx (依存関係を解決してnginxパッケージがインストールされる) 設計フェーズで決めた構成(Webサーバー・DBサーバーなど)を、実際のサーバーに落とし込む構築作業の基本です。 |
|||
| enable 自動起動を有効化 / enable --now 有効化と同時に起動 / disable 自動起動を無効化 / is-enabled 有効化状態を確認 | サービスをOS起動時に自動起動するよう設定する | 中級 第1章・上級 第3章 | |
user@linux-study:~$ sudo systemctl enable --now nginx Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service 設定を忘れると、サーバー再起動のたびにサービスが起動せず障害につながるため、構築作業のチェックリストに必ず含まれる項目です。 |
|||
| firewall-cmd --add-service --permanent 恒久的にサービス許可 / firewall-cmd --reload 設定を反映 / iptables -A ルール追加 / iptables -L ルール確認 | サーバーへの通信を許可・遮断するファイアウォールを初期設定する | 上級 第14章 | |
user@linux-study:~$ sudo firewall-cmd --add-service=http --permanent user@linux-study:~$ sudo firewall-cmd --reload 必要な通信だけを許可する設計にしておくことは、構築段階でのセキュリティ対策として欠かせません。 |
|||
| (sudoersファイルを構文チェック付きで安全に編集する専用コマンド) / -c 構文チェックのみ実行 | sudoコマンドを使える権限の初期設定を行う | 中級 第16章 | |
user@linux-study:~$ sudo visudo (構文エラーがあれば保存前に警告される) 直接/etc/sudoersを編集すると構文エラーでsudo自体が使えなくなる危険があるため、必ずvisudo経由で編集するのが構築時の鉄則です。 |
|||
| status 現在の設定を確認 / set-timezone タイムゾーンを設定 / set-ntp NTP同期の有効・無効を切替 | サーバーのタイムゾーンとNTPによる時刻同期を初期設定する | 中級 第14章 | |
user@linux-study:~$ sudo timedatectl set-timezone Asia/Tokyo user@linux-study:~$ sudo timedatectl set-ntp true ログの時刻がずれているとトラブルシューティングが困難になるため、サーバー構築時にタイムゾーンとNTP同期を正しく設定しておくことは基本のチェック項目です。 |
|||