シェル(bash)のヒストリー(履歴)機能

シェル履歴を検索、編集できることを知らないのか、 操作を見ていて、毎回打ったり、カーソルの上下で探したり、teraterm でコピー&ペーストしたり、大変そうだな、、、と思うことがあります。

コマンドの入力を楽にするための方法を紹介したいと思います。(ここでは bash とします。)

補完

コマンドや、ディレクトリ・ファイル名などは、全部入力する必要はありません。tab を押せば残りを入力してくれます。

複数候補がある場合は、もう一度 tab を押すと候補が表示されます。

ヒストリー関連

打ったコマンドの履歴

history

コマンドを実行します。

必要に応じて、grep でフィルタするとよいです。

history | grep docker

など

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 したもの)をペースト

他にも編集機能はあると思いますが、私が常時使っているのはこの程度です。

1969年生まれ。大学卒業後から15年以上にわたり、通信、カードリーダ、セキュリティ業界においてソフトウェア開発に従事。その後、2012年5月に当社を設立。電力、交通、車載向けの組み込み系システム、旅行業界向けの WEB システム開発、音声合成システム、消防向けのシステム開発等に参画。
低コストかつシンプルで安定稼働するシステムの実現を目指し、アーキテクチャ設計に取り組んでいます。
会社情報と代表者守屋のプロフィール詳細