すべてのチートシート

Linux シェル コマンドチートシート

日常的に使う Linux / macOS のシェル コマンドを素早く参照:ファイル操作、テキスト処理、パーミッション、プロセス、ネットワーク、アーカイブ、ストレージ — よく使うオプションと実用例をまとめました。

40 コマンド

ファイル / 移動

pwd

現在の作業ディレクトリの絶対パスを表示します。

pwd
ls

ディレクトリの内容を一覧表示します。

-l 詳細形式; -a 隠しファイルを含める; -h 人間に読みやすいサイズ; -t 更新時刻順; -r 逆順

ls -lah /var/log
cd <dir>

現在の作業ディレクトリを変更します。

cd ~/-projects/app && pwd
tree <dir>

ディレクトリをツリー表示;概観把握に便利(要インストール)。

-L <n> 最大深さ; -a 隠しファイル表示; -d ディレクトリのみ; -I パターン

tree -L 2 -I 'node_modules|.git' .

ファイル操作

mkdir -p <dir>

(存在しない親ディレクトリを含め)ディレクトリを一度に作成します。

-p 親ディレクトリも作成; -v 詳細; -m <mode> パーミッション設定

mkdir -p src/components/ui
cp <src> <dest>

ファイル / ディレクトリをコピーします。

-r 再帰(ディレクトリ用); -i 対話; -v 詳細; -p モード / 時刻を保持

cp -rv src/ backup/
mv <src> <dest>

ファイル / ディレクトリを移動(リネーム)します。

-i 対話; -v 詳細; -n 上書きしない

mv README.md readme.md && mv ../tmp .
rm <path>

ファイル / ディレクトリを削除します。⚠️ ゴミ箱はありません — パスを再確認。

-r 再帰; -f 強制; -i 対話; -v 詳細

rm -rf build/ node_modules/
ln -s <target> <link>

<link> から <target> を指すシンボリック リンクを作成します。

-s シンボリック(既定はハード); -f 既存を上書き; -n 既存のリンクを追わない

ln -s /opt/app-v2 current
touch <file>

空のファイルを作成、または内容を変えずに mtime を更新します。

touch .gitignore

テキスト / 表示

cat <file>

ファイル全内容を stdout に出力します。

-n 行番号; -A 非表示文字を表示; -s 連続空行を 1 行に

cat -n package.json
less <file>

ページャでファイルを開く(/、n、N で検索、q で終了)。

-N 行番号; -S 折り返しなし; +F tail 風自動追跡

less -NS /var/log/syslog
head -n 10 <file>

ファイルの先頭 N 行(既定 10)を出力します。

head -n 30 /etc/passwd
tail -n 50 -f <file>

末尾 N 行を表示し、追記をフォローします(ログ向け)。

-f フォロー; -F フォロー + 再試行; -n 行数(既定 10); -c バイト; --pid=PID 指定 PID 終了で停止

tail -f -n 50 /var/log/nginx/access.log

検索 / フィルタ

grep <pattern> <files>

パターンに一致する行を検索;拡張 / PCRE 正規表現に対応。

-i 大文字小文字無視; -r 再帰; -n 行番号; -v 否定; -E 拡張正規表現

grep -rni "TODO" src/
find <path> -name <pattern>

ディレクトリ ツリーを走査し、条件に一致するファイルを列挙します。

-type f|d; -name グロブ; -iname 大文字小文字無視; -size +1M; -mtime -7; -maxdepth

find . -type f -name "*.log" -mtime +7 -delete
awk '<prog>' <file>

パターン + アクションのテキスト スキャナ — 列抽出、合計算出など。

-F fs フィールド区切り; -v var=value; -f スクリプト ファイル

awk -F'\t' 'NR>1 {sum+=$3} END {print sum}' data.tsv
sed 's/<a>/<b>/' <file>

ストリーム エディタ — 行単位の置換、削除、挿入。

-i インプレース; -E 拡張正規表現; -e 式を連結; s/from/to/[g] [p]

sed -i '' 's/version = "1\.."/version = "1.9"/' pyproject.toml
sort | uniq -c | sort -nr

パイプライン イディオム:出現回数を集計し頻度降順でソート。

awk '{print $1}' access.log | sort | uniq -c | sort -nr | head

パーミッション

chmod <mode> <file>

ファイル パーミッションを変更(例:755、u+x、g-w、o=r)。

-R 再帰; --reference=<file> パーミッションをコピー

chmod -R u=rwX,go=r ./docs
chown <user>[:<group>] <file>

ファイルの所有者 / グループを変更します。

-R 再帰; -h シンボリック リンク自体を変更(-R と併用)

chown -R www-data:www-data /var/www/html
umask

新規ファイル作成時のデフォルト パーミッション マスクを表示 / 設定。

-S 記号形式; -p umask をそのまま移植性高く保持

umask 022

プロセス / システム

ps aux

詳細情報付きで全プロセスを表示(BSD スタイル列)。

-e 全件; -f フル; -L スレッド; --sort=-%mem

ps auxf | grep -v grep | grep nginx
top / htop

対話型のライブ プロセス ビューア(htop は UI が改善、別途要インストール)。

P/CPU M/MEM ソート; k kill; r renice; q quit

htop -u www-data
kill [-9|<sig>] <pid>

プロセスにシグナルを送信。SIGTERM(15)が丁寧、SIGKILL(9)が強制。

-9 SIGKILL; -l シグナル一覧; -s シグナル名指定

kill -TERM 12345 && sleep 2 && kill -9 12345
jobs / bg / fg / nohup

ジョブ制御 — 一覧 / バックグラウンド / フォアグラウンド / ハングアップ免疫で実行。

nohup ./long-task.sh > out.log 2>&1 &
systemctl <verb> <unit>

systemd サービス / ユニットを制御(status、start、stop、enable、logs など)。

status / start / stop / restart / enable / disable; -u <user>

systemctl status nginx && systemctl reload nginx

ネットワーク

wget <url>

非対話型ダウンローダ;再帰 / ミラーが容易。

-c 続行; -q 無音; --no-check-certificate; -r 再帰

wget -c https://example.com/big-archive.tar.gz
ssh <user>@<host> [cmd]

リモート ホストで SSH セッションを開く、または単発コマンドを実行。

-p <port>; -i <key>; -L / -R / -D ポート転送; -N リモート コマンドなし; -f バックグラウンド

ssh -i ~/.ssh/id_ed25519 user@host 'sudo systemctl restart nginx'
scp / rsync

リモート ホストとファイルを送受信。rsync は部分 / 反復転送が高速。

scp -r / rsync -avz --progress src/ user@host:/dst/

rsync -avz --progress ./build/ deploy@server:/srv/app/
ping / traceroute / ss

到達性、経路、リスニング ソケットを診断します。

ping -c N カウント; ss -tulnp リスニング情報; ss -s サマリ

ss -tulnp | grep -E ':80|:443'

アーカイブ / 圧縮

tar -czf out.tgz <paths>

tar アーカイブを作成 / 展開。任意で gzip / bzip2 / xz。

-c 作成; -x 展開; -t 一覧; -z gzip; -j bzip2; -J xz; -v 詳細; -C <dir>

tar -czf - src/ | ssh server 'tar -xzf - -C /srv/app'
zip -r out.zip <paths>

zip アーカイブを再帰的に作成します。

-r 再帰; -9 最大圧縮; -e 暗号化; -j パス保存なし

zip -r9 build-$(date +%Y%m%d).zip dist/
unzip [-d <dir>] file.zip

zip アーカイブを任意のディレクトリに展開します。

-d 展開先; -o 上書き; -l 一覧; -p stdout; -q 無音

unzip -o build.zip -d ./extracted

ディスク / ストレージ

df -h

マウント済みファイル システムのディスク使用量を人間に読みやすく表示。

-h 人間に読みやすい; -T FS 種別も表示; -i i ノード

df -hT /
du -sh <path>

ファイル / ディレクトリのディスク使用量を推定;-s でディレクトリを集約。

-s 集約; -h 人間に読みやすい; -a 全件; --max-depth=N; -x 1 FS に限定

du -sh node_modules/ build/ .

シェル組み込み

history / !! / !$

以前実行したコマンドを参照 / 再生 / 再利用します。

history N; !<n> で N 行目を再実行; !$ で直前コマンドの最終引数; !! で直前コマンドを再実行

git add . && git commit -m "$(!!)"
alias / unalias

シェル コマンドのショートカットを定義 / 一覧(多くは ~/.bashrc / ~/.zshrc に記述)。

alias ll='ls -lah' && alias gs='git status'
env / export / unset

子プロセス向けの環境変数を一覧 / 設定 / 解除します。

export DATABASE_URL=postgres://localhost/dev && env | grep DATABASE

ヘルプ

man <cmd> / <cmd> --help

マニュアル ページ(man)、またはコマンド組み込みのヘルプを表示します。

man -k キーワード検索; man -t <cmd> PDF 印刷; --help 簡易使用法

man -k 'tar archive'

チートシート バージョン 1.0.0

bash 5+ / POSIX 2017 に対応