シェル履歴を検索、編集できることを知らないのか、 操作を見ていて、毎回打ったり、カーソルの上下で探したり、teraterm でコピー&ペーストしたり、大変そうだな、、、と思うことがあります。
コマンドの入力を楽にするための方法を紹介したいと思います。(ここでは bash とします。)
補完
コマンドや、ディレクトリ・ファイル名などは、全部入力する必要はありません。tab を押せば残りを入力してくれます。
複数候補がある場合は、もう一度 tab を押すと候補が表示されます。
ヒストリー関連
打ったコマンドの履歴
history
コマンドを実行します。
必要に応じて、grep でフィルタするとよいです。
history | grep docker
など
打ったコマンドの検索 (reverse incremental search)
ctrl r を押す(ctrl を押しながら r を押す)と
(reverse-i-search)
のプロンプトになります。入力した文字列で検索します。 一文字ずつ入力が増えた分だけマッチング結果が変わるので、インクリメンタル、という名前が付いているのだと思います。
ここで、例えば、vim を入力すると直前に実行した vim〜 が表示されますが、この状態で、ctrl r を押すと、もう一つ前に実行した vim〜 が表示されます。
コマンドの編集
- reverse incremental search でコマンド履歴を検索した後、修正して実行したい
- コマンドを打ち間違ったので、修正して実行したい
といった場合があるのではないでしょうか。
この場合は、カーソル、デリート、バックスペース、などで編集することができます。
カーソルの他にも、私は次のような編集機能をよく使う。
- ctrl a (?)で行頭
- ctrl e (end)で行末
- ctrl f (forward)で右
- ctrl b (back)で左
- ctrl d (delete)でカーソル位置の文字を削除
- ctrl k (kill)でカーソル以降を削除
- ctrl y (yank)で削除したもの(主には ctrl k したもの)をペースト
他にも編集機能はあると思いますが、私が常時使っているのはこの程度です。