このエントリーをはてなブックマークに追加

historyの設定としてHISTIGNORE変数にコマンド指定して、historyで表示されるコマンド履歴から除外することができる。 例えば、.bash_profile等に以下のようにするとhistoryコマンドの実行結果にhistoryコマンド自体の記録を残さないようにすることができる。

HISTIGNORE=history

コマンドを登録したい場合は、":"(コロン)で区切りながら追加していく。 また、"ls -la"のようにコマンドにコマンドオプションを加える場合はシングルクォーテーションで囲むと無視する対象になる。

HISTIGNORE=history:ls:ll:'ls -la'

さらに、ls*のようにアスタリスクを利用してパターンでHISTIGNOREすることも可能。 ただし、このような設定をした場合、"ls && 別のコマンド"といったようなコマンドを打った時も記録されないので不用意なアスタリスク利用は控えるべき。 また、むやみにHISTIGNOREを増やすのはお勧めしない。 運用の記録やセキュリティ的な観点から、OSの状態の変化を生じさせるものは確実に記録しておくべきだからである。 lsやhistoryは記録しても意味がないので追加しても問題ないが、cdコマンドのような一見OSの状態を変更しないコマンドにもきちんと記録しておいたほうが良いコマンドも存在する。 例えばcdコマンドの履歴が記録されていない場合、後続のコマンドがどのディレクトリから実行されたかがわからなくなる。 運用履歴をトレースする上で重要な意味を持つのできちんと記録しておくべきである。 必要以上にHISTIGNOREに登録するよりもHISTSIZEを大きくすることを検討すべきである。

当然、.bash_profileを修正した後はログインしなおすか、sourceコマンドで.bash_profileの反映をする。




記事一覧へ