nixCraftは1月30日(米国時間)、「How to disable bash shell history in Linux - nixCraft」において、bashでコマンド履歴機能を無効化する方法を伝えた。インタラクティブユースではコマンド履歴機能が利用できたほうが便利だが、複数のユーザーが同じアカウントでログインしているなど、作業履歴を残したくないといった理由でコマンド履歴機能を無効化したいこともある。

紹介されている主な方法は次のとおり。

環境変数HISTFILEをアンセットしてコマンド履歴保存を無効にする方法

unset HISTFILE

set組み込みコマンドを使ってコマンド履歴保存を無効化する方法

set +o history

コマンド履歴機能が有効になっている間に入力したコマンドはすでにコマンド履歴ファイルに保存されている。次のようにhistoryコマンドを使うことで、すでに保存されているコマンド履歴をクリアしたり、削除したりすることができる。

保存されているコマンド履歴をクリアする方法

history -c

指定した番号のコマンド履歴を削除する方法

history -d 番号
  • コマンド履歴機能の有効化/無効化の例 Ubuntu 16.04

    コマンド履歴機能の有効化/無効化の例 Ubuntu 16.04

「unset HISTFILE」や「set +o history」といった処理はシェルを終了すると効果が失われる。ログインした時や新しくシェルを起動した時にコマンド履歴機能が常に無効になるようにするには、こうした処理を~/.bash_profileや/etc/profile.d/disable.history.shなどの末尾に追加しておく必要がある。