コマンドを使うために、まずはシェルのbashを使いこなせるようになろうではないか。
覚えておきたい必須コマンド30―その5・シェルを使おう
2001年06月27日 06時54分更新
実際にシェルで作業をしていると、以前と同じ入力を繰り返したいときがよくある。bashは以前入力したコマンドを回数分覚えているので、そのようなときは、履歴機能を使うと、すばやくコマンドを入力することができる。
筆者の場合、もっともよく使うのが、Ctrlキーと組み合わせた履歴の呼び出しだ。コマンドラインで、Ctrl-Pをタイプしてみよう。直前に入力したコマンドが表示されるはずだ。ここで再度、Ctrl-Pをタイプすると2回前に実行したコマンドが表示される。こうして、以前に入力したコマンドを呼び出すことができる。もし、いきおい余って過去に戻りすぎてしまったら、Ctrl-Nをタイプすれば履歴を1回分ずつ戻ってくる。↑↓(上下カーソルキー)でも、履歴を呼び出すことができるので、こちらを利用しても構わない。
しかし、しばらく前に入力したコマンドを呼び出すには、もっとよい方法がある。履歴の内容を検索するCtrl-Rコマンドだ。
コマンドラインでCtrl-Rをタイプすると、プロンプトが以下のように変わる。
(reverse-i-search)`'):
ここで、以前入力したコマンドの一部の文字列をタイプしてみよう。以下のように以前に入力されたコマンドが表示されるはずだ。ここで、Enterキーをタイプすれば、そのコマンドを実行できる。もし、利用したい履歴が別のものであれば、さらにCtrl-Rをタイプすることによりさかのぼって検索することができる。
(reverse-i-search)`mv'): mv foo.txt /tmp
さらに、ここでCtrl-PやCtrl-Rで呼び出した履歴は、前に書いたコマンドライン編集機能で編集することもできる。
また、“!”を利用した、簡単な履歴機能もある。以前使ったコマンドをキチンと覚えているならば、
$ !str
とタイプすることで、履歴の中にある“str”から始まるコマンドを再び実行する。直前のコマンドに限っては“!!”とタイプするだけで実行する。
また、シェルで作業中には、直前のコマンドの引数をもう1度、別のコマンドの引数として利用したいときもあるだろう。そんな場合には“!*”を使う。たとえば、あるファイルを編集して、それをコンパイルしたいときなどは、まず、
$ vi foo.c
で、編集し
$ cc !*
とタイプすることにより、“!*”の部分が“foo.c”に展開され、“cc foo.c”というコマンドを与えたのと同じになる。これにより、foo.cをコンパイルすることができる。