ターミナルコマンドと効率テクニック
開発者にとって、ターミナルはエディタに次いで重要なツールです。ターミナルを使いこなせば開発効率が5倍以上向上します。
🔥 Vibe Prompt
「ターミナル効率化ガイドを作成:zsh設定(oh-my-zshテーマとプラグイン)、よく使うパイプラインコマンド、バッチファイル処理、VSCode統合テクニック。」
なぜターミナルが重要なのか?
GUIツールは直感的ですが、制限があります:
- 自動化不可:同じ操作を100回手動で繰り返す
- 組み合わせ不可:異なるツールを連鎖できない
- 低速:マウス操作はキーボードよりはるかに遅い
ターミナルはすべてを解決します:
- ✅ スクリプトによる自動化
- ✅ パイプ(|)でツールを組み合わせ
- ✅ GUIよりはるかに高速
基本コマンド
| コマンド | 目的 | 例 |
|---------|------|-----|
| ls | ファイル一覧 | ls -la |
| cd | ディレクトリ移動 | cd ~/projects |
| pwd | 現在のパス表示 | pwd |
| cp | コピー | cp -r src/ dest/ |
| mv | 移動/名前変更 | mv old.txt new.txt |
| rm | 削除 | rm -rf temp/ |
| grep | テキスト検索 | grep -r "TODO" src/ |
| find | ファイル検索 | find . -name "*.py" |
# 便利な組み合わせ
# すべてのPythonファイルのTODOを検索
find . -name "*.py" | xargs grep "TODO"
# リアルタイムログ監視
tail -f logs/app.log | grep "ERROR"
# コード行数カウント
find . -name "*.ts" -o -name "*.tsx" | xargs wc -l | tail -1
# 最大の5ファイルを表示
du -sh * | sort -rh | head -5
パイプラインとリダイレクト
# パイプライン (|):前のコマンドの出力を次の入力に
cat access.log | grep "404" | wc -l
# 結果:404エラーの数
# 出力リダイレクト (> / >>)
echo "Hello" > file.txt # 書き込み(上書き)
echo "World" >> file.txt # 追記
# 入力リダイレクト (<)
sort < unsorted.txt > sorted.txt
# エラーリダイレクト (2>)
command_that_fails 2> error.log
Oh-My-Zsh 設定
# oh-my-zshのインストール
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# おすすめテーマ
ZSH_THEME="powerlevel10k/powerlevel10k" # 最も美しい
# おすすめプラグイン
plugins=(
git
docker
docker-compose
node
npm
python
pip
vscode
history
colored-man-pages
zsh-autosuggestions
zsh-syntax-highlighting
web-search
copyfile
copypath
)
高度なテクニック
エイリアス (Alias)
# Git
alias gs='git status'
alias ga='git add'
alias gc='git commit'
alias gp='git push'
alias gl='git log --oneline --graph'
# Docker
alias d='docker'
alias dc='docker-compose'
# ナビゲーション
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
# 安全削除
alias rm='rm -i'
fzf — ファジーファインダー
# インストール
brew install fzf
# ファイル検索してVSCodeで開く
vim $(fzf)
# コマンド履歴検索
history | fzf
# ディレクトリ検索して移動
cd $(find . -type d | fzf)
一括処理
# 全Gitリポジトリを一括更新
for dir in ~/projects/*/; do
echo "📂 $dir を更新中..."
cd "$dir" && git pull
done
# ファイル名を一括変換
for f in *.JPG; do
mv "$f" "${f%.JPG}.jpg"
done
# テキストを一括置換
sed -i '' 's/old_text/new_text/g' src/**/*.ts
実践練習
💡 Vibe Coding 練習:AIに依頼:
- プロジェクト初期化スクリプトを作成(ディレクトリ構造、git init、依存関係インストール)
- ワンクリックデプロイスクリプト(テスト、ビルド、アップロード)
- ターミナル美化設定(powerlevel10k + フォント)
- 20個以上の便利なエイリアスを作成
- バッチ処理スクリプトを作成(一括名前変更、フォーマット変換、ファイル整理)