シェル上でhistoryコマンドはよく使いますよね。
historyはシェルのコマンド履歴を表示しますが、履歴取得が不要なコマンドを指定することにより除外することができます。
除外内容を指定する環境変数はHISTIGNOREになります。
以下にHISTIGNOREを設定し実行した使用例をいくつか記します。
HISTIGNOREの設定は.bashrcや.bash_profileなどに追記すれば便利でしょう。
環境変数HISTIGNOREを使用してpwdコマンドの履歴を除外するように指定し実行した例を以下に記します。
sakura@ubuntu:~$ history -c
sakura@ubuntu:~$ export HISTIGNORE=pwd sakura@ubuntu:~$ echo $HISTIGNORE pwd
sakura@ubuntu:~$ pwd /home/sakura
sakura@ubuntu:~$ history 1 export HISTIGNORE=pwd 2 echo $HISTIGNORE 3 history
sakura@ubuntu:~$ pwd /home/sakura sakura@ubuntu:~$ history 1 export HISTIGNORE=pwd 2 echo $HISTIGNORE 3 history sakura@ubuntu:~$
複数のコマンドを除外する場合は : にてコマンドを指定します。
以下の例は、pwdとlsコマンドを履歴の除外コマンドとして指定した例です。
sakura@ubuntu:~$ history -c
sakura@ubuntu:~$ export HISTIGNORE=pwd:ls sakura@ubuntu:~$ echo $HISTIGNORE pwd:ls
sakura@ubuntu:~$ ls Ubuntu One ダウンロード デスクトップ ビデオ ミュージック examples.desktop テンプレート ドキュメント ピクチャ 公開 sakura@ubuntu:~$ history 1 export HISTIGNORE=pwd:ls 2 echo $HISTIGNORE 3 history
sakura@ubuntu:~$ pwd /home/sakura sakura@ubuntu:~$ history 1 export HISTIGNORE=pwd:ls 2 echo $HISTIGNORE 3 history sakura@ubuntu:~$
上記では :を使用して複数のコマンドを除外指定する方法を記しました。
HISTIGNORE環境変数では、*, ? でワイルドカード指定も可能です。
上記では、HISTIGNOREにlsコマンドを指定しましたが、オプション付きでlsを実行した場合は履歴除外の対象になりません。
sakura@ubuntu:~$ history -c sakura@ubuntu:~$ export HISTIGNORE=ls sakura@ubuntu:~$ ls Ubuntu One ダウンロード デスクトップ ビデオ ミュージック examples.desktop テンプレート ドキュメント ピクチャ 公開 sakura@ubuntu:~$ ls -l 合計 56 drwxrwxr-x 2 sakura sakura 4096 10月 25 16:07 Ubuntu One -rw-r--r-- 1 sakura sakura 8445 10月 5 20:49 examples.desktop drwxr-xr-x 2 sakura sakura 4096 10月 12 23:48 ダウンロード drwxr-xr-x 2 sakura sakura 4096 10月 5 21:12 テンプレート drwxr-xr-x 2 sakura sakura 4096 10月 5 21:12 デスクトップ drwxr-xr-x 2 sakura sakura 4096 10月 26 09:46 ドキュメント drwxr-xr-x 2 sakura sakura 4096 10月 5 21:12 ビデオ drwxr-xr-x 2 sakura sakura 4096 11月 5 22:46 ピクチャ drwxr-xr-x 3 sakura sakura 4096 10月 26 09:36 ミュージック drwxr-xr-x 2 sakura sakura 4096 10月 5 21:12 公開 sakura@ubuntu:~$ history 1 export HISTIGNORE=ls 2 ls -l 3 history
lsコマンドでオプション付きの場合も除外する場合は以下のように指定すれば実現可能です。
lsコマンドとls -lが履歴から除外されているのが確認できます。
sakura@ubuntu:~$ history -c sakura@ubuntu:~$ export HISTIGNORE=ls:ls\ * sakura@ubuntu:~$ ls Ubuntu One ダウンロード デスクトップ ビデオ ミュージック examples.desktop テンプレート ドキュメント ピクチャ 公開 sakura@ubuntu:~$ ls -l 合計 56 drwxrwxr-x 2 sakura sakura 4096 10月 25 16:07 Ubuntu One -rw-r--r-- 1 sakura sakura 8445 10月 5 20:49 examples.desktop drwxr-xr-x 2 sakura sakura 4096 10月 12 23:48 ダウンロード drwxr-xr-x 2 sakura sakura 4096 10月 5 21:12 テンプレート drwxr-xr-x 2 sakura sakura 4096 10月 5 21:12 デスクトップ drwxr-xr-x 2 sakura sakura 4096 10月 26 09:46 ドキュメント drwxr-xr-x 2 sakura sakura 4096 10月 5 21:12 ビデオ drwxr-xr-x 2 sakura sakura 4096 11月 5 22:46 ピクチャ drwxr-xr-x 3 sakura sakura 4096 10月 26 09:36 ミュージック drwxr-xr-x 2 sakura sakura 4096 10月 5 21:12 公開 sakura@ubuntu:~$ history 1 export HISTIGNORE=ls:ls\ * 2 history sakura@ubuntu:~$
以上、historyの履歴から除外指定ができるHISTIGNORE環境変数の使い方でした。