我在個人電腦使用Linux桌面已4年(工作中使用Linux的時間要長的多),深深體會到了Linux桌面的好處. 從某種角度來看,Linux桌面要比Windows桌面好用得多.前提條件是, 1 使用者有一定的理性思維 2 堅持適合自己的原則 3 方法和工具 我使用的Linux發行版是Arch Linux ,其特點(缺點?)是軟件更新快,最新的軟件包未必經過長時間的嚴謹測試.所以Arch Linux絕不是發行版中最不折騰人的,我能和它和諧,和其他發行版就不用說了. 第一原則,不折騰 對我而言,使用軟件的目的是工作和娛樂.軟件只是幫助我實現目的的手段而已,和實現目的無關的資源消耗越少越好. 堅持該第一原則,日常操作就可以很有效率. 選擇軟件的標準 選軟件就是投資 我的標準是選軟件要成本小收益大.收益如前所述,就是工作和娛樂.所以只需考慮削減成本了. 具體措施,就是只用少量軟件做盡可能多的事. Arch Linux的流行作風是一日一更新.我使用的軟件數量少,要更新的也少. 那么我是否需要一日一更新呢? Arch Linux有這個選項并不等于我必須這么干.今天我剛升級完1.3版本,明天1.4又出來了,為什么我不多等一天,直接升級到1.4呢? 我的作法就是大多數軟件我短期內不升級.最常用的軟件我會根據需要理性升級.例如,firefox的安全升級我總是及時跟進,Linux的kernel我一年才升級一次. 依據投資收益的原則,我偏愛命令行軟件,因為它們不依賴于圖形界面庫,升級的壓力小很多.同類的命令行軟件,我會優先考慮依賴的第三方庫比較小的.例如用C寫的軟件優于用python寫的軟件. 我有個根據編寫軟件的語言來判定軟件是否輕小的主觀標準,c < perl < python, ruby, ….. < c++, java. 以下是我用的主力軟件,其中的編輯器,瀏覽器,Shell,桌面,都是功能強大,定制度高,可編程. 編輯器 我用Emacs,考慮到它可以做任何事,可以認為它是輕量級的. Vim也用,萬不得已用nano,結束了. 瀏覽器 沒多少選擇,firefox,如上所述,firefox是我更新頻繁的軟件. Shell 我用bash,在我的.bashrc中有如下一行, export HISTSIZE=200000 確保我輸入的所有命令都不會丟失,因為我說過,我偏愛命令行軟件,但是要記住常用命令行會消耗我很多腦細胞,這是不符合投資收益原則的.所以我讓shell替我記住.我只要記住按Ctrl+R可搜索歷史就好了. 桌面 Gnome,KDE是絕對不會考慮的.我安裝了Xfce4以給我太太用.我使用更輕量級的musca,安裝包大小才100K. 其他 網絡管理我用Netcfg(命令行) 而不是wicd,因為wicd的依賴多而且曾經折騰過我,播放視頻我之用mplayer (命令行),等等. 軟件的使用也需維護 安裝軟件在包管理系統的幫助下很簡單.麻煩的是最新軟件有時候不穩定,這通常是因為軟件的配置文件更新引起的. 將/etc目錄下的默認配置文件備份 Linux的軟件默認配置文件在/etc/目錄下. 我使用分布式版本控制軟件git 管理/etc目錄,分布式版本控制系統好處很多,最大好處就是數據到處有完整備份,非常安全.具體細節請參考wikipedia . 同類軟件mercurial,bzr也可,要考慮的因素是第三方服務器是否支持(對分布式版本控制軟件來說,第三方服務器不是必需的). 在Arch Linux上每次更新完系統或者安裝最新軟件包后,可以考慮手動將/etc目錄下的文件用git備份(Debian可自動備份). sudo git add /etc/ sudo git commit -am "backup" 一旦某個軟件工作不正常了,可以檢查其/etc下默認配置文件的修改紀錄,將配置文件恢復到上一個正常工作的版本. sudo git log /etc/mysql/my.cnf #check history sudo git checkout commit_ref(version) /etc/mysql/my.cnf #restoren file /etc/目錄下的臨時文件不需要備份,以下是我的.gitignore *~ *.pacnew *.pacsave *.swp *.pacorig *.swp mtab 將用戶目錄下的用戶定制配置文件備份 我也是用git,配置文件備份到github 的服務器上.這里必須用第三方服務器同步配置,因為我使用多臺電腦. 具體操作可寫成長篇大論,這里不展開了. 將軟件版本降級 最新版本的軟件可能不穩定,這時降級是必要的. 請參考Archwiki ,實際上很簡單,安裝名為downgrade的軟件,然后讓它干所有的體力活就行了. yaourt downgrade 云備份 電子圖書,多媒體文件用專業的云備份服務更好,我推薦Dropbox . 順便說一下,國內的服務不要用,安全原因,不言自明. 備份操作系統 不用經常作,又有云備份,又有分布式版本控制系統,怕什么. 備份整個硬盤是用Clonezilla ,只是備份操作系統的話用以下命令, tar zcvpf mylinux.tgz --exclude=/proc/* --exclude=/lost+found --exclude='mylinux.tgz' --exclude=/mnt/* --exclude=/home/username/* --exclude=/sys/* / 我建議用前者,因為省事. 閱讀官方文檔 照著ArchWiki 安裝軟件,一般不會有問題. 加入社區 緊急客戶支持還是用IRC 比較好,沒用過IRC的可以裝firefox插件Chatzilla 體驗一下. 虛擬機的用處 我虛擬機軟件使用VirtualBox,虛擬機為Windows XP,該操作系統我會定期更新安全補丁.軟件只安裝了IE和firefox.該操作系統我只用來操作網絡銀行.每次操作完畢,我會重置虛擬機狀態到操作前的snapshot. 救急工具箱 即使采用了上述做法,一年中也會有一次倒霉.就是我要用的某個版本的某個軟件出問題了.沒人能幫忙,不能降級,改軟件配置也沒用,也沒有可用的錯誤信息. 問題看起來很難,事實上5分鐘就能搞定.這往往是因為某軟件需要的第三方庫的版本出問題了. 比如說firefox不能啟動,運行如下命令調試, strace -o err.txt firefox 讀一下err.txt就可以知道是哪個庫出問題了.相信我,這是不需要任何編程知識的,猜加google就可以了. 你知道哪個庫文件出問題了(保險起見,ldd firefox確認一下).比如/usr/lib/libpng.so.14找不到,簡單的解決辦法是用另一個版本的庫文件代替. 如果/usr/lib/libpng.so.15是存在的,我們可以用該庫頂替libpng.so.14, sudo ln -s /usr/lib/libpng.so.15 /usr/lib/libpng.so.14 通常這樣就行了. 萬一冒名頂替不行,我們就必須根據丟失的庫文件查找需要安裝的軟件包(pacman沒用的), pkgfile libpng pkgfile屬于軟件包pkgtools,所以你必須安裝pkgtools, yaourt -S pkgtools-git |