http://blog.csdn.net/redguardtoo/archive/2011/05/08/6403839.aspx
=============================================================================================
我在個人電腦使用Linux桌面已4年(工作中使用Linux的時間要長的多),深深體會到了Linux桌面的好處.
從某種角度來看,Linux桌面要比Windows桌面好用得多.前提條件是,
- 使用者有一定的理性思維
- 堅持適合自己的原則
- 方法和工具
我使用的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 的服務器上.這裏必須用第三方服務器同步配置,因爲我使用多臺電腦.
具體操作可寫成長篇大論,這裏不展開了.
將軟件版本降級
雲備份
電子圖書,多媒體文件用專業的雲備份服務更好,我推薦Dropbox .
順便說一下,國內的服務不要用,安全原因,不言自明.
備份操作系統
不用經常作,又有云備份,又有分佈式版本控制系統,怕什麼.
備份整個硬盤是用Clonezilla ,只是備份操作系統的話用以下命令,
tar zcvpf mylinux.tgz --exclude=/proc/* --exclude=/lost+found --exclude='mylinux.tgz' --exclude=/mnt/* --exclude=/home/username/* --exclude=/sys/* /
我建議用前者,因爲省事.
閱讀官方文檔
照着ArchWiki 安裝軟件,一般不會有問題.
虛擬機的用處
我虛擬機軟件使用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