1. 定期備份,隨時備份要更改的檔案

最重要的是系統要定期備份, 越方便能力越強的系統,其破壞力也越強大。 例如: 如果某個使用者下一個如下的指令要清除一些檔案:

rm -r  foo*.*
結果因為打字太快,在"."之後多了一個空白:
rm -r  foo*. *
結果這個錯誤的指令將刪除這個使用者所有的檔案!!!

2. 慎重選用適當的工具程式

雖然是條條道路通羅馬,但是各種工具程式各有其特性, 使用者最好瞭解各種工具程式的特性,再據以挑選適當的工具來用。 選用適當的工具會讓你事半功倍,否則可能是自找麻煩。

3. 盡量自動化

只要能自動化就自動化(能偷懶就偷懶),讓shell 負責執行繁瑣的重複性工作。

Don't use hands to do things that can be done efficiently by
the computer.  --  Tom Duff

4. 不要勉強自動化

不要為自動化而自動化,有時候直接用手去做反而更快。

Don't use computer to do things that can be done efficiently
by hand. -- Richard Hill

我們所舉的例子中,就有要求使用者進入vi 去做事的, 並非全部交由shell自動去做。 不過,為了磨練shell programming 的技巧,有時候 難免多花點時間找點苦頭吃,也是不錯的。

5. 適時搭配 PC 視窗系統

如果搭配視窗系統去作比較方便時,那就不要硬在Unix上作。 視窗系統絕對有其優點,跟 shell programming 搭配使用 ,將可發揮 相輔相成之功效。

6. 追求整體時間的節省

通常在處理一件事,例如資料轉換,或整理照片檔案時,牽涉到眾多的雜事, 諸如輸入資料,編輯輸入檔,反覆執行 script 等,在設計script 時,需注意到各方面都需節省時間,假設一個寫得很好效率很高的script 卻需要花很多時間準備資料,那就得不償失了。相反的,如果追求輸入資料 的方便,卻讓 script 的撰寫礙手礙腳,也是不好。此外,也需顧及維護的 方便性,有時候寫得太過機巧的 script 若無適當的說明,在後日需要維護時,卻很難理解,那不美了。這些觀念, 在軟體工程的課程都有說明,讀者可參考之。 總之,設計 script 時方方面面都需兼顧,追求整體工作時間的節省。

#1 Use right tools in right configurations
#
#1 Keep it simple and stupid 
#
#1 Don't use hand
#2a
#Don't use hands to do things that can be done efficiently by
#the computer.  --  Tom Duff
#2b

#1 Don't use computer
#2a
#Don't use computer to do things that can be done efficiently
#by hand. -- Richard Hill
#2b

#2 Treat exceptions manually if too much trouble

#1 Be familiar with regular expressions

#1 Pay special attention to escape sequences

Web Page Copyright: 國立政治大學資訊科學系 連耀南 lien@cherry.cs.nccu.edu.tw  tips.htm,  Thu Nov 7 02:23:41 CST 2013