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


特定のコマンドの履歴をhistoryから除外する方法・HISTIGNORE

シェル上でhistoryコマンドはよく使いますよね。
historyはシェルのコマンド履歴を表示しますが、履歴取得が不要なコマンドを指定することにより除外することができます。
除外内容を指定する環境変数はHISTIGNOREになります。
以下にHISTIGNOREを設定し実行した使用例をいくつか記します。
HISTIGNOREの設定は.bashrcや.bash_profileなどに追記すれば便利でしょう。


関連資料

HISTIGNOREでコマンドを除外する

環境変数HISTIGNOREを使用してpwdコマンドの履歴を除外するように指定し実行した例を以下に記します。

  1. history -c で履歴を全消去します。
    sakura@ubuntu:~$ history -c
     
  2. HISTIGNOREにpwdを指定します。(pwdを履歴から除外する。)
    sakura@ubuntu:~$ export HISTIGNORE=pwd
    sakura@ubuntu:~$ echo $HISTIGNORE 
    pwd
     
  3. 実際にpwdコマンドを実行してみる。
    sakura@ubuntu:~$ pwd
    /home/sakura
     
  4. historyを実行しても上記で実行したpwdコマンドが履歴に表示されていないことが確認できます。
    sakura@ubuntu:~$ history 
        1  export HISTIGNORE=pwd
        2  echo $HISTIGNORE 
        3  history 
     
  5. 念の為、再度pwdを実行しててもhistoryの出力にpwdが表示されないことが確認できます。
    sakura@ubuntu:~$ pwd
    /home/sakura
    sakura@ubuntu:~$ history 
        1  export HISTIGNORE=pwd
        2  echo $HISTIGNORE 
        3  history 
    sakura@ubuntu:~$ 

複数のコマンドを除外する

複数のコマンドを除外する場合は : にてコマンドを指定します。
以下の例は、pwdとlsコマンドを履歴の除外コマンドとして指定した例です。

  1. history -c で履歴を全消去します。
    sakura@ubuntu:~$ history -c
     
  2. HISTIGNOREにpwdとlsコマンドを指定します。(pwd, lsを履歴から除外する。)
    sakura@ubuntu:~$ export HISTIGNORE=pwd:ls
    sakura@ubuntu:~$ echo $HISTIGNORE 
    pwd:ls
     
  3. lsコマンドを実行した後、historyコマンドの出力にlsが無いことが確認できます。
    sakura@ubuntu:~$ ls
    Ubuntu One        ダウンロード  デスクトップ  ビデオ    ミュージック
    examples.desktop  テンプレート  ドキュメント  ピクチャ  公開
    sakura@ubuntu:~$ history 
        1  export HISTIGNORE=pwd:ls
        2  echo $HISTIGNORE 
        3  history 
     
  4. pwdコマンドを実行した後、historyコマンドの出力にpwdが無いことが確認できます。
    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環境変数の使い方でした。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:29:47