Ubuntuで履歴をクリアする方法

スリムなハードディスクの上にミニチュアのフィギュアが乗っている写真.

Linuxシステムの履歴ログをクリアすることは、健康なマシンを維持するために重要です。これにより、貴重なディスクスペースを節約し、デジタル活動を覗き見から守ることができます。ここでは、Ubuntu LinuxでBashシェル、ファイルマネージャー、テキストエディタの履歴データをクリアする方法を示します。

目次

  • Bashでのコマンド履歴のクリア
  • Nautilusでの最近のファイル履歴のクリア
  • Geditでの最近のバックアップの無効化

Bashでのコマンド履歴のクリア

Linuxはコマンドライン駆動のオペレーティングシステムです。ファイル管理からプログラムの設定まで、Linux内のほぼすべてのアクションは、何らかの形のターミナルコマンドを必要とします。時間が経つにつれて、これらのコマンドはBashシステムシェルに蓄積され、かなりのディスクスペースを占有する可能性があります。

UbuntuでBashコマンド履歴をクリアする最も簡単な方法は、UNIXパイプを使用して空の文字列を「.bash_history」ファイルにリダイレクトすることです:

echo""> ~/.bash_history

とはいえ、これは現在のBashセッションの履歴バッファをクリアすることはありません。それを行うには、次のコマンドを実行します:

history -cw

注意: 現在のデスクトップセッションのすべてのアクティブなBashシェルに対してこのコマンドを再実行する必要があります。

historyコマンドを引数なしで実行して、現在のBash履歴がクリアされていることを確認します。

Bashでの履歴ログの無効化

Bashが将来のセッションからコマンド履歴を保存しないように強制することができます。これは、共有コンピュータを設定している場合に、他のユーザーに自分のアカウントで実行しているコマンドを知られたくない場合に便利です。

まず、Ubuntuの現在の履歴バッファが完全にクリアされていることを確認します:

history -cw

お気に入りのテキストエディタを使用して.bashrcファイルを開きます:

nano ~/.bashrc

.bashrcファイルの最後に次のコード行を貼り付けます:

export HISTSIZE=0  
export HISTFILESIZE=0

注意: HISTSIZE変数は、Bashがアクティブなセッション中に保持する行数を決定します。一方、HISTFILESIZEは、履歴ログファイルが時間の経過とともに維持する行数を設定します。

.bashrcファイルを保存し、次のコマンドを実行して新しい設定を現在のシェルセッションに適用します:

source ~/.bashrc

現在のディレクトリでlsコマンドを実行し、その後historyコマンドを再実行して新しい設定をテストします:

ls && history

完全にクリアされたBash履歴ファイルとキャッシュを示すターミナル.

知っておくと良いこと: Bashの特別な文字について学ぶことで、シェルスクリプトについてもっと知ることができます。

特定のBash履歴エントリの削除

historyコマンドは、キャッシュと履歴ログから特定のエントリを削除することもできます。これは、シェルの全履歴をクリアするのではなく、いくつかのコマンドを省略したい場合に便利です。

historyコマンドを使用して、クリアしたいコマンドのインデックス番号を見つけます。私の場合、シェル履歴の7番目のコマンドを削除したいです。

現在のシェルセッションの7番目の履歴エントリを強調表示するターミナル.

注意: 削除したい特定のコマンドを検索するには、履歴コマンドをgrepにパイプすることができます:history | grep my-history-command

削除したいエントリのインデックス番号とともに次のコマンドを実行します:

history -d 7

historyコマンドを再実行して、履歴エントリが消えたことを確認します。

削除された7番目の履歴エントリの周囲のコマンドを強調表示するターミナル.

Nautilusでの最近のファイル履歴のクリア

ターミナルセッションのコマンド履歴をクリアするだけでなく、システムのデフォルトファイルマネージャーの最近の履歴を削除することもできます。これを行うには、システムのアプリケーションランチャーからファイルマネージャーを開きます。

マネージャーの左サイドバーで最近カテゴリをクリックします。

Nautilusファイルマネージャー内の「最近」カテゴリの位置を強調表示するスクリーンショット.

Ctrl + Aを押して、Nautilusで最近開いたすべてのファイルを選択します。

右クリックして、最近から削除を選択して、ファイルマネージャーの現在の履歴を削除します。

Nautilusファイルマネージャー内の「最近から削除」エントリを強調表示するスクリーンショット.

デスクトップの左上隅にあるシステムメニューを開き、ポップアップパネルのギアアイコンをクリックします。

Ubuntuのシステムトレイ内のギアアイコンを強調表示するスクリーンショット.

ウィンドウの左サイドバーでプライバシーとセキュリティを選択します。

Ubuntuのシステム設定内の「プライバシーとセキュリティ」カテゴリを強調表示するスクリーンショット.

これにより、ウィンドウの右パネルに新しいサブカテゴリが表示されます。ファイル履歴とゴミ箱カテゴリをクリックします。

システム設定メニュー内の「ファイル履歴とゴミ箱」設定を強調表示するスクリーンショット.

ファイル履歴スイッチを無効にし、履歴をクリアボタンをクリックします。

「ファイル履歴」トグルと「履歴をクリア」ボタンを強調表示するスクリーンショット.

ヒント: プラグインや拡張機能を使ってNautilusをさらに便利にする方法を学びましょう。

Nautilusでのファイル履歴を自動的に削除

Ubuntuでファイル履歴をクリアする別の方法は、Bashを使用して「最近」カテゴリのデータを保持するファイルを削除することです。

まず、ホームディレクトリにローカルバイナリフォルダーを作成します:

mkdir -p ~/.local/bin/ && cd ~/.local/bin/

お気に入りのテキストエディタを使用して新しいフォルダーの下に新しいBashスクリプトを作成します:

nano ./user-clear-history.sh

スクリプトファイル内に次のコードブロックを貼り付けます:

#!/bin/bash  
rm -f ~/.recently-used.xbel  
rm -f ~/.recently-used.xbel.*  
rm -f ~/.local/share/recently-used.xbel  
rm -f ~/.local/share/recently-used.xbel.*

スクリプトファイルを保存し、次のコマンドを実行してその権限ビットを更新します:

chmod +x ./user-clear-history.sh

システムのアプリケーションランチャーを開き、スタートアップアプリケーションを選択します。

システムのアプリランチャー内の「スタートアップアプリケーション」プログラムを強調表示するスクリーンショット.

ウィンドウの左上隅にある追加ボタンをクリックします。

スタートアップアプリケーションウィンドウ内の「追加」ボタンを強調表示するスクリーンショット.

実行したいスクリプトに名前を付けます。私の場合、「ユーザーファイル履歴自動クリア」とラベル付けします。

名前のテキストボックスの下にある参照…ボタンをクリックします。

スタートアップアプリケーションウィンドウ内の「参照...」ボタンを強調表示するスクリーンショット.

ファイルピッカーメニューでCtrl + Hを押し、「~/.local/bin/」ディレクトリに移動します。

シェルスクリプトを選択し、開くをクリックして新しいスタートアップエントリに追加します。

追加をクリックして、現在のユーザーセッションにコミットします。

新しいスタートアップスクリプトのための「追加」ボタンを強調表示するスクリーンショット.

余談ですが: Linuxで.desktopファイルを使用してGUIからスクリプトを起動する方法を学びましょう。

すべてのユーザーのファイル履歴をクリア

GUIを通じてファイル履歴を削除することの欠点の1つは、現在のユーザーのためだけにクリアされることです。これは、複数の人が共有するマシンを維持している場合に問題になる可能性があります。

これを修正するには、新しいターミナルセッションを開き、次のコマンドを実行してrootユーザーに切り替えます:

sudo -s

rootユーザーのホームディレクトリに移動し、その中にローカルbinフォルダーを作成します:

cd ~ && mkdir -p ~/.local/bin/ && cd ~/.local/bin/

お気に入りのテキストエディタを使用して新しいスクリプトファイルを作成します:

nano ./system-clear-history.sh

スクリプトファイル内に次のコードブロックを貼り付けます:

#!/bin/bash  
rm -f /home/*/.recently-used.xbel  
rm -f /home/*/.recently-used.xbel.*  
rm -f /home/*/.local/share/recently-used.xbel  
rm -f /home/*/.local/share/recently-used.xbel.*

新しいスクリプトファイルを保存し、その実行権限ビットを設定します:

chmod +x ./system-clear-history.sh

新しいスクリプトのために「/etc/systemd/system」に新しいsystemdサービスファイルを作成します:

sudo nano /etc/systemd/system/system-clear-history.service

新しいサービスファイル内に次のコードブロックを貼り付けます:

[Unit]  
Description=シャットダウン前にファイル履歴をクリア  
DefaultDependencies=no  
Before=shutdown.target  
  
[Service]  
Type=oneshot  
ExecStart=/root/.local/bin/system-clear-history.sh  
  
[Install]  
WantedBy=halt.target reboot.target shutdown.target

新しいサービスファイルを保存し、次のコマンドを実行してsystemdデーモンにロードします:

sudo systemctl daemon-reload  
sudo systemctl enable --now system-clear-history.service

サービスが正常に実行されていることを確認するには、その現在のステータスを確認します:

systemctl status system-clear-history.service

systemctlでのカスタムsystemdサービスの出力を示すターミナル.

Geditでの最近のバックアップの無効化

Geditは、最近のUbuntuのバージョンにデフォルトで付属するシンプルなテキストエディタです。このエディタは、システムで開いて保存したすべてのファイルのバックアップを作成する場合があります。これは、マシンのスペースを節約したい場合に問題になる可能性があります。

これを無効にするには、アプリの右上隅にあるオプションメニューをクリックし、設定を選択します。

Geditの「設定」メニューの位置を強調表示するスクリーンショット.

Geditの設定ウィンドウでエディタタブをクリックし、保存前にファイルのバックアップコピーを作成するチェックボックスのチェックを外します。

Geditのバックアップチェックボックスの位置を強調表示するスクリーンショット.

設定ウィンドウを閉じ、Geditを再読み込みして新しい設定を適用します。

新しいターミナルセッションを開き、次のコマンドを実行して、Geditがホームディレクトリに作成したバックアップファイルを削除します:

rm "$(find ~ -regex '.*~$')"

最後に、ホームディレクトリにGeditのバックアップファイルが残っていないことを確認します:

find ~ -regex '.*~$'

システムからさまざまな履歴ログを削除することは、Linuxマシンを維持し、保護するための一歩に過ぎません。Whoamiを使ってLinuxディストリビューションを匿名化する方法を学ぶことで、システムセキュリティの素晴らしい世界を探求しましょう。

画像クレジット:Samu Lopez via Unsplash。すべての変更とスクリーンショットはRamces Redによるものです。