Section Next | Prev


3.3.5 コマンド履歴

bash では、過去に入力したコマンドを $HOME/.bash_history (または変数 HISTFILE で定義されたファイル)に保存してゆきます。 これを使用して、以前実行したコマンドを引きだして再度実行する事ができます。
このヒストリ機能のコマンドは、次の様なものがあります。
コマンド 意味
history ヒストリリストの表示
!! ヒストリリストの最後のエントリ(直前のコマンド)を再実行。
! str 文字列(str)で始まる、ヒストリリストのコマンドを実行
! num ヒストリリストの番号numのコマンドを実行
	$history
	1 ls /tmp
	2 cd ../work
	3 history

	$ ! c
	cd ../work
	$ ! 1
	ls /tmp
	MEW		ksh.fun		test.ps
	Mail		mail		def.dat
	UnixWorld 	tdef.dat 	user.djl
保存されるジョブの数は $HISTSIZE で定義され、省略時は 1000 です。

また fc 組み込みコマンドを利用すれば、複雑なコマンド編集が可能です。
fc はコマンド入力行からの指示ではなく、その内容をエディタによって一時的に ファイルに書き込み、それをスクリプトの様に処理します。
例えば先の例で、! の代わりに fc を用いるとエディタが開き、 コマンド(ls /tmp など)が表示され、編集したのち保存終了すれば、 それらが実行されます。

	$ fc 1
	 (エディタが起動され "ls /tmp" が表示される)
ヒストリ機能に係わる環境変数
変数名意味
HISTSIZE保存する履歴の数
HISTFILE履歴を保存するファイル名
HISTFILESIZE履歴をファイルに保存する場合の履歴数
HISTCMD現在の履歴番号
FCEDITfc コマンドで起動されるエディタ(vi)

Section Next | Prev

Copyright 2007-2018 ycosSystems Shell/Body335.html