Unixコマンド/history の変更点


*&SIZE(15){''history''}; [#ib4f12fb]

**''機能'' [#f3f10576]
historyコマンドはヒストリ機能を持つシェルの内部コマンドで、そのシェルから実行した~
コマンドの実行履歴を表示します。~
デフォルトでは、保存されている履歴を全て表示しますが、引数に履歴数を指定すると、~
新しい履歴から指定された数の履歴だけを表示します。~
シェルのヒストリ機能により、historyコマンドで表示できる履歴をコマンドラインに~呼び出すことができます。~
これによって、同じコマンドを再度実行するときに、コマンド入力の手間が省略できます。~
▼コマンド履歴の呼び出し指定~
|100|400|c
|CENTER:入力|CENTER:機能|h
|↑|一つ前のコマンドラインの履歴を呼び出す|
|↓|一つ後のコマンドラインの履歴を呼び出す|
|!!|直前に実行したコマンドライン|
|!n|historyコマンドで確認できる履歴番号n番のコマンドライン|
|!-n|n回目に実行したコマンドライン|
|!!:m|直前に実行したコマンドラインのm番目の引数(最初の引数(=コマンド自身)を0とする)|
|!$|直前に実行したコマンドラインの最後の引数|
|!文字列|指定した文字列から始まるコマンドライン|
▼履歴を指定するシェル変数
|100|400|c
|CENTER:シェル|CENTER:コマンド履歴数を指定するシェル変数|h
|csh、tcshなど|history|
|bash、kshなど|HISTSIZE|
▼履歴の保存ファイルを指定するシェル変数
|100|400|c
|CENTER:シェル|CENTER:履歴の保存先を指定するシェル変数|h
|csh、tcshなど|savehist|
|bash、kshなど|HISTFILESIZE|

現在のhistory保有数の確認
 # echo $HISTSIZE
 1000

**''構文'' [#nf342614]
history [オプション] [履歴数]

**''オプション'' [#v61940af]
 -h         履歴番号を表示しない
 -r         逆順に履歴を表示する
|-h|履歴番号を表示しない|
|-r|逆順に履歴を表示する|

**''コマンド例'' [#ocebbdff]
▼実行したコマンドの履歴を表示する
 $ 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