0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【保存版】Linuxコマンドチートシート ~オプション徹底解説編~

0
Posted at

はじめに

以前投稿したLinuxコマンドチートシートでは、コマンド単位で使用頻度別にまとめました。
本記事はその続編として、主要コマンドに付けるオプション(フラグ)まで踏み込んでまとめたものです。

「ls -laのように何となく打っているけど、それぞれの意味は説明できない」という状態から一歩抜け出すための記事を目指しています。

オプションは代表的なもの・実務でよく使うものに絞っています。全オプションはman <コマンド>または<コマンド> --helpで確認してください。

本記事の見方

  • 🔥:このコマンドを使うなら必ず覚えておきたいオプション
  • ⭐:知っていると作業効率が上がるオプション
  • ロングオプション(--all等)がある場合は併記しています

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

ls - ディレクトリの中身を表示

頻度 オプション 説明
🔥 -l 詳細情報(パーミッション・所有者・サイズ・更新日時)を表示
🔥 -a, --all 隠しファイル(.から始まるファイル)も表示
🔥 -h, --human-readable サイズをKB/MB/GB単位で見やすく表示(-lと併用)
⭐ -R, --recursive サブディレクトリを再帰的に表示
⭐ -t 更新日時順にソート
⭐ -S ファイルサイズ順にソート
⭐ -r, --reverse ソート順を逆にする
⭐ -d, --directory ディレクトリ自身の情報を表示(中身は展開しない)
📝 -i, --inode inode番号を表示
ls -lah        # 隠しファイルも含め、サイズを見やすく詳細表示
ls -ltr        # 更新日時の古い順に詳細表示(直近の変更が一番下に来る)

cd - ディレクトリ移動

頻度 記法 説明
🔥 cd - 直前にいたディレクトリに戻る
🔥 cd ~ または cd (引数なし) ホームディレクトリに移動
⭐ cd .. 一つ上の階層へ

mkdir - ディレクトリ作成

頻度 オプション 説明
🔥 -p, --parents 親ディレクトリが存在しない場合はまとめて作成
📝 -m, --mode 作成時のパーミッションを指定
mkdir -p project/src/components   # 中間ディレクトリごと一気に作成
mkdir -m 700 secret_dir           # パーミッションを指定して作成

rm - 削除

頻度 オプション 説明
🔥 -r, --recursive ディレクトリを中身ごと再帰的に削除
🔥 -f, --force 確認なし・存在しなくてもエラーにせず削除
⭐ -i 削除前に1件ずつ確認(-fと真逆。危険な操作の前に安全策として)
⭐ -v, --verbose 削除したファイル名を表示

rm -rfは取り消せません。特にsudo rm -rf /pathはパス指定ミスに注意してください。

cp - コピー

頻度 オプション 説明
🔥 -r, -R, --recursive ディレクトリを再帰的にコピー
⭐ -p, --preserve パーミッション・所有者・タイムスタンプを保持してコピー
⭐ -v, --verbose コピーしたファイル名を表示
⭐ -i, --interactive 上書き前に確認
⭐ -u, --update コピー先より新しい場合のみ上書き
📝 -a, --archive -r -p等を含む、属性を完全に保持するコピー(バックアップ向け)

mv - 移動・リネーム

頻度 オプション 説明
⭐ -i, --interactive 上書き前に確認
⭐ -v, --verbose 移動したファイル名を表示
📝 -n, --no-clobber 既存ファイルがあれば上書きしない

find - ファイル検索

頻度 オプション 説明
🔥 -name "pattern" ファイル名で検索(大文字小文字区別)
🔥 -type f / -type d ファイル/ディレクトリのみに絞る
⭐ -iname "pattern" 大文字小文字を区別せずファイル名検索
⭐ -mtime -7 7日以内に更新されたファイルを検索(+7なら7日より前)
⭐ -size +100M サイズが100MBより大きいファイルを検索
⭐ -exec <cmd> {} \; 検索結果に対してコマンドを実行
📝 -maxdepth N 検索する階層の深さを制限
📝 -not / ! 条件を否定
find . -type f -name "*.log" -mtime +30 -exec rm {} \;   # 30日以上前のログを削除
find / -type d -name "node_modules" -maxdepth 5           # 5階層までnode_modulesを探す

tar - アーカイブ

頻度 オプション 説明
🔥 -c, --create アーカイブを新規作成
🔥 -x, --extract アーカイブを展開
🔥 -z, --gzip gzip圧縮・展開(.tar.gz)
🔥 -v, --verbose 処理内容を表示
🔥 -f, --file 対象ファイル名を指定(基本的に必須・オプションの最後に置く)
⭐ -j, --bzip2 bzip2圧縮・展開(.tar.bz2)
⭐ -C <dir> 展開先ディレクトリを指定
⭐ -t, --list 中身を確認(展開せずに一覧表示)
tar -czvf archive.tar.gz ./target_dir      # 圧縮しながらアーカイブ作成
tar -xzvf archive.tar.gz -C /path/to/dest  # 指定ディレクトリへ展開
tar -tzvf archive.tar.gz                   # 展開せず中身を確認

ファイルの中身を見る・編集する

grep - 文字列検索

頻度 オプション 説明
🔥 -i, --ignore-case 大文字小文字を区別しない
🔥 -r, -R, --recursive ディレクトリを再帰的に検索
🔥 -n, --line-number マッチした行番号を表示
🔥 -v, --invert-match マッチしない行を表示(除外検索)
⭐ -c, --count マッチした行数のみ表示
⭐ -l, --files-with-matches マッチしたファイル名のみ表示
⭐ -A N / -B N / -C N マッチ行の後(After)/前(Before)/前後(Context)N行も表示
⭐ -E, --extended-regexp 拡張正規表現を使用(egrep相当)
⭐ -w, --word-regexp 単語単位で完全一致検索
📝 --color=auto マッチ箇所を色付け表示
grep -rn "TODO" ./src              # ソース内のTODOコメントを行番号付きで検索
grep -i "error" app.log | wc -l    # エラーログの件数をカウント
grep -A 3 "Exception" app.log      # 例外発生行の後3行も含めて表示

tail / head - 先頭・末尾表示

頻度 オプション 説明
🔥 -n N 先頭/末尾からN行を表示
🔥 -f, --follow (tailのみ) ファイルの追記をリアルタイムに表示(ログ監視の定番)
⭐ -c N バイト数指定で表示
tail -f -n 100 /var/log/app.log   # 直近100行を表示しつつ追記を監視

sed - ストリームエディタ

頻度 オプション 説明
🔥 -i ファイルを直接置換(バックアップ作成は-i.bak)
🔥 s/検索文字列/置換文字列/g 文字列置換(gは行内すべてを置換)
⭐ -e 複数の置換コマンドを1回の呼び出しでまとめて実行
⭐ -n + p 自動出力を無効化し、明示的に指定した行のみ出力
sed -i.bak 's/foo/bar/g' file.txt        # foo→barに置換、元ファイルはfile.txt.bakとして保持
sed -n '10,20p' file.txt                 # 10〜20行目のみ表示

sort / uniq

頻度 オプション 説明
🔥 -n, --numeric-sort (sort) 数値としてソート
🔥 -r, --reverse (sort) 降順ソート
⭐ -k N (sort) N番目のフィールドを基準にソート
⭐ -u, --unique (sort) ソートと同時に重複除去
⭐ -c, --count (uniq) 重複行数を表示
sort -k2 -n access.log | uniq -c | sort -rn   # 2列目を数値としてソート→件数集計→多い順

wc - カウント

頻度 オプション 説明
🔥 -l, --lines 行数のみ表示
⭐ -w, --words 単語数のみ表示
⭐ -c, --bytes バイト数のみ表示

権限・所有者

chmod - パーミッション変更

頻度 記法 説明
🔥 755 / 644 などの数値指定 所有者/グループ/その他の権限を8進数で一括指定(読4+書2+実行1)
🔥 -R, --recursive ディレクトリ配下を再帰的に変更
⭐ u+x / g-w / o=r などシンボル指定 特定の対象(u:所有者, g:グループ, o:その他)に権限を追加/削除/設定
⭐ +x 実行権限のみ付与(スクリプト実行時によく使う)
chmod 755 deploy.sh        # 所有者:rwx、グループ・その他:r-x
chmod -R 644 ./configs      # 配下のファイルをすべて読み書きのみに
chmod u+x script.sh         # 所有者にのみ実行権限を追加

chown - 所有者変更

頻度 オプション 説明
🔥 user:group 形式 所有者とグループを同時に指定
🔥 -R, --recursive ディレクトリ配下を再帰的に変更
chown -R deploy:deploy /var/www/app   # アプリのファイル一式の所有者をdeployユーザーに

プロセス・システム管理

ps - プロセス確認

頻度 オプション 説明
🔥 aux 全ユーザーの全プロセスを詳細表示(BSDスタイル・最頻出)
⭐ -ef 全プロセスを表示(UNIX標準スタイル。auxとほぼ同義で好みで使い分け)
⭐ --sort=-%cpu / --sort=-%mem CPU/メモリ使用率順にソート
ps aux | grep nginx             # nginxプロセスを検索
ps aux --sort=-%mem | head -10  # メモリ使用量が多いプロセストップ10

kill - プロセス終了

頻度 シグナル 説明
🔥 -9, SIGKILL 強制終了(即座に・後処理なし)
🔥 -15, SIGTERM 通常の終了要求(デフォルト。後処理の猶予あり。まずはこちらを試す)
⭐ -1, SIGHUP 設定再読み込みを促す(デーモンプロセスに対して)
⭐ -l 利用可能なシグナル一覧を表示
kill -15 1234   # まずは正常終了を試みる
kill -9 1234    # 反応がない場合の強制終了

df / du - ディスク使用量

頻度 オプション 説明
🔥 -h, --human-readable サイズをKB/MB/GB単位で表示
⭐ -s, --summarize (duのみ) 合計サイズのみ表示(サブディレクトリの内訳を省略)
⭐ -a, --all (duのみ) ファイル単位でもサイズを表示
📝 -T, --print-type (dfのみ) ファイルシステムの種類も表示
df -h                      # マウントごとのディスク使用状況
du -sh ./* | sort -rh      # カレント直下の各ディレクトリ・ファイルのサイズを大きい順に

systemctl - サービス管理

頻度 サブコマンド 説明
🔥 status <service> サービスの稼働状況を確認
🔥 start / stop / restart サービスの起動・停止・再起動
🔥 enable / disable 起動時の自動起動を有効化・無効化
⭐ reload 設定ファイルのみ再読み込み(プロセス再起動なし)
⭐ is-active / is-enabled 状態をスクリプト等で判定しやすい形式で確認

journalctl - ログ確認

頻度 オプション 説明
🔥 -u <service> 指定サービスのログのみ表示
🔥 -f, --follow リアルタイムでログを追跡
⭐ -n N 直近N行のみ表示
⭐ --since / --until 期間を指定して絞り込み
journalctl -u nginx -f --since "10 min ago"   # 直近10分からのnginxログを追跡

ネットワーク

curl - HTTPリクエスト

頻度 オプション 説明
🔥 -I, --head レスポンスヘッダーのみ取得(疎通確認に便利)
🔥 -X <METHOD> HTTPメソッドを指定(GET/POST/PUT/DELETE等)
🔥 -H "Header: value" リクエストヘッダーを追加
🔥 -d, --data リクエストボディを送信(POST等)
⭐ -o <file> レスポンスをファイルに保存
⭐ -L, --location リダイレクトを自動で追跡
⭐ -s, --silent プログレス表示を抑制
⭐ -v, --verbose 通信内容を詳細表示(デバッグ用)
📝 -k, --insecure SSL証明書の検証をスキップ(検証・開発環境限定)
curl -X POST -H "Content-Type: application/json" -d '{"name":"foo"}' https://api.example.com/users
curl -sL -o output.html https://example.com   # サイレント+リダイレクト追従で保存

ssh - リモート接続

頻度 オプション 説明
🔥 -i <key> 秘密鍵ファイルを指定
🔥 -p <port> 接続ポートを指定
⭐ -L local:host:remote ローカルポートフォワーディング
⭐ -v 接続時の詳細ログを表示(接続トラブル調査)
ssh -i ~/.ssh/id_rsa -p 2222 user@server

rsync - 同期

頻度 オプション 説明
🔥 -a, --archive パーミッション等を保持した再帰的コピー(定番の組み合わせ)
🔥 -v, --verbose 転送内容を表示
🔥 -z, --compress 転送時にデータを圧縮
⭐ --delete 転送先にのみ存在するファイルを削除して完全同期
⭐ -n, --dry-run 実際には転送せず、実行結果だけ確認
⭐ -e "ssh -p port" 使用するリモートシェルを指定
rsync -avz --dry-run src/ user@server:/dst/   # まずはドライランで差分確認
rsync -avz --delete src/ user@server:/dst/    # 完全同期(削除も反映)

パッケージ管理

apt (Debian/Ubuntu)

頻度 サブコマンド/オプション 説明
🔥 update パッケージ一覧を最新化(実際のインストールは行わない)
🔥 upgrade インストール済みパッケージを更新
🔥 install -y <pkg> パッケージをインストール(-yで確認をスキップ)
⭐ remove / purge パッケージを削除(purgeは設定ファイルも削除)
⭐ search <keyword> パッケージを検索
📝 autoremove 不要になった依存パッケージを削除

まとめ

コマンド自体は覚えていても、オプションを知らないと本来の力を発揮できません。特に🔥マークのオプションは「そのコマンドを使う理由そのもの」であることが多いので、セットで覚えておくのがおすすめです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?