ヒストリー

ヒストリーとは

シェルでは以前に実行したコマンドをいくつか覚えている。
その覚えているコマンドを再利用すると、効率的にコマンドを入力できる。

ヒストリー関係のコマンドと機能

history
ヒストリーを表示するコマンド
!(コマンドの頭文字)
一つ前のコマンドから過去にさかのぼって、頭文字が一致するコマンドを 探して実行してくれる。
!(コマンド番号)
コマンド番号に相当するコマンドを実行する。
!!
直前に実行したコマンドを実行する。
^文字列1^文字列2
直前に実行したコマンドの文字列1を文字列2に変更して実行する。
!(コマンドの頭文字):s/文字列1/文字列2/
!(コマンド番号):s/文字列1/文字列2/
以前に実行したコマンドの文字列1を文字列2に変更して実行する。

実行例

# history
10 vi test.c
11 cc test.c
12 a.out
13 vi tmp.c
14 cc tmp.c
15 a.out
# !v     <- vi tmp.c が実行される
# !c     <- cc tmp.c が実行される
# !a     <- a.out が実行される
# !1     <- vi test.c が実行される
# !2     <- cc test.c が実行される
# !3     <- a.out が実行される
# vi test1.c
# !!     <- vi test1.c が実行される
# ^1^2     <- vi test2.c が実行される
# ^test^tmp     <- vi tmp2.c が実行される
# !14:s/tmp/tmp2/     <- cc tmp2.c が実行される

ヒストリーのその他の機能

!(コマンドの頭文字):gs/文字列1/文字列2/
!(コマンド番号):gs/文字列1/文字列2/
以前に実行したコマンドの文字列1を文字列2に全て変更して実行する。
!!:gs/文字列1/文字列2/
直前に実行したコマンドの文字列1を文字列2に全て変更して実行する。
!$
直前に実行したコマンドの最後の引数
!*
直前に実行したコマンドの引数全部
!(コマンドの頭文字):(引数の番号)
!(コマンド番号):(引数の番号)
以前に実行したコマンドの引数
!!:(引数の番号)
直前に実行したコマンドの引数
コマンド名が0番目、引数が1, 2, ... と続く。

実行例

# vi test1.c test2.c test3.c
# cc !$     <- cc test3.c が実行される
# cc !vi:2     <- cc test1.c が実行される
# cc !vi:2     <- cc test2.c が実行される
# cc !vi:3     <- cc test3.c が実行される
# !vi:gs/test/tmp/     <- vi tmp1.c tmp2.c tmp3.c が実行される
# mv !* dir     <- vi tmp1.c tmp2.c tmp3.c をdirディレクトリに移動

参考


Prev | Next
Home | Contents
abe@injapan.net