Unixコマンド/history
history †
機能 †
historyコマンドはヒストリ機能を持つシェルの内部コマンドで、そのシェルから実行した
コマンドの実行履歴を表示します。
デフォルトでは、保存されている履歴を全て表示しますが、引数に履歴数を指定すると、
新しい履歴から指定された数の履歴だけを表示します。
シェルのヒストリ機能により、historyコマンドで表示できる履歴をコマンドラインに~呼び出すことができます。
これによって、同じコマンドを再度実行するときに、コマンド入力の手間が省略できます。
▼コマンド履歴の呼び出し指定
入力 | 機能 |
↑ | 一つ前のコマンドラインの履歴を呼び出す |
↓ | 一つ後のコマンドラインの履歴を呼び出す |
!! | 直前に実行したコマンドライン |
!n | historyコマンドで確認できる履歴番号n番のコマンドライン |
!-n | n回目に実行したコマンドライン |
!!:m | 直前に実行したコマンドラインのm番目の引数(最初の引数(=コマンド自身)を0とする) |
!$ | 直前に実行したコマンドラインの最後の引数 |
!文字列 | 指定した文字列から始まるコマンドライン |
▼履歴を指定するシェル変数
シェル | コマンド履歴数を指定するシェル変数 |
csh、tcshなど | history |
bash、kshなど | HISTSIZE |
▼履歴の保存ファイルを指定するシェル変数
シェル | 履歴の保存先を指定するシェル変数 |
csh、tcshなど | savehist |
bash、kshなど | HISTFILESIZE |
現在のhistory保有数の確認
# echo $HISTSIZE 1000
構文 †
history [オプション] [履歴数]
オプション †
-h | 履歴番号を表示しない |
-r | 逆順に履歴を表示する |
コマンド例 †
▼実行したコマンドの履歴を表示する
$ history 29 19:07 top 30 19:07 netstat | head 31 19:07 exit 32 23:37 cd /work1/HOME/ 33 23:37 ll 34 23:37 rm *3.0.xls 35 23:37 ll 36 23:38 su 37 23:49 cat /usr/local/etc/smb.conf 38 23:50 ll /work1/HOME/
▼コマンド履歴の保存数を設定する。 matsui@vaio$ set history=256 256個まで履歴を保存する matsui@vaio$ set |grep history history 256 変数historyが設定された ▼直前に実行したコマンドを再実行する
matsui@vaio$ ls lsコマンドを実行 account db log run tmp at empty mail rwho yp backups games msgs service crash heimdal preserve spool cron lock qmail supervise matsui@vaio$ !! 直前に実行したコマンドを実行 ls account db log run tmp at empty mail rwho yp backups games msgs service crash heimdal preserve spool cron lock qmail supervise
▼指定した文字列から始まるコマンドを実行
matsui@vaio$ ls /usr/ @LongLink games libexec sbin X11R6 include local share bin lib obj src compat libdata ports sup matsui@vaio$ pwd /var matsui@vaio$ !ls lsから始まるコマンドを再実行 ls /usr/ @LongLink games libexec sbin X11R6 include local share bin lib obj src compat libdata ports sup
▼直前に実行したコマンドの引数だけを再利用する
$ ls -a !$ 直前のコマンドの最後の引数を再利用 ls -a /usr/local/etc . pear.conf smb.conf.default .. proftpd.conf ssh codepages proftpd.conf.bak sudoers courier-imap rc.d sudoers.sample cups rc.subr wgetrc openldap smb.conf