ちくわ

ちくわにきゅうりを入れるとうまい

history コマンドをいろいろ調べてて初めて知ったものをメモ

history 結果に日時を入れる

・HISTTIMEFORMAT でフォーマットを入れる。

・最後にブランクがあったほうが見やすい。

・恒久的に設定したい場合は、.bash_profile などに

export HISTTIMEFORMAT='%y/%m/%d %H:%M:%S '

を追記する

・見た目はこんな感じになります↓。

$ echo nya

nya

$ 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

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 も消えた(再度ログインしても履歴は消えていた)。そもそもログを消すなよという思想なのかなぁ。