ブログ

Claude Codeをさらに使いこなすためのBashテクニック集

先日、13 Claude Code Bash Tricks That Separate Pros from Amateurs という記事を読み、Claude Codeをターミナルで扱う際の作法について、自分なりに重要だと感じたポイントをまとめてみました。

う〜ん、claude -p が従量制になるのが痛いですね。


Claude CodeのようなAIツールを使っていると、つい「対話型インターフェース」としての側面ばかりに注目してしまいがちです。しかし、本来の力を引き出すためには、基盤となるBash(シェル)の操作をいかに組み合わせるかが、効率を分ける境界線になるのかもしれません。

今回は、特に実務で差が出やすいと感じたテクニックをいくつかご紹介します。


1. ! を使ったインラインコマンドの実行

Claude Codeのセッションを維持したまま、一時的にシェルコマンドを実行したい場面は多いかと思います。ここで一旦セッションを閉じてしまうか、それともその場で解決するかで、作業のテンポが大きく変わります。

アマチュアとプロの比較

項目 アマチュアの手法 プロの手法
操作 Claudeを終了 → コマンド実行 → 再起動 ! プレフィックスで直接実行
コンテキスト 会話の流れが途切れる 実行結果をそのまま会話に活かせる
手間 コピー&ペーストが発生する シームレスに次の指示へ移れる

使い方

セッション中に ! を先頭につけてコマンドを打つだけです。たとえば、ビルド確認やテストの実行、Gitのステータス確認などは、こちらの方が圧倒的にスムーズです。

! npm run build
! python -m pytest
! git status

これの良いところは、Claude自身がそのコマンドの出力結果を認識できる点にあります。何が起きたかをわざわざ説明し直す必要がなく、「今実行したテストが落ちたから、修正して」と伝えるだけで済むわけです。


2. エラー出力を直接Claudeへパイプする

開発中、エラーメッセージが長すぎてターミナルをスクロールして追いかけるのが大変、という経験はないでしょうか。そんな時、プロは手動でのコピー&ペーストを避け、標準エラー出力をそのままClaudeに流し込みます。

仕組みの可視化

エラーメッセージをそのままClaudeのヘッドレスモード(後述)に渡す際の流れは、以下のようになります。

flowchart LR
    A[ビルド/テスト実行] --> B{エラー発生}
    B --> C[2>&1 で標準エラーを統合]
    C --> D[| パイプ]
    D --> E[claude -p 'fix errors']
    E --> F[修正案の提示]

具体的なコマンド

Bashに慣れている方にはおなじみかもしれませんが、2>&1 を使って標準エラー出力(stderr)を標準出力(stdout)にまとめ、それをパイプでClaudeに渡します。

npm run build 2>&1 | claude -p "このエラーを解析して修正案を出してください"

これにより、スタックトレースや行番号、コンパイルエラーの細かな詳細が「生の情報」としてClaudeに伝わります。人間が要約して伝えるよりも、AIにとっては情報の密度が高く、正確な回答が得られやすくなるかと思います。


3. ヘッドレスモード(claude -p)の活用

Claude Codeを対話型のチャットツールとしてではなく、一つの「コマンド」として扱う方法です。これが使いこなせると、定型的な作業をスクリプト化できるようになります。

たとえば、特定のファイルのコードレビューを自動化したり、ログファイルの内容を要約させたりといった用途に向いています。

活用イメージ

たとえば、リリースの前に差分を確認して、変更点を要約させたい場合はこんな感じでしょうか。

git diff main...feature-branch | claude -p "この変更点をリリースノート用に要約してください"

対話モードに入る必要がないため、他のCLIツールと組み合わせてワークフローを組むことが可能です。まさに「AIを部品として使う」という感覚に近いかもしれません。


まとめ:Bashの基本がAIの性能を引き出す

Claude Codeは非常に優れたツールですが、それを動かす土壌であるBashの知識が、活用の幅を左右しているように感じます。

  • ! でコンテキストを維持する
  • パイプで正確なエラー情報を届ける
  • ヘッドレスモードで自動化の組み込みを行う

これらは一つひとつは小さなテクニックですが、積み重なると開発体験に大きな差をもたらします。まずは「エラーが出たらパイプで渡してみる」辺りから始めてみると、その便利さが実感できるのではないでしょうか。

皆さんの開発ワークフローが、こうした工夫でもう少し楽になれば幸いです。

参照記事