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履歴エントリの削除
historyコマンドは、キャッシュと履歴ログから特定のエントリを削除することもできます。これは、シェルの全履歴をクリアするのではなく、いくつかのコマンドを省略したい場合に便利です。
historyコマンドを使用して、クリアしたいコマンドのインデックス番号を見つけます。私の場合、シェル履歴の7番目のコマンドを削除したいです。

注意: 削除したい特定のコマンドを検索するには、履歴コマンドをgrepにパイプすることができます:history | grep my-history-command。
削除したいエントリのインデックス番号とともに次のコマンドを実行します:
history -d 7historyコマンドを再実行して、履歴エントリが消えたことを確認します。

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

Ctrl + Aを押して、Nautilusで最近開いたすべてのファイルを選択します。
右クリックして、最近から削除を選択して、ファイルマネージャーの現在の履歴を削除します。

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

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

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

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

ヒント: プラグインや拡張機能を使って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 -srootユーザーのホームディレクトリに移動し、その中にローカル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
Geditでの最近のバックアップの無効化
Geditは、最近のUbuntuのバージョンにデフォルトで付属するシンプルなテキストエディタです。このエディタは、システムで開いて保存したすべてのファイルのバックアップを作成する場合があります。これは、マシンのスペースを節約したい場合に問題になる可能性があります。
これを無効にするには、アプリの右上隅にあるオプションメニューをクリックし、設定を選択します。

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

設定ウィンドウを閉じ、Geditを再読み込みして新しい設定を適用します。
新しいターミナルセッションを開き、次のコマンドを実行して、Geditがホームディレクトリに作成したバックアップファイルを削除します:
rm "$(find ~ -regex '.*~$')"最後に、ホームディレクトリにGeditのバックアップファイルが残っていないことを確認します:
find ~ -regex '.*~$'システムからさまざまな履歴ログを削除することは、Linuxマシンを維持し、保護するための一歩に過ぎません。Whoamiを使ってLinuxディストリビューションを匿名化する方法を学ぶことで、システムセキュリティの素晴らしい世界を探求しましょう。
画像クレジット:Samu Lopez via Unsplash。すべての変更とスクリーンショットはRamces Redによるものです。