Bash / ターミナルコマンド
ナビゲーション、ファイル、検索、権限、プロセス、ネットワーク、アーカイブのための必須コマンド
ナビゲーション
| コマンド | オプション | 例 | 出力 | 説明 |
|---|---|---|---|---|
ls
|
-la, -lh, -R |
ls -la /etc |
ファイル一覧 | ディレクトリの内容を一覧表示;-l 詳細形式、-a 隠しファイル表示、-h サイズを人間が読みやすい形式で表示 |
cd
|
-, ~, .. |
cd ~/projects |
ディレクトリ移動 | ディレクトリを変更;cd - で直前のディレクトリへ戻る、cd ~ でホームへ移動 |
pwd
|
|
pwd |
/home/user | 現在の作業ディレクトリのフルパスを表示 |
tree
|
-L n, -a |
tree -L 2 |
ツリー表示 | ディレクトリツリーを表示;-L で深さを制限(要インストールの場合あり) |
find
|
-name -type -mtime |
find . -name '*.log' |
ファイルパス | 条件に一致するファイル・ディレクトリを検索 |
locate
|
-i |
locate nginx.conf |
ファイルパス | データベースインデックスを使った高速ファイル検索;事前に updatedb を実行すること |
ファイル操作
| コマンド | オプション | 例 | 出力 | 説明 |
|---|---|---|---|---|
cp
|
-r, -i, -u |
cp -r src/ dst/ |
ファイルをコピー | ファイルをコピー;-r でディレクトリを再帰的にコピー、-i で上書き前に確認 |
mv
|
-i, -n |
mv old.txt new.txt |
移動・名前変更 | ファイルの移動または名前変更;-i で上書き前に確認 |
rm
|
-r, -f, -i |
rm -rf dist/ |
削除済み | ファイル・ディレクトリを削除;-r 再帰的、-f 強制削除 — 慎重に使用すること |
mkdir
|
-p |
mkdir -p a/b/c |
新規ディレクトリ | ディレクトリを作成;-p で必要な親ディレクトリも合わせて作成 |
touch
|
|
touch index.html |
空ファイル | 空のファイルを作成、またはファイルのタイムスタンプを更新 |
ln
|
-s |
ln -s /etc/nginx nginx |
シンボリックリンク | ハードリンクを作成;-s でシンボリックリンク(symlink)を作成 |
ファイル表示
| コマンド | オプション | 例 | 出力 | 説明 |
|---|---|---|---|---|
cat
|
-n, -A |
cat -n file.txt |
ファイル内容 | ファイルを表示;-n で行番号を付加、-A で印字不可能な文字を表示 |
head
|
-n N |
head -n 20 log.txt |
先頭 N 行 | ファイルの先頭行を表示(デフォルトは10行) |
tail
|
-n N, -f |
tail -f app.log |
末尾 N 行 | 末尾行を表示;-f でリアルタイムに新しい内容を追跡 |
less
|
/search, q |
less large.log |
ページ表示 | ファイルをページ単位で閲覧;/ で検索、q で終了、スペースでページ送り |
wc
|
-l, -w, -c |
wc -l file.txt |
カウント | 文字・単語・行を数える;-l 行数、-w 単語数、-c バイト・文字数 |
検索とテキスト処理
| コマンド | オプション | 例 | 出力 | 説明 |
|---|---|---|---|---|
grep
|
-r -i -n -v -E |
grep -rn 'error' logs/ |
一致した行 | テキストパターンを検索;-r 再帰的、-i 大文字小文字を区別しない、-n 行番号を表示 |
grep -v
|
|
grep -v 'debug' app.log |
不一致の行 | 一致を反転 — パターンを含まない行を表示 |
grep -E
|
|
grep -E 'warn|error' log |
一致した行 | 拡張 regex を使用 — | で OR、+ で1回以上の繰り返し |
awk
|
'{print $N}' |
awk '{print $1}' f |
列の値 | パターン・アクション型テキスト処理;$1 で先頭フィールド、$NF で最後のフィールドを参照 |
sed
|
-i 's/a/b/g' |
sed -i 's/foo/bar/g' f |
変換後テキスト | ストリームエディタ;s/検索/置換/g でグローバルに置換 |
sort
|
-n -r -k N |
sort -n numbers.txt |
ソート済み出力 | 行をソート;-n 数値順、-r 逆順、-k で列 N を基準にソート |
uniq
|
-c, -d |
sort f | uniq -c |
ユニーク行 | 隣接する重複行を削除;通常は sort の後にパイプで使用 |
パーミッション
| コマンド | オプション | 例 | 出力 | 説明 |
|---|---|---|---|---|
chmod
|
755, 644, +x |
chmod +x script.sh |
パーミッション変更 | ファイルのパーミッションを変更;755=rwxr-xr-x、644=rw-r--r-- |
chown
|
-R user:group |
chown -R www-data:www-data /var/www |
所有者変更 | ファイルの所有者とグループを変更;-R で再帰的に変更 |
ls -la
|
|
ls -la /var/www |
パーミッション一覧 | すべてのファイルのパーミッション・所有者・グループ・サイズを表示 |
umask
|
022, 027 |
umask 022 |
デフォルトパーミッション | 新規ファイルのデフォルトパーミッションマスクを設定(022 → ファイルは 644) |
sudo
|
-u user |
sudo systemctl restart nginx |
昇格実行 | スーパーユーザーとしてコマンドを実行;-u で別のユーザーとして実行 |
プロセス管理
| コマンド | オプション | 例 | 出力 | 説明 |
|---|---|---|---|---|
ps
|
aux, -ef |
ps aux | grep nginx |
プロセス一覧 | プロセスを一覧表示;aux=全ユーザー、-ef=フルフォーマット |
top
|
q, k, M |
top |
リアルタイム表示 | インタラクティブなプロセスモニタ;q で終了、k でkill、M でメモリ順にソート |
htop
|
F3, F9 |
htop |
リアルタイム表示 | カラー表示の拡張版 top;F3 で検索、F9 でkill(要インストールの場合あり) |
kill
|
-9, -15 |
kill -9 1234 |
シグナル送信 | PID にシグナルを送信;-15 SIGTERM(正常終了)、-9 SIGKILL(強制終了) |
killall
|
-9, -u |
killall node |
シグナル送信 | 名前で指定したすべてのプロセスを終了 |
jobs
|
-l |
jobs -l |
ジョブ一覧 | 現在のシェルのバックグラウンド・停止中のジョブを一覧表示 |
bg / fg
|
%N |
fg %1 |
再開 | bg でジョブをバックグラウンドへ、fg でフォアグラウンドへ戻す |
ネットワーク
| コマンド | オプション | 例 | 出力 | 説明 |
|---|---|---|---|---|
curl
|
-o -L -X -H -d |
curl -O https://example.com/f |
レスポンス | HTTP/FTP でデータ転送;-L リダイレクトを追跡、-o ファイルに保存 |
wget
|
-O -r -q |
wget -q https://example.com |
保存済みファイル | ファイルをダウンロード;-O 出力ファイル名を指定、-r 再帰的、-q 静かに実行 |
ping
|
-c N |
ping -c 4 google.com |
RTT ミリ秒 | ネットワーク疎通を確認;-c でパケット送信回数を制限 |
ssh
|
-i -p -L |
ssh user@host -p 2222 |
シェル接続 | セキュアシェル接続;-i 鍵ファイル、-p ポート番号、-L ローカルポートフォワード |
scp
|
-r -P -i |
scp file user@host:~/ |
コピー済み | SSH 経由でファイルを安全にコピー;-r 再帰的、-P ポート番号(大文字) |
netstat
|
-tuln |
netstat -tuln |
ポート一覧 | ネットワーク接続を表示;-t TCP、-u UDP、-l リスニング、-n 数値表示 |
ss
|
-tuln |
ss -tuln |
ポート一覧 | netstat の新しい代替コマンド;より高速で詳細な情報を提供 |
アーカイブと圧縮
| コマンド | オプション | 例 | 出力 | 説明 |
|---|---|---|---|---|
tar -czf
|
-czf out.tar.gz |
tar -czf arc.tar.gz dir/ |
アーカイブ | gzip 圧縮 tarball を作成;c=作成、z=gzip 圧縮、f=ファイル名指定 |
tar -xzf
|
-xzf file.tar.gz |
tar -xzf arc.tar.gz -C /tmp |
展開済み | gzip tarball を展開;x=展開、-C で展開先ディレクトリを指定 |
tar -tf
|
|
tar -tf archive.tar.gz |
ファイル一覧 | 展開せずに tarball の内容を一覧表示 |
zip
|
-r, -9 |
zip -r out.zip dir/ |
zip ファイル | zip アーカイブを作成;-r 再帰的、-9 最大圧縮 |
unzip
|
-d, -l |
unzip archive.zip -d out/ |
展開済み | zip を展開;-d 展開先ディレクトリ、-l 展開せずに内容を一覧表示 |
gzip / gunzip
|
-k, -d |
gzip -k file.txt |
圧縮済み | 単一ファイルを gzip 圧縮;-k 元ファイルを保持、gunzip で解凍 |
環境とシェル
| コマンド | オプション | 例 | 出力 | 説明 |
|---|---|---|---|---|
env
|
|
env | grep PATH |
変数=値 | すべての環境変数を表示;grep とパイプで絞り込み可能 |
export
|
|
export NODE_ENV=production |
変数設定 | 現在のセッションと子プロセスに環境変数を設定 |
echo $VAR
|
|
echo $HOME |
変数の値 | 変数の値を表示;文字列内で曖昧さを避けるには ${VAR} を使用 |
which
|
|
which node |
パス | コマンドの実行ファイルのフルパスを表示 |
alias
|
|
alias ll='ls -la' |
ショートカット | コマンドのショートカットを作成;永続化するには ~/.bashrc に追記 |
source
|
|
source ~/.bashrc |
再読み込み | 現在のシェルコンテキストでファイルを実行(. ~/.bashrc でも可) |
history
|
!N, !! |
history | tail -20 |
コマンド履歴 | コマンド履歴を表示;!! で最後のコマンドを再実行、!N で N 番目のコマンドを実行 |
Git クイックリファレンス
| コマンド | オプション | 例 | 出力 | 説明 |
|---|---|---|---|---|
git init
|
|
git init my-project |
リポジトリ作成 | ディレクトリに新しい Git リポジトリを初期化 |
git clone
|
--depth 1 |
git clone url |
リポジトリをクローン | リモートリポジトリをクローン;--depth 1 で shallow clone |
git status
|
-s |
git status -s |
変更状態 | 作業ツリーの状態を表示;-s で短縮形式 |
git add
|
-A, -p |
git add -p |
ステージ済み | 変更をステージングエリアに追加;-A で全変更、-p でインタラクティブなパッチモード |
git commit
|
-m, --amend |
git commit -m 'msg' |
コミット済み | ステージした変更をコミット;--amend で直前のコミットを修正 |
git push
|
-u origin |
git push -u origin main |
プッシュ済み | リモートにプッシュ;-u で上流トラッキングブランチを設定 |
git pull
|
--rebase |
git pull --rebase |
同期済み | リモートの変更を取得して統合;--rebase でマージの代わりにリベース |
git log
|
--oneline --graph |
git log --oneline -10 |
履歴 | コミット履歴を表示;--oneline でコンパクト表示、--graph でブランチをビジュアル表示 |
git stash
|
pop, list |
git stash pop |
復元済み | 未コミットの作業を一時退避;pop で復元 |
git diff
|
--staged |
git diff --staged |
差分 | 変更を表示;--staged でステージ済みだが未コミットの変更を表示 |