給 Linux 系統“減肥”

developerworks發表於2013-10-16

  面對著日益膨脹的 Linux 系統,自己硬碟的空間越來越顯的捉襟見肘。該如何給 Linux 系統減肥,通常可以使用手工和使用系統工具來完成。本文介紹如下工具:Activity Log Manager、BleachBit、find、fdupes、geeqie、GConf Cleaner 的使用方法和技巧。

 前言

  Linux 計算機安裝後,在我們不斷的使用過程中,因為新增、刪除軟體和上網衝浪、除錯程式等行為,硬碟中會產生各種各樣的垃圾檔案,而隨著這些垃圾檔案的不斷膨脹,它們不僅會平白吞噬掉我們寶貴的硬碟空間,更會拖累機器的執行速度,影響我們的工作效率。本文介紹一下給 Linux 系統減肥的方法和工具的使用技巧,本文使用的 Linux 發行版本是 Ubuntu 12.04 。本文介紹的工具包括:Activity Log Manager、BleachBit、find、fdupes、Geeqie、GConf Cleaner,這些工具都是開源工具,Linux 使用者可以通過下載編譯原始碼在其他流行的 Linux 版本(如 Redhat、SUSE 等)上使用。

 Linux 下哪些檔案屬於垃圾檔案

  • 軟體安裝過程中產生的臨時檔案  

  許多 bin 格式的軟體在安裝時,首先要把自身的安裝檔案解壓縮到一個臨時目錄(一般為/tmp 目錄)然後再進行安裝。如果軟體設計有疏忽或者系統有問題,當安裝結束後,這些臨時檔案就會變得並不“臨時”,成為硬碟裡的一堆垃圾,很多時候它們以*.tmp 的面孔出現。

  • 軟體執行過程中產生的臨時檔案

  和安裝過程一樣,在軟體的執行過程中通常也會產生一些臨時交換檔案,有些軟體執行過後遺留下來的垃圾甚至多達數百兆,比如 SSH 伺服器和客戶端連線過程中時產生的檔案。還有虛擬機器執行時產生的檔案。另外我們刪除一個賬戶之後,還會存在一些無用垃圾檔案及目錄。

  • 上網衝浪產生的臨時檔案

  我們在上網的時候,瀏覽器總是將網頁檔案下載到本地機器上,這些快取檔案不但佔用了寶貴的磁碟空間,還常常會把我們的個人隱私公之於眾。

  • 一些不常用的雞肋檔案

比如一些應用軟體自帶的幫助和系統手冊頁等。既然食之無味索性也將它們視作垃圾檔案的一種表現。佔用空間甚大,更會嚴重拖累系統和一些圖形處理軟體的執行速度。另外還有一些損壞的桌面檔案,它包括損壞的應用程式選單按鈕和檔案關聯。

  • 各種快取檔案

  如果 Linux 使用者安裝使用 GIMP 或者 Geeqie 等圖形編輯工具,在這些軟體都有圖片預覽功能,在儲存了圖片的資料夾下會產生一個名為“Thumbs.db”的檔案,這個檔案會隨著圖片檔案的增加而膨脹。還有就是.DS_Store 檔案,DS_Store 檔案是用來儲存這個資料夾的顯示屬性的:比如檔案圖示的擺放位置。刪除以後的副作用就是這些資訊的失去。另外還有使用 apt 或者 YUM 軟體包安裝過程中生成的快取檔案。

 使用 Linux 命令刪除垃圾檔案

  刪除使用者後遺留下的垃圾檔案

  這裡我們使用到的主要命令是 find 。舉個例子: 我們刪除一個賬戶之後,還會存在一些無用垃圾檔案及目錄,我們要找出屬於這個使用者的垃圾東西,使用 find / -user 使用者名稱 :就可以找到根目錄下屬於這個使用者的相關檔案 ,使用命令:

#find ./ -nouser  |xargs rm –rf

  core 檔案

  當我們在系統下執行某個程式出錯的時候,系統會自動將殘留在記憶體中的資料存成 core 檔案,久而久之,系統中遺留下來的 core 會越來越多,就像灰塵一樣散落在系統的每一個角落裡很是煩人。這個時候,我們就可以應用 find 命令加上—exec 引數來清理它們。使用命令:

# find / -name core -print -exec rm -rf {} \;

  多餘的手冊頁

  另外 Linux 提供了眾多語言的手冊頁(man)比如 Ubuntu 的 手冊頁位於/usr/share/man 目錄下 ,可以使用命令刪除多餘語言的手冊頁保留中英文即可。

# cd /usr/share/man
# find ./ -maxdepth 1 -type d | tail -n +2 | grep -E -v '(en|zh|man).*' | \
    while read d; do rm -rf $d; done

  說明:關鍵字是(en|zh|man) ,您可以根據自己的情況修改。

  使用 fdupes 工具刪除指定目錄下重複檔案

  fdupes 是一個命令列工具,它會查詢和刪除指定目錄的重複檔案,它通過檔案的大小和 MD5 值進行比較 。一個位元組一個位元組進行對比。 首先安裝這個工具

# apt-get install fdupes

  在 /etc 目錄查詢重複檔案 ,使用如下命令:

#fdupes /etc

  可以與 Linux 命令組合使用,刪除檔案 :

#fdupes -r -f . | grep -v ^$ | tee duplicate.txt cat duplicate.txt | \
    while read file; do rm -v "$file"; done

  另外也可以與 sed 命令組合使用,刪除檔案 :

# fdupes -r -n -S /tmp | sed -r “s/^/#rm \”/” | sed -r “s/$/\”/” >duplicate-files.sh

  刪除快取檔案

  清理舊版本的軟體快取

# apt-get autoclean

  清理所有軟體快取:

#apt-get clean

  刪除系統不再使用的孤立軟體


  這三個命令主要清理升級快取以及無用包的。

  使用 Geeqie 工具找出相似影象檔案

  現在的硬碟容量是越來越大,出於備份的考慮,很多朋友會採取“寧濫勿缺”的原則儲存圖片,這就可能出現檔案重複的情況,造成檔案搜尋的效率低下。要在海量的儲存空間中找出重複的文件,並不是一件容易的工作。其實藉助著名的影象瀏覽工具 Geeqie 可以很輕鬆地找出系統中的重複和相似影象檔案。這些檔案相比文字檔案更大,時間長了會佔用很多硬碟空間。使用上面介紹的 fdupes 工具就不行,因為 fdupes 工具只能刪除完全相同 (md5sum 相同) 的重複檔案, 但若要剔除 "相似" 的圖片檔案, 則可使用 geeqie 工具。首先安裝這個工具:

# apt-get install gqview

  下面執行這個工具,在要搜尋的目錄上按滑鼠右鍵, 選擇 "Find duplicates recursive..."見圖 1 。

  圖 1.選擇 "Find duplicates recursive..."

  選擇左下角的 "Compare by:" 下拉選單可選擇比對方式 Similarity (custom)找出相似度 99% 以上的圖片,另外可以勾選 "Thumbnails" 可顯示縮圖見圖 2

  圖 2.找出相似度 99% 以上的圖片

  下面在被選取的專案上按滑鼠右鍵, 點選 "Delete" 即可刪除所有被選取的圖片, 刪除前會有一個的確認介面以免誤刪。說明 99%是圖片相似度的預設值,使用者可以通過如下方式修改引數:在 Edit → Preferences → Preferences... → Behavior → Miscellaneous: Custom similarity threshold 見圖 3 。

  圖 3.修改引數

 使用 BleachBit 清理檔案

  簡介

  BleachBit 是一款開源免費的系統清理工具,功能類似 Windows 平臺的 CCleaner。BleachBit 能夠刪除隱藏的垃圾檔案,以及簡單的保護你的隱私。擦除快取,刪除 cookies 檔案,清除網際網路瀏覽歷史,刪除未使用的本地化碎片日誌,刪除臨時檔案,是一款非常實用的跨平臺的系統清理工具。BleachBit 提供有 rpm 和 deb 二進位制包,適用於 Fedora/CentOS/RHEL、Debian/Ubuntu 等 Linux 發行版。其它 Linux 使用者可以選擇 BleachBit 的原始碼包(下載地址:http://bleachbit.sourceforge.net/download.php )。使用 BleachBit,你可以清理系統中的快取、歷史、臨時檔案、cookies 等不需要的東西,這樣可以釋放你的磁碟空間。當前,BleachBit 能夠清理 Beagle、Firefox、Epiphany、Flash、OpenOffice.org 、KDE、 GIMP、Java 程式設計工具、vim、Gedit 編輯器等 70 多種軟體所產生的垃圾檔案。還有系統執行時生成的“Thumbs.db”的檔案和使用 apt 或者 YUM 軟體包安裝過程中生成的快取檔案以及剪下板裡面的歷史檔案資訊等。

  首先安裝軟體:

#apt-get install bleachbit

  安裝之後系統工具選單裡就會多出兩個工具:bleachbit 和 bleachbit as root。對於 root 使用者使用第 2 個,軟體第一次執行,彈出“首選項視窗”,見圖 4。

  圖 4.BleachBit 設定介面

  簡單說明一下設定介面:包括定製檔案和資料夾,驅動器列表 ,語言,白名單(免於清理的)設定,以及是否開機啟動 BleachBit 等一些選項。

  下面看看工作介面見圖 5。

  圖 5.BleachBit 工作介面

  BleachBit 軟體功能單一因此使用起來也方便。從圖 5 裡我能看到。 軟體的左邊羅列出了能夠清理的各種垃圾,點選“預覽“按鈕,就會分析出垃圾檔案的明細和大小。 勾選好軟體按 clean(清除)按鈕即可。

  以 Chrome 瀏覽器為例介紹操作例項

  Chrome 瀏覽器可以清理的檔案主要包括:

  • 快取: 刪除那些網頁緩衝檔案(這些緩衝檔案可以減少下次訪問該網頁的時間)
  • Cookies: 刪除 cookies 檔案,它們儲存網站首選項、認證和身份等資訊
  • 當前會話: 刪除當前會話
  • DOM(文件物件模型) 儲存: 刪除 HTML5 cookies
  • 表單歷史: 網站表單輸入歷史
  • 歷史: 刪除已瀏覽網站、下載及縮圖的歷史記錄
  • 搜尋引擎: 重置搜尋引擎使用歷史並刪除非內建搜尋引擎,其中一些引擎為自動新增
  • 整理資料庫: 清理資料庫碎片以減少空間並提高速度(無需刪除任何資料)

  首先檢視可清理的 Chrome 瀏覽器檔案見圖 6 。

  圖 6.檢視 Chrome 瀏覽器可清理的系統垃圾

  選中欲清理的專案後,點選“預覽“按鈕即可執行對該類專案內所含垃圾檔案的掃描操作,掃描過程非常快速,掃描過程完畢,使用者將看到檢測到的垃圾檔案列表及其統計資訊,下面使用者只需滑鼠點選“清理”按鈕即可輕鬆清除這些已經被檢測到的垃圾檔案。

  上面筆者選擇執行的是對 Chrome 瀏覽器的掃描清理任務,當然可以選擇全部垃圾列表中的所有專案,使用者只需逐一勾選掃描專案選擇啟用項即可。

  使用 Activity Log Manager 清理殘留在系統中的使用痕跡

  上網衝浪,用賬號登入系統,包括使用一些編輯軟體都會在系統裡留下蛛絲馬跡,這些殘留資訊中包含個人資訊,如果被不法分子利用,就會造成隱私洩露,下面介紹的工具是 Activity Log Manager,它是配置在 Zeitgeist 活動日誌中記錄的內容的 ,使用它可以有效保護隱私。首先安裝這個工具:

#apt-get install activity-log-manager

  Activity Log Manager 的中文名稱是活動日誌管理器,安裝完成後出現在附件選單中。它的使用方法也比較簡單。最直接的就是設定停止記錄的功能,然後刪除所有歷史檔案見圖 7 。

  圖 7.刪除所有歷史檔案

圖 7.刪除所有歷史檔案

  當然使用者也可以進行有區別的設定,可以根據具體情況設定哪些應用程式和檔案可以保留歷史檔案那些不保留。下面通過“檔案”介面進行設定見圖 8

  圖 8.設定哪些應用程式和檔案可以保留歷史檔案那些不保留

  這裡筆者選擇“電子表格、文字、即時訊息”三個事關隱私的選項。另外對於一些特殊的應用程式使用者還可以自己新增到活動日誌管理器中,見圖 9

  圖 9.把應用程式使用者新增到活動日誌管理器

  使用 GConf Cleaner 清理 GConf

  GConf 是一個用於儲存 GNOME 應用程式選項設定的系統。如果該系統充斥著大量無用鍵值,那麼將使 GConf 臃腫不堪。這對應用程式的啟動速度和效能都是有影響的。為了解決這個問題,你可以使用 GConf Cleaner 來對其進行清理。Gconf-Cleaner 是一款類似於 Windows 登錄檔清理器的工具。它會檢查 Gconf 資料庫(即 GNOME 配置資料庫)並移除無用及過時的專案。

  首先安裝這個工具:

#apt-get install gconf-cleaner

  然後從終端執行 gconf-cleaner 啟動 GConf Cleaner 程式。這個程式具有執行嚮導,只需按步驟操作即可。 嚮導初始畫面,點選 Forward 會進入分析過程。圖 10 是分析結果,它提供具體資料,並可儲存。再次點選 Forward 則開始清理過程。

  圖 10.分析結果

  圖 11 是以與 Linux 命令組合使用 清理完成的介面。

相關文章