history 結果に日時を入れる
・HISTTIMEFORMAT でフォーマットを入れる。
・最後にブランクがあったほうが見やすい。
・恒久的に設定したい場合は、.bash_profile などに
export HISTTIMEFORMAT='%y/%m/%d %H:%M:%S '
を追記する
・見た目はこんな感じになります↓。
$ echo nyanya
$ history
1 echo nya
$
$ HISTTIMEFORMAT='%y/%m/%d %H:%M:%S '
$
$ echo wan
wan
$
$ history
1 12/11/28 17:02:55 echo nya
2 12/11/28 17:03:13 HISTTIMEFORMAT='%y/%m/%d %H:%M:%S '
3 12/11/28 17:03:19 echo wan
特定のコマンドを history に載せない
・HISTIGNORE=<除外コマンド>
・コロンで複数指定可能
・ls と指定しても、ls -la は履歴に残る 。* 等のメタ文字が使えるので、ls* という指定は可能
・HISTTIMEFORMAT 同様、恒久的な設定は .bash_profile 等へ追記
・以下は ls と history コマンドを除外している。(最後の history コマンドで、history というコマンド自体履歴に残るはずだが、出てないのがわかる)
$ history -c$ HISTIGNORE=ls*:history
$ echo hoge
$ ls
file1 file2 file3
$ history
1 12/11/28 17:11:34 HISTIGNORE=ls*:history
2 12/11/28 17:11:38 echo hoge
・bash の機能として ctrl + p,n で履歴を辿れるが、これにも出てこなくなる。調子に乗って履歴に残ってるはずと思って Ctrl + p , Enter とか条件反射で打つと偉いことになるかも。正直こわいと思った。
history のクリア
・コマンドの help に、history の履歴クリアは
$ history -c
とあるが、確かに実行すると実行したシェル内では履歴は消えるが、再度ログインしたら復活していた。.bash_history への削除処理は走らない??
なので
$ history -c$ history -w
これを実行したら .bash_history も消えた(再度ログインしても履歴は消えていた)。そもそもログを消すなよという思想なのかなぁ。