Linuxで端末履歴を削除する[終了]


170

Linux端末でupキーを使用すると、以前のコマンドを再び使用できます。素晴らしい機能。ただし、コマンドの機密情報を使用して、mysqlをmysqlにログインし始めました。

どうすればその履歴を削除できますか?


申し訳ありませんが、bashを使用していることを完全に忘れていました。
フランクVilea

16
この質問は終了しているので、これを回答として追加することはできません。あなたは、このコマンドを使用して、特定のセッションのための任意の歴史を保存しないbashの言うことができます:export HISTFILE=/dev/null
クリス・エバリー

1
これを追加することもできます。コマンドラインに機密情報を入力しないでください
hummingBird

回答:


343

次のようにbash履歴をクリアできます。

history -cw


4
本当にこの答えのように-これは削除するの.bash_historyではなくすぐに有効になり、有効にするためにシェルを再起動する必要があります。
mikemaccana 2014

1
Ubuntu 14.04マシンでは動作しません。歴史は新しい端末で現れるだけです。働いていたことすべてがあります>~/bash_history。ただし、これを行うにはターミナルを再起動する必要があります。
Aniket Thakur

Mac OS X El Capitan(バージョン10.11.2でテスト済み)でも機能しますが、次の行を~/.bash_profile:に追加export SHELL_SESSION_HISTORY=0し、a source ~/.bash_profileとを実行して終了し、ターミナルアプリを再起動する必要があります。:あなたは、このエクスポート・コマンドが何をするのか理解したい場合、あなたは間違いなく、この次のリンクを確認する必要がありsuperuser.com/questions/950403/...
キング・ウィザード

1
-cだけでは不十分ですか?マニュアルによると、-cはすべてのエントリを削除して履歴リストをクリアします。-wは、現在の履歴を履歴ファイルに書き込み、履歴リストに追加します。ちょうど-cは正常に動作します。
カーン

24

bashを使用する場合、端末履歴は.bash_historyというファイルに保存されます。削除すると履歴が消えます。

ただし、MySQLの場合、コマンドラインにパスワードを入力しない方が良い方法です。値なしで-pオプションを指定するだけの場合、パスワードの入力を求められ、パスワードはログに記録されません。

毎回パスワードを入力したくない場合の別のオプションは、パスワードをmy.cnfファイルに保存することです。〜/ .my.cnfという名前のファイルを作成します。

[client]
user = <username>
password = <password>

自分だけがファイルを読み取れるように、ファイルのアクセス許可を必ず変更してください。

もちろん、この方法でも、以前は.bash_historyに保存されていたように、パスワードはホームディレクトリのプレーンテキストファイルに保存されます。


4
+1を指定し-pます。これは、この問題に対する完全に正しいアプローチです
andyb

2
実際、私のLinuxシステムでは、bashは履歴を記憶し、ログアウト時にファイルを再作成します。ログインしてファイルを削除し、再度ログインして、最初のシェルからログアウトし、ファイルを削除してから、2番目のシェルからログアウトする必要があります。
cHao

ご指摘いただきありがとうございます。私は非常に長いパスワードを持っているので上矢印を押すだけの方がはるかに高速だったので、コマンドで直接-p + passwordオプションを使用することで賢いと思っていました。再考する時間..
フランク・ビレア2011

5
unset HISTFILE現在の履歴が保存されないようにすることを忘れないでください。
Ignacio Vazquez-Abrams

回答を編集して、毎回パスワードを入力しないようにするソリューションを追加しました。
sagi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.