ヒストリーの使い方

解説

UNIXのシェル(csh)では、以前に実行したコマンドをいくつか覚えているので、 同じコマンドをもう一度実行したい時には、ヒストリーの機能を使うと、 簡単にコマンドの再実行ができる。
たとえばhistoryコマンドによって

# history
10 ls
11 mkdir kadai
12 cd kadai
13 vi kadai.c
14 cc kadai.c

のように表示された後に

# !!

を実行すれば、実際には

history

が実行される。また

# !vi

を実行すれば

vi kadai.c

が実行される。

ヒストリー参照用の文字

!!
直前に実行されたコマンドを再実行
!$
直前に実行されたコマンドの最後の引数
!*
直前に実行されたコマンドの引数全部
!n
ヒストリ番号nのコマンドの再実行
!-n
現在のn回前のコマンドの再実行
!strings
以前実行されたコマンドの中で最初が文字列stringsのもの
!?strings?
以前実行されたコマンドの中で文字列stringsが含まれるもの

コマンド行の編集

^s1^s2
直前のコマンドのs1の部分をs2に変換して実行する。

また以下の編集コマンドは
(コマンド):(位置):(編集コマンド)
のようにして使用する。
ここで(位置)というのはコマンドの中の何番目の引数かということである。
たとえば

 cc test.c -lgl_s -lm 

というコマンドを実行した時には

の引数ということになる。

編集コマンド

s/strings1/strings2/
strings1の部分をstrings2に変換して実行する。
ただし最初に見つかったstrings1の部分しか変換しない。
gs/strings1/strings2/
strings1の部分をstrings2に全部変換して実行する。
h
ファイルのパス名のディレクトリー部分
t
ファイルのパス名のファイル名部分
r
ファイル名の.より前の部分
e
ファイル名の.より後ろの部分

使用例

最初の方にあるhistoryの表示を使うと、

# !13
ヒストリー番号13のコマンドを再実行する。
vi kadai.c が実行される。
# !vi:s/kadai/test/
コマンドの最初がviになっているコマンドのkadaiの部分をtestに変換して実行する。
vi test.c が実行される。
# xl !vi:1:r.lsp
コマンドの最初がviになっているコマンドの一つめの引数の.より前の部分をとりだして実行する。
xl kadai.lsp が実行される。

Home | Contents
Mail