Linux Tips

過去に実行したコマンドを再実行するには

北浦訓行
2001/2/1

 bashには、ヒストリ(履歴)機能があり、これを利用することによって、過去に入力したコマンドなどを繰り返し実行したり、一部を編集して別のコマンドとして実行することができる。

キー
機能
[↑]キーまたは[Ctrl]+[P]キー 1つ前のコマンドを表示
[↓]キーまたは[Ctrl]+[N]キー 1つ後ろのコマンドを表示
[Esc][<] 履歴の最初のコマンドを表示
[Esc][>] 履歴の最後のコマンドを表示

 例えば直前に、

# vi /etc/hosts.allow

を実行して/etc/hosts.allowを編集し、次に/etc/hosts.denyを編集する場合は、[↑]キーを1回押すと、コマンドラインに先ほど実行した

# vi /etc/hosts.allow

が表示される。そのまま[Backspace]キーを5回押して「allow」の部分を削除してから[d]キーを押し、続けて[Tab]キーを押すと、

# vi /etc/hosts.deny

と表示される。この状態で[Enter]キーを押すと、viで/etc/hosts.denyが開かれる。

 履歴情報を表示するには、historyコマンドを実行する。最近実行した10個の履歴を表示する場合は、以下のように入力する。

$ history 10
24 su -
25 ls
26 ls ..
27 ls bin
28 clear
29 vi /etc/hosts.allow
30 vi /etc/hosts.deny
31 cat .bash_history
32 man bash
33 history 10

 履歴の左側に表示されている数字はヒストリの番号で、

$ !番号

と入力することにより、その番号のコマンドを実行できる。この例の場合、

$ !27

とすると、「$ ls bin」コマンドが実行される。

 また、直前に実行したコマンドを再実行する場合は、単に

$ !!

とすればよいし、

$ !v

を実行すると、最近実行した「v」で始まるコマンド(この例の場合は、「vi /etc/hosts.deny」)を再実行できる。ちなみに、この履歴情報は、~/.bash_historyというファイルに保存されている。

 ヒストリには検索機能もある。[Ctrl]+[R]キーを押すと、プロンプトが「(reverse-i-search)' ':」という形に変わる。ここで、検索したいコマンドの最初の文字を入力する。例えば、「vi /etc/hosts.allow」を探すときには、「v」を入力する。vで始まるヒストリが「vi /etc/hosts.allow」だけであればこれが表示されるが、そうでなければ「vi /etc/inputrc」などと表示されるかもしれない。その場合は、「vi /etc/」のように順にキーを押していくと、違う文字を入力した時点(この例では「vi /etc/i」まで入力したところ)で「vi /etc/inputrc」と表示が変わる。

 historyはシェルの組み込みコマンドなので、manページを表示するには、

$ man bash

を実行する。

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間