ウェブサイト検索

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 履歴からすべてのエントリを削除またはクリアするには、-c オプションを指定して以下のhistory コマンドを使用します。

history -c

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

cat /dev/null > ~/.bash_history 

: 通常のユーザーは自分のコマンド履歴のみを表示できますが、root ユーザーはシステム上の他のすべてのユーザーのコマンド履歴を表示できます。

bash 履歴ファイルと便利な履歴コマンドの詳細については、「The Power of Linux "History Command " in Bash Shell」を参照してください。

実行したすべてのコマンドは履歴ファイルに記録されるため、コマンド ラインにプレーンテキストのパスワードを入力しないでください。ご質問やご意見がございましたら、以下のフィードバック フォームをご利用ください。