以前実行したコマンドラインに前方一致: !(前方一致文字列)

bash コマンドライン

! に続いて以前実行したコマンドの前方一致文字列を指定すると そのコマンドを再実行できる。

例:

yasunari@sil:~$ pwd
/home/yamasita/yasunari
yasunari@sil:~$ ls /
bin  boot  dev  etc  home  initrd  lib  media  mnt  opt  proc  root  sbin  srv  sys  tmp  usr  var
yasunari@sil:~$ uname -a
Linux sil 2.6.16.16-arm1 #9 Wed Mar 7 14:17:36 JST 2007 armv5tejl GNU/Linux
yasunari@sil:~$
と実行したところで、
! に続いて uname -a の最初の1文字 u や ls / の l、 pwd の最初の2文字の pw を入力し [Enter] を押すと それぞれのコマンドを再実行できる。
yasunari@sil:~$ !u
uname -a
Linux sil 2.6.16.16-arm1 #9 Wed Mar 7 14:17:36 JST 2007 armv5tejl GNU/Linux
yasunari@sil:~$ !l
ls /
bin  boot  dev  etc  home  initrd  lib  media  mnt  opt  proc  root  sbin  srv  sys  tmp  usr  var
yasunari@sil:~$ !pw
pwd
/home/yamasita/yasunari
yasunari@sil:~$
前方一致がどのコマンドに一致するかは十分な注意が必要。
大昔の職場の同僚が、 rlogin コマンドを再実行しようとして、 !r[Enter]を実行したら、rm * が実行されたという笑えない実話もある。



直前のコマンド: !!
ハッカーに一歩近づく Tips
以前実行したコマンドラインに部分一致: !?(部分一致文字列)

Copyright (C) 2008 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市