何気なく使ってるhistoryコマンドについてちょっと調べてみた。Macの。
history
コマンドについて調べてみました。調べたのは割と前なので、なんで調べようと思ったのかもう忘れました。
historyコマンドはシェルに組み込まれたコマンドだった
$ whereis history $ which history $ type history history is a shell builtin
history
コマンドがどこにあるのか気になったんですが、whereis
とwhich
では何も出ませんでした。色々調べてtype
コマンドを知って、使ってみたらビルトインとの事。なので、下に書いた変数なんかもbashのお話ぽい。bashしか使ってないのでほかのシェルのことは分かりません。
ちなみにMacでのwhereisコマンドとwhichコマンドの違い - kanonjiの日記というエントリーもあります。
historyコマンドに関連するbashの変数
HISTFILE | ヒストリーファイルの場所 |
HISTCMD | 次にコマンドを実行した際に付くヒストリ番号 |
HISTCONTROL | HISTCONTROL=ignoredups:同じコマンドを連続して実行した際、履歴には1回だけ記録する。HISTCONTROL=ignorespace:コマンドの頭にホワイトスペースをつけて実行すると、履歴に記録されない。HISTCONTROL=ignoreboth:ignoredupsとignorespaceの両方が適用される。 |
HISTFILESIZE | ヒストリーファイルに記録される行数 |
HISTSIZE | 記録されているコマンドの数。ヒストリーファイルではなく、上キーやhistoryコマンドで表示されるコマンド数、らしい*1。 |
HISTTIMEFORMAT | 設定すると履歴に日付・時間を付けられる。 |
HISTIGNORE | 履歴に残さないコマンドを指定する。複数指定する場合は: で区切る。* や? といったワイルドカードも使えるらしい。 |
変数をechoしてみた。
$ bash -version GNU bash, version 3.2.17(1)-release (i386-apple-darwin9.0) Copyright (C) 2005 Free Software Foundation, Inc. $ echo $HISTFILE /Users/kanonji/.bash_history $ echo $HISTCMD 509 $ echo $HISTCONTROL $ echo $HISTFILESIZE 500 $ echo $HISTSIZE 500 $ echo $HISTTIMEFORMAT $ echo $HISTIGNORE
特に何も設定してないので、Macでの初期値のはずです。空行なのは、未設定だからかな。
参考
*1:ちょっとよく分かってない