このページの本文へ

コマンドを使うために、まずはシェルの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をコンパイルすることができる。

週刊アスキー最新号

編集部のお勧め

ASCII倶楽部

ASCII.jp Focus

MITテクノロジーレビュー

  • 角川アスキー総合研究所
  • アスキーカード
ピックアップ

デジタル用語辞典

ASCII.jp RSS2.0 配信中