Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

7. 実践Linux共通必須コマンド集

ディストリビューション共通の操作体系

パッケージ管理コマンド(apt、apk、dnf)にはディストリビューションごとの違いがありますが、ファイルの操作、プロセスの監視、権限の管理、サービスの制御といった日常的なシステム管理コマンドは、すべての Linux 環境でほぼ共通です。

本章では、エンジニアが現場で頻繁に使用する必須コマンドをカテゴリ別に整理したチートシートを提供します。

1. ファイル・ディレクトリ操作

# 現在のディレクトリのファイル一覧を詳細・サイズ単位付きで表示
ls -la

# ディレクトリの新規作成(親ディレクトリも含めて作成)
mkdir -p path/to/new_dir

# ファイルやディレクトリのコピー(-r は再帰的コピー)
cp file.txt backup.txt
cp -r src_dir/ dest_dir/

# ファイルの移動または名前変更
mv old_name.txt new_name.txt

# ファイルやディレクトリの削除(-r: 再帰的、-f: 強制確認なし)
rm file.txt
rm -rf temp_dir/

# ファイルの検索(特定ディレクトリ配下から名前で探す)
find /var/log -name "*.log"

# tar.gz アーカイブの作成と展開
tar -czvf archive.tar.gz target_dir/   # 圧縮
tar -xzvf archive.tar.gz              # 展開

2. ファイル閲覧・テキスト処理

# ファイルの末尾をリアルタイムで監視(ログ調査の定番)
tail -f /var/log/nginx/access.log

# ファイルの先頭20行を表示
head -n 20 config.yaml

# ページ単位でファイルを快適に閲覧(q で終了)
less large_file.txt

# 特定の文字列を含む行を検索(-r: 再帰検索、-i: 大文字小文字無視、-n: 行番号表示)
grep -rin "ERROR" /var/log/app/

# パイプ(|)と組み合わせた絞り込み
cat /etc/os-release | grep "PRETTY_NAME"

3. 権限(パーミッション)と所有者の管理

Linux では、ファイルやディレクトリごとに「読み取り(r: 4)」「書き込み(w: 2)」「実行(x: 1)」の権限が「所有者 / グループ / その他」に対して割り当てられます。

# 実行権限の付与(スクリプトに実行権限を付加)
chmod +x deploy.sh

# パーミッションの数値指定(所有者: 読み書き実行=7, グループ・その他: 読み実行=5)
chmod 755 app_server

# ファイルの所有者とグループの変更
sudo chown user:group file.txt

# ディレクトリ配下の全ファイルの所有者を一括変更(-R: 再帰的)
sudo chown -R www-data:www-data /var/www/html/

4. プロセス管理とシステムリソース監視

# 実行中の全プロセスを詳細表示
ps aux

# 特定のプロセスを名前で検索
ps aux | grep nginx
pgrep -l python

# リアルタイムの CPU・メモリ使用率モニター(q で終了)
top

# メモリの使用状況を人間が読みやすい単位(MB/GB)で表示
free -h

# ディスク使用量と空き容量の確認(-h: 読みやすい単位)
df -h

# 特定ディレクトリの容量消費サイズを確認(-s: 合計、-h: 単位付き)
du -sh /var/log/

5. サービス(デーモン)の制御(systemd / systemctl)

Debian、Ubuntu、Amazon Linux などの現代の主要ディストリビューションでは、systemctl コマンドでバックグラウンドサービスを管理します。

# サービスの状態確認
sudo systemctl status nginx

# サービスの起動・停止・再起動
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx

# 設定ファイルのみを安全にリロード(通信を切断しない)
sudo systemctl reload nginx

# サーバー起動時の自動起動を有効化 / 無効化
sudo systemctl enable nginx
sudo systemctl disable nginx

# サービスのログを確認(journalctl)
sudo journalctl -u nginx -n 50 --no-pager

6. ネットワーク確認とトラブルシューティング

# 自身の IP アドレスとネットワークインターフェースを確認
ip addr show

# 外部サーバーとの疎通確認(3回送信して終了)
ping -c 3 8.8.8.8

# 開いているポートと待ち受け中(LISTEN)のプロセスを確認
sudo ss -tulpn

# HTTP レスポンスヘッダーの取得と疎通確認
curl -I https://example.com

# DNS 名前解決の確認
dig example.com

これらの共通コマンドと、各ディストリビューション固有のパッケージマネージャー(apt、apk、dnf)をマスターすることで、あらゆる Linux サーバー環境において自在に構築・運用・トラブル対応が行えるようになります。