Terminal & CLI Skill (ターミナル・CLIスキル)
Linuxターミナルでの作業に関するリファレンス — 基本的なbashからコンテナオーケストレーション、AIエージェントの実行まで、フルスタックをカバーします。
このスキルの使い方
このファイルでは最も一般的なパターンを網羅しています。詳細なコマンドリファレンスが必要な場合は、必要に応じてreferences/から該当ファイルを読み込んでください。
| トピック | リファレンスファイル |
|---|---|
| Bashの基本: パイプ、スクリプト、ファイルシステム、インストール、環境変数 | references/bash.md |
| コンテナ: Podman、Kubernetes (kubectl)、Helm | references/containers.md |
| HTTPリクエスト: curl | references/curl.md |
| AIエージェント: aider-chat、claude CLI | references/agents.md |
1. bashコマンドを実行する
command [options] [arguments]
# 順次実行 — 最初の失敗で停止
cmd1 && cmd2 && cmd3
# 失敗しても続行
cmd1; cmd2; cmd3
# 出力を変数にキャプチャ
OUTPUT=$(command)
# stdout / stderr / 両方をリダイレクト
command > out.txt
command 2> err.txt
command &> all.txt
# 出力をすべて破棄
command > /dev/null 2>&1
2. ツールが存在するか確認する
type -a tool_name # ツールが見つかるすべての場所
apropos keyword # キーワードに一致するコマンドを検索
which tool_name # PATH上の最初のバイナリ
whereis tool_name # バイナリ、ソース、manページの場所
3. && で組み合わせる
# 前のコマンドが成功した場合のみ実行
sudo apt update && sudo apt upgrade -y
# 複数のステップを安全にチェーン
mkdir -p build && cd build && cmake ..
4. | でパイプする
# あるコマンドのstdoutを次のコマンドのstdinとして渡す
cmd1 | cmd2 | cmd3
# よく使うパターン
ls -la | grep ".conf"
ps aux | grep nginx
journalctl -u myservice | grep ERROR | tail -20
cat file.txt | wc -l
5. catで内容を読む
cat file.txt # ファイル全体をstdoutに
cat file1.txt file2.txt # 複数ファイルを連結
head -n 20 file.txt # 最初の20行
tail -n 20 file.txt # 最後の20行
tail -f /var/log/app.log # リアルタイムログ出力を追跡
less file.txt # ページ表示(qで終了)
grep "pattern" file.txt # パターンに一致する行
grep -r "pattern" ./dir/ # ディレクトリ内を再帰検索
grep -n "pattern" file.txt # 行番号付き
grep -i "pattern" file.txt # 大文字小文字を区別しない
6. 結果をソートする
sort file.txt # アルファベット順(昇順)
sort -r file.txt # 逆順
sort -n file.txt # 数値ソート
sort -k2 file.txt # 2列目でソート
sort -t: -k3 -n /etc/passwd # カスタム区切り文字(:)、3列目、数値ソート
ls -la | sort -k5 -n # ls出力をファイルサイズ(5列目)でソート
7. ユニークな結果を取得する
# uniqは*連続する*重複のみを削除 — 必ず先にソートすること
sort file.txt | uniq # 重複排除
sort file.txt | uniq -c # 出現回数をカウント
sort file.txt | uniq -d # 重複行のみ表示
sort file.txt | uniq -u # 1回しか出現しない行のみ表示
# 典型的なパイプライン: ログ内のエラータイプをカウント
cat app.log | grep ERROR | sort | uniq -c | sort -rn
8. ヒアドキュメントでスクリプトを作成・実行する
# スクリプトファイルをインラインで作成
cat << 'EOF' > myscript.sh
#!/bin/bash
set -euo pipefail # エラー、未設定変数、パイプ失敗時に終了
echo "今日: $(date +%Y-%m-%d)"
for i in 1 2 3; do
echo "ステップ $i"
done
EOF
chmod +x myscript.sh
./myscript.sh
# またはファイルを作成せずに直接実行
bash << 'EOF'
echo "インライン実行"
ls -la /tmp
EOF
スクリプトのベストプラクティス:
- 常に
#!/bin/bashで始める - 安全なデフォルトとして
set -euo pipefailを使用する - 変数は常に引用符で囲む:
"$VAR"ではなく$VAR - バッククォートではなく
$(...)を使用する
9. ファイルシステム — クイックリファレンス
# 移動と確認
pwd && ls -lah # 現在地 + 何があるか
tree -L 2 # ディレクトリツリー(2階層)
find /path -name "*.log" # 名前で検索
du -sh /path # ディレクトリのサイズ
df -h # 全マウントのディスク使用量
# 作成 / コピー / 移動 / 削除
mkdir -p /path/to/dir # 親ディレクトリも作成
cp -r src/ dst/ # ディレクトリをコピー
mv src dst # 移動または名前変更
rm -rf dir/ # 再帰的に削除(元に戻せない)
# パーミッションと所有権
chmod +x file # 実行可能にする
chmod 644 file # rw-r--r--
chown user:group file # 所有者を変更
# リンク
ln -s /target /link # シンボリックリンク
readlink -f /link # シンボリックリンクを実パスに解決
# マウント
mount # アクティブなマウントをすべて表示
lsblk # ブロックデバイスツリー
findmnt # マウントポイントツリー
→ 完全なファイルシステムリファレンス: references/bash.md
10. インストールと更新 — クイックリファレンス
# APT
sudo apt update && sudo apt upgrade -y
sudo apt install -y package-name
# pip (Python)
pip install package --break-system-packages
# npm (Node.js)
npm install -g package-name
→ 完全なインストールリファレンス (snap、ソースからのビルド、pipオプション): references/bash.md
11. コマンドのヘルプを表示する
command --help # インラインヘルプ(最速)
man command # 完全なマニュアルページ
apropos keyword # manページの概要を検索
whatis command # 1行の説明文
info command # GNU infoページ(GNUツール用)
help cd # シェル組み込みコマンドのヘルプ
12. 環境変数 — クイックリファレンス
export VAR="value" # 現在のシェルとサブプロセスに設定
echo $VAR # 変数の値を読む
unset VAR # 変数を削除
env # すべての環境変数を表示
VAR=value command # 単一コマンドに対してのみ設定
→ 変数の永続化、.envファイルの読み込み: references/bash.md
詳細リファレンス
完全なコマンド網羅が必要な場合は、以下のファイルを読み込んでください。
references/bash.md— 完全なファイルシステム、インストール/更新、環境変数、スクリプトパターンreferences/containers.md— Podman、kubectl、Helmreferences/curl.md— HTTPリクエスト用curlreferences/agents.md— aider-chat と claude CLI