bash-linux について
Linux/macOSでBashを使う開発者向けのリファレンスです。日常的なコマンド、スクリプトのパターン、エラー処理をまとめています。
主な機能
- 01コマンドの連結とパイプ
- 02ファイル検索と入出力
- 03プロセスとジョブの管理
- 04テキスト処理コマンド
- 05環境変数とネットワーク操作
- 06スクリプトのエラー処理パターン
活用シーン
- 01終了状態に応じたコマンド実行
- 02ファイル検索やテキスト検索
- 03ポート確認とプロセス管理
- 04エラー処理付きスクリプトの作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ davila7/ claude-code-templates --skill bash-linuxインストール後、Claude Code で/bash-linuxを入力して読み込まれたか確認します。
詳細
Bash Linux パターン
Linux/macOS 向け Bash の必須パターン集です。
1. 演算子の構文
コマンドの連結
| 演算子 | 意味 | 例 |
|---|---|---|
; | 順次実行 | cmd1; cmd2 |
&& | 直前のコマンドが成功した場合に実行 | npm install && npm run dev |
|| | 直前のコマンドが失敗した場合に実行 | npm test || echo "Tests failed" |
| | 出力をパイプで渡す | ls | grep ".js" |
2. ファイル操作
基本コマンド
| タスク | コマンド |
|---|---|
| すべて一覧表示 | ls -la |
| ファイルを検索 | find . -name "*.js" -type f |
| ファイルの内容 | cat file.txt |
| 先頭 N 行 | head -n 20 file.txt |
| 末尾 N 行 | tail -n 20 file.txt |
| ログを追跡 | tail -f log.txt |
| ファイル内を検索 | grep -r "pattern" --include="*.js" |
| ファイルサイズ | du -sh * |
| ディスク使用量 | df -h |
3. プロセス管理
| タスク | コマンド |
|---|---|
| プロセスを一覧表示 | ps aux |
| 名前で検索 | ps aux | grep node |
| PID で終了 | kill -9 <PID> |
| ポートの使用者を検索 | lsof -i :3000 |
| ポートのプロセスを終了 | kill -9 $(lsof -t -i :3000) |
| バックグラウンドで実行 | npm run dev & |
| ジョブ一覧 | jobs -l |
| フォアグラウンドに戻す | fg %1 |
4. テキスト処理
主要ツール
| ツール | 用途 | 例 |
|---|---|---|
grep | 検索 | grep -rn "TODO" src/ |
sed | 置換 | sed -i 's/old/new/g' file.txt |
awk | 列の抽出 | awk '{print $1}' file.txt |
cut | フィールドの切り出し | cut -d',' -f1 data.csv |
sort | 行の並べ替え | sort -u file.txt |
uniq | 重複しない行 | sort file.txt | uniq -c |
wc | 数える | wc -l file.txt |
5. 環境変数
| タスク | コマンド |
|---|---|
| すべて表示 | env または printenv |
| 1 つ表示 | echo $PATH |
| 一時的に設定 | export VAR="value" |
| スクリプト内で設定 | VAR="value" command |
| PATH に追加 | export PATH="$PATH:/new/path" |
6. ネットワーク
| タスク | コマンド |
|---|---|
| ダウンロード | curl -O https://example.com/file |
| API リクエスト | curl -X GET https://api.example.com |
| JSON を POST | curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL |
| ポートを確認 | nc -zv localhost 3000 |
| ネットワーク情報 | ifconfig または ip addr |
7. スクリプトのテンプレート
#!/bin/bash
set -euo pipefail # Exit on error, undefined var, pipe fail
# Colors (optional)
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m'
# Script directory
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Functions
log_info() { echo -e "${GREEN}[INFO]${NC} $1"; }
log_error() { echo -e "${RED}[ERROR]${NC} $1" >&2; }
# Main
main() {
log_info "Starting..."
# Your logic here
log_info "Done!"
}
main "$@"
8. よく使うパターン
コマンドの存在を確認
if command -v node &> /dev/null; then
echo "Node is installed"
fi
変数のデフォルト値
NAME=${1:-"default_value"}
ファイルを 1 行ずつ読み込む
while IFS= read -r line; do
echo "$line"
done < file.txt
ファイルをループ処理
for file in *.js; do
echo "Processing $file"
done
9. PowerShell との違い
| タスク | PowerShell | Bash |
|---|---|---|
| ファイルを一覧表示 | Get-ChildItem | ls -la |
| ファイルを検索 | Get-ChildItem -Recurse | find . -type f |
| 環境変数 | $env:VAR | $VAR |
| 文字列の連結 | "$a$b" | "$a$b"(同じ) |
| null チェック | if ($x) | if [ -n "$x" ] |
| パイプライン | オブジェクトベース | テキストベース |
10. エラー処理
オプションの設定
set -e # Exit on error
set -u # Exit on undefined variable
set -o pipefail # Exit on pipe failure
set -x # Debug: print commands
クリーンアップ用の trap
cleanup() {
echo "Cleaning up..."
rm -f /tmp/tempfile
}
trap cleanup EXIT
覚えておくこと: Bash はテキストベースです。成功時の連結には
&&を使い、安全のためにset -eを使い、変数は必ずクォートしてください。
コメント
Markdown 対応