コマンドヒストリ
コマンドヒストリとは
コマンドラインを入力する際,過去に実行したコマンドラインを調べて,同じものがあればそれをそのまま使い,似通ったものがあればそれを修正することで,コマンドライン入力の手間を省くもの。
ヒストリの表示
history [<件数>]
過去のコマンドラインを件数分さかのぼって表示する。
ヒストリの内容を追加修正することもできる。
その詳細はこちらを参照。
実行例
[toshim@gw2000 ~]$ history 5
1015 jobs
1016 kill %2
1017 cat > xxx &
1018 man less &
1019 jobs
|
コマンド実行
ヒストリ中のコマンドラインを利用する方法はいくつかある。
コマンドライン入力編集機能を使う
カーソルキーなどを使ってコマンドプロンプトの状態で入力した文字列を編集できる。
詳細はこちらを参照。
!(Event Designator)を使う
!n
|
ヒストリ中のn番のコマンドを実行する |
!-n
|
n個前のコマンドを実行する |
!!
|
直前のコマンドを実行する。!-1と同じ。 |
!string
|
stringで始まるコマンドで,最後に実行されたものを実行する。 |
!?string[?]
|
stringを含むコマンドで,最後に実行されたものを実行する。 |
^string1^string2^
|
直前のコマンドのstring1をstring2に置き換えて実行する。!!:s/string1/string2/と同じ。
|
fcコマンドを使う
fc [first] [last]
firstからlastまでのコマンドをエディタに読み込んで,編集して実行する。
実行例
[toshim@gw2000 ~]$ fc 1018
(エディタが起動して1018番のコマンドラインを読み込む)
man less &
(これを下のように修正する)
man cat &
(そしてエディタを終了する)
/tmp/bash925823885: 1 lines, 10 characters.
man cat & ← 修正した内容がコマンドとなり,それが実行される
[1] 12114
|
fc -s [pat=rep] [cmd]
cmdで指定したヒストリ行のpatをrepに置き換えて実行する
[toshim@gw2000 ~]$ fc -s less=cat 1018 ← 1018番の'less'を'cat'に置き換えて実行する
man cat &
[1] 12124
|
|