ウェブサイト検索

LinuxでBASHコマンドラインの履歴を消去する方法


bashの履歴は、Linuxのコマンドラインでユーザーが実行したすべてのコマンドの記録を保持します。これにより、「上矢印」または「下矢印」キーを使用してコマンド履歴ファイルをスクロールすることで、以前に実行したコマンドを簡単に再実行することができます。

この記事では、Linux システムでコマンドラインの履歴をクリアするための 2 つの簡単な方法をご紹介します。

Linuxターミナルからコマンドラインの履歴を削除する主な理由は、同じアカウントを使用している別のユーザーに対して情報を保護するためです。

例えば、パスワードを平文で含むコマンドを入力した場合、他のシステムユーザーや攻撃者にそのパスワードを見られたくないのであれば、履歴ファイルを削除またはクリアする必要があります。

以下のコマンドを見てください。ここでユーザーaaronkilikがコマンドラインにデータベースサーバーのパスワードを入力しています。

$ sudo mysql -u root -p=@!#@%$lab

bashの履歴ファイルの最後の方を見ると、そこに上で入力したパスワードが見えるでしょう。

$ history

通常、bash_historyファイルはユーザーのホームディレクトリ/home/username/.bash_historyにあります。

$ ls -l /home/aaronkilik/.bash_history

履歴ファイルから1行を削除するには、-dオプションを使用します。たとえば、上記のシナリオのように平文パスワードを入力したコマンドをクリアしたい場合は、履歴ファイル内の行番号を見つけてこのコマンドを実行してください。

$ history -d 2038

bashの履歴からすべてのエントリを削除またはクリアするには、以下のhistoryコマンドを-cオプションと共に使用してください。

$ history -c

あるいは、以下のコマンドを使用して、ファイル内のすべての最後に実行されたコマンドの履歴を永久に削除することができます。

$ cat /dev/null > ~/.bash_history 

注意: 通常のユーザーは自分のコマンド履歴のみを見ることができますが、ルートユーザーはシステム上の他のすべてのユーザーのコマンド履歴を見ることができます。

Bashの履歴ファイルや便利な履歴コマンドについては、こちらで詳しく学ぶことができます:Linuxの「履歴コマンド」の力。

すべてのコマンドは履歴ファイルに記録されることを常に覚えておいてくださいので、コマンドラインにプレーンテキストのパスワードを入力しないでください。質問や共有したい考えがある場合は、下のフィードバックフォームを利用してください。

関連記事: