パソコン悪戦苦闘記録

Linuxのコマンド履歴で入力省力化

 Linuxでコマンドを打ち込むのに、入力の手間を省いてくれる便利な機能が
   「コマンド履歴」  です。

 ターミナルを開いた状態で、キーボード上の上矢印キー[↑]や、下矢印キー[↓]を押せば、過去に遡ったり、最近の方向に進めたりして、以前使ったコマンドを探せて、再実行することができます。
 
 [↑]や[↓]によるコマンド履歴の利用については、
  こちらの記事をご覧ください。

 上記の[↑]や[↓]は、過去に使ったコマンドを見つけて再利用するのに便利ですが、使いづらい場面もあります。
 最近使ったコマンドではなくて、かなり前に使ったコマンドを探すときです。

 というのは、[↑]や[↓]は、一つずつ遡ったり、進んだりするので、かなり前に使ったコマンドを探すとなると、何回もキーを押すことになるからです。
 何十個、何百個とあるコマンド履歴の中から、目的とするコマンドを見つけるために、[↑]キーを何十回、何百回と押すことになり、大変です。矢印キーを何回も押しつつ、一つずつ確認しながら探すのは現実的ではありません。





 こういうときに役に立つのが、
  [Ctrl]+[r]  です。

 ずいぶん前に使った記憶があるコマンドを呼び出そうとするときは、[Ctrl]キーを押しながら、[r]キーを押してみてください。
 そうすると、プロンプトが次のように変わります。
  (reverse-i-search)`':

 これは、「インクリメンタル検索」という検索モードです。
 インクリメンタルなんて、むつかしい用語ですが、簡単に「逐次検索」とも言うそうです。
 「逐次」ですから、1文字入力するたびに、逐次、検索してくれるモードです。1文字入力するごとに、履歴の中から該当するコマンドを検索します。ユーザーが単に検索したい語を入力するだけで、自動的に検索されます。

 なお、検索されるのは、入力文字が含まれるコマンドです。
 例えば、私の環境だと、「awk」を呼び出そうとして、まず「a」を入力すると、直前に実行した「clear」というコマンドが表示されました(clearの中にaが含まれているからです。)。

「a」に続けて「w」と入力すると、
(reverse-i-search)`aw': awk '$2~/^[A-Z]/{print $0}' ./ドキュメント/hoge.txt
と出てきました。

 最初の検索結果が出てきた後、次にやるべき操作は、次のとおり4通りに分かれます。
 検索結果を前提に、次にどうしたいのかによって、押すべきキーが決まります。

1 さらに1つ前の検索をするには、[Ctrl]+[r]
2 検索された結果をそのまま実行するには、[Enter]
3 検索された結果を表示したままコマンドラインに戻り、編集をするには、[Esc]
4 検索の結果を破棄して、コマンドラインに戻るには、[Ctrl]+[g]

 ですから、「aw」と入力して検索された上記の
(reverse-i-search)`aw': awk '$2~/^[A-Z]/{print $0}' ./ドキュメント/hoge.txt
をそのまま実行するならば、[Enter]キーを押せばいいわけです。

 
 このコマンド履歴検索方法は、使いこなせるようになるまでには、ある程度の慣れが必要です。
 けど、この検索を実地で繰り返し、いったん身につけることができたならば、とても強力で、ユーザーにとって便利な機能となります。検索によって目的の内容が見つかれば、コマンドライン上に最初っから、コマンド名やオプション、引数を記述する必要がないからです。また、ずいぶん前に実行したために、記憶が薄らぎ、うろ覚え状態であっても、コマンド名の一部を打ち込めば、検索できるというのも便利です。

 使いこなせれば、大幅な省力化になります。



新しいLinuxの教科書 大改訂


それでは、また次の記事で
goosyun
名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「Ubuntu」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事