bash-linux について
Linux と macOS の利用者向けの Bash スキルです。コマンド連結、ファイル操作、プロセス管理、テキスト処理の基本パターンをまとめ、環境変数、ネットワーク操作、スクリプトのエラー処理も扱います。
主な機能
- 01コマンド連結とパイプ操作
- 02ファイル検索と内容の操作
- 03プロセスとポートの確認
- 04テキスト処理ツール
- 05環境変数とネットワークコマンド
- 06スクリプトのエラー処理と後片付け
活用シーン
- 01開発作業のコマンド連結
- 02ファイル検索とテキスト抽出
- 03プロセスや使用中ポートの確認
- 04エラー処理を含むシェルスクリプト作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill bash-linuxインストール後、Claude Code で/bash-linuxを入力して読み込まれたか確認します。
詳細
Bash Linux のパターン
Bash を Linux/macOS で使う際の基本的なパターンです。
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 |
| 所有するプロセスを停止 | kill -TERM <verified-task-PID>;終了を確認し、必要な場合に限り段階を上げる |
| ポートの使用者を検索 | lsof -i :3000 |
| ポートの所有者を確認 | lsof -nP -iTCP:3000 -sTCP:LISTEN;停止する前に所有者を確認 |
| バックグラウンド実行 | npm run dev & |
| ジョブ | jobs -l |
| フォアグラウンドに戻す | fg %1 |
4. テキスト処理
主なツール
| ツール | 目的 | 例 |
|---|---|---|
grep | 検索 | grep -rn "TODO" src/ |
sed | 置換をプレビュー | sed 's/old/new/g' file.txt(インプレース編集のフラグは macOS/GNU で異なります) |
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 only with non-secret inputs; prints expanded arguments
クリーンアップ用のトラップ
cleanup() {
echo "Cleaning up..."
rm -f /tmp/tempfile
}
trap cleanup EXIT
覚えておきましょう: Bash はテキストベースです。成功時に連結するには
&&を使い、変数は引用符で囲みます。set -eには条件式やパイプラインでの例外があるため、重要な操作は明示的に確認し、シェルフラグだけで完全に安全だと判断しないでください。
使用する場面
このスキルは、概要で説明されているワークフローまたはアクションを実行する場合に適用できます。
制限事項
- 上記の説明にある範囲とタスクが明確に一致する場合にのみ、このスキルを使用してください。
- 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を中断して確認してください。
コメント
Markdown 対応