シェル上で実行したコマンドをヒストリに残したくない場合(悪用厳禁)
はじめに
ユーザ名とパスワードを引数で受け取りLinuxユーザを作成するスクリプト | ゲンゾウ用ポストイット でも書きましたが、
シェルのヒストリ(コマンド実行履歴)についつい残してはいけない情報を残してしまうことがあります。
( ex: mysql -pxxxx mysql
みたいなパスワード情報をついつい貼り付けてしまったり )
一時的に残らないようにして作業することもできますので、その方法を紹介します。
検証環境
$ uname -moi
x86_64 x86_64 GNU/Linux
$ bash -version | head -n 1
GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
コマンドをヒストリに残さないようにする
すべてのコマンドをヒストリに残さないようにするには、 HISTIGNORE 環境変数にワイルドカードを設定してやります。
その後、 HISTIGNORE 環境変数を触った履歴を history -d
で削除します。
# これ以降、すべてのコマンドをヒストリに残さないようにする
$ HISTIGNORE="*"
# 直前に実行した `HISTIGNORE="*"` だけは残ってしまうため、ヒストリの最終履歴を1つ削除
$ history -d $(history | sed -n 's/^\s\+//; s/\s\+.*$//; $p')
コマンドをヒストリに残すようにする
HISTIGNORE を解除してやればもとに戻ります。
( HISTIGNORE にもともと値が設定されている場合には注意が必要です。 )
$ unset HISTIGNORE
ひとこと
自分がどんな操作をしたのかを追えますし、シェルのヒストリは非常に便利です。
しかし、 どうしてもリスクを犯してでも進まないといけない場合 にお使いください。
ディスカッション
コメント一覧
まだ、コメントがありません