「またあの長いコマンド、一から打ち直すのか…」
ターミナルを毎日触っている方なら、誰しも一度はそう思ったことがあるんじゃないでしょうか。カーソルキーを連打して過去のコマンドを探したり、historyコマンドを打って番号を指定したり。それ、実はもっとスマートな方法があるんです。
それが今回紹介する bash ep です。
といっても、bash epという独立したコマンドがあるわけではありません。ここで言う「ep」は、ESCキーを押したあとにPキーを押すというキーバインドのことを指しています。
この小さな設定を加えるだけで、「ssh」と数文字打ってESC+Pを押せば、過去に実行したsshコマンドだけを遡れるようになる。そんな夢のような履歴検索が手に入ります。
この記事では、bash epの設定方法から実践的な活用テクニック、さらにはトラブルシューティングまで、会話するようにわかりやすく解説していきます。
bash epって結局なに?
まずは基本から整理していきましょう。
bash epの「ep」は、Escapeキー + pキーの組み合わせです。このキー操作に「history-search-backward」という機能を割り当てることで、入力途中の文字列から始まる過去のコマンドだけを芋づる式に呼び出せるようになります。
通常のCtrl+Rでのインクリメンタルサーチとは一味違うんです。Ctrl+Rは入力した文字列を「含む」コマンドを検索しますが、bash epは入力した文字列で「始まる」コマンドだけを抽出します。
たとえば「git」と入力してESC+Pを押せば、git commitやgit pushなど、gitから始まるコマンドだけが順番に表示されるわけです。ノイズが少なく、目的のコマンドにたどり着くまでのストレスが格段に減ります。
なぜbash epが快適すぎるのか
コマンドラインの操作効率って、積み重なると無視できない差になります。
1日100回コマンドを実行するとして、履歴検索に毎回3秒かかっているとしたら、それだけで5分です。1ヶ月で2時間以上。bash epを使えば、この検索時間が1秒未満になることも珍しくありません。
しかも、この方法のいいところは「思考の流れを止めない」こと。
Ctrl+Rを押して、検索文字を入れて、違ったらまたCtrl+Rを連打して…という手順と違って、「あ、gitのあのコマンドだ」と思ったら即座に「gi」と打ってESC+Pするだけ。脳内の思考と指の動きがシンクロする感覚、一度味わうと手放せなくなります。
bash epの具体的な設定手順
では実際に設定していきましょう。難しくないので安心してください。
設定ファイルはホームディレクトリにある「.inputrc」です。もしファイルがなければ新規作成します。
# .inputrc をエディタで開く(なければ新規作成)
vim ~/.inputrc
ここに以下の2行を追加してください。
"\ep": history-search-backward
"\en": history-search-forward
1行目が今回の主役、ESC+Pで後方検索(過去に遡る)です。
2行目はESC+Nで前方検索(戻りすぎたときに逆方向へ)です。セットで設定しておくと便利ですよ。
保存したら、ターミナルを開き直すか、以下のコマンドで設定を再読み込みします。
bind -f ~/.inputrc
これだけでbash epの設定は完了です。驚くほどシンプルでしょう。
bash epを使いこなす実践テクニック
設定しただけではもったいない。ここからは実際の使い方と応用テクニックを紹介します。
基本の使い方
- コマンドラインに検索したいコマンドの冒頭部分を入力する(例:
docker) - ESCキーを押してから、Pキーを押す
- 過去に実行した
dockerで始まるコマンドが順に表示される - 目的のコマンドが表示されたら、そのままEnterで実行
戻りすぎたときはESC+Nで逆方向に進めます。
ssh接続先を瞬時に呼び出す
サーバー管理者の方なら、「ssh user@192.168.1.100」みたいなコマンドを何度も打つことがあるはず。でも「ssh」とだけ入力してESC+Pを押せば、過去のssh接続コマンドがずらり。よく使う接続先ほど上位に出てくるので、ほぼ一瞬で呼び出せます。
git操作をストレスフリーに
開発者の強い味方、git。ブランチ名やコミットメッセージまで含めると、コマンドが長くなりがちですよね。
「git push origin feature/」まで入力してESC+Pを押せば、そのブランチへのpushコマンドがすぐに出てきます。ブランチ名を正確に覚えていなくても、冒頭部分だけで検索できるのが本当に便利です。
長いパス指定も怖くない
「cd /var/www/html/project/src/components/」みたいな深いディレクトリへの移動。「cd /var」まで入力してESC+P。これで過去に移動したパスが候補に出てくるので、いちいちパスを打ち間違えるストレスから解放されます。
履歴を最大限活用するための補足設定
bash epの威力をさらに引き出すために、履歴関連の設定も見直しておきましょう。.bashrcに以下の設定を追加するのがおすすめです。
# 履歴ファイルに保存するコマンド数を増やす
HISTSIZE=10000
HISTFILESIZE=20000
# 重複したコマンドを保存しない
HISTCONTROL=ignoredups
# 複数のターミナル間で履歴を即時共有
shopt -s histappend
PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
特に最後の設定は強力です。複数ターミナルを開いている環境では、ターミナルAで実行したコマンドがターミナルBのbash epでも即座に検索できるようになります。作業効率が段違いになりますよ。
bash epが効かないときのチェックポイント
「設定したのに動かない…」というときは、以下を順番に確認してみてください。
1. そもそもBashを使っているか
当たり前のようですが、意外と見落としがち。MacのCatalina以降はデフォルトシェルがZshに変更されています。以下のコマンドで確認しましょう。
echo $SHELL
/bin/bashと表示されればOK。/bin/zshならBashに切り替えるか、Zsh用の設定が必要です。
2. .inputrcの記述ミス
ダブルクォーテーションが全角になっていないか、バックスラッシュが正しく入力されているか。コピペするのが確実です。
3. キー入力のタイミング
ESCを押してからPを押す、この順序とタイミングが大切です。同時押しではなく、ESCを押して離してからPを押します。EmacsやVimの操作に慣れている方ならすぐに馴染むはずです。
4. ターミナルソフト側のキーバインド設定
ごくまれに、ターミナルソフト自体がESCキーを別の機能に割り当てているケースがあります。iTerm2やWindows Terminalの設定も一応確認しておくと安心です。
まとめ:bash epでコマンドライン作業をもっと快適に
bash epことESC+Pの履歴検索は、設定の手軽さに対して得られるリターンが非常に大きいテクニックです。
- 入力途中の文字列から始まるコマンドだけを検索できる
- 思考を中断せず、流れるようにコマンドを呼び出せる
- たった2行の設定で即座に使い始められる
- ssh、git、dockerなど、繰り返し使うコマンドほど真価を発揮する
「もっと早く知りたかった」と思えること請け合いです。まだ試していない方は、ぜひ今すぐ.inputrcに2行追加してみてください。コマンドラインとの付き合い方が、きっと変わりますから。



