shell複習筆記----入門知識

來源:互聯網
上載者:User

標籤:

  1.  Unix 簡史

        UNIX 最初是由貝爾實驗室(Bell Telephone Laborataries)的電腦科學研究中心開發的,第一版誕生於1970年--也就是在貝爾實驗室退出Multics項目不久.在 UNIX 廣受歡迎的功能中,有許多便是來自Multics 作業系統.

       它有下列優勢:

  • 系統由使用者自行開發.他們使用這套系統來解決每天遇到的計算問題.
  • 研究人員不受拘束地進行實驗,必要時也可以任意變換程式.
  • 貝爾實驗室的研究人員都是電腦科學家,他們所涉及的系統不單單自己使用,也分享給同事們---這些人也是電腦科學家,因此衍生出"務實"的設計模式:程式會執行你所賦予的任務,但不會和你進行對話,也不會問你一堆"你確定嗎?"之類的問題.
  • 除了精益求精,在設計和問題解決上他們不斷地追求"優雅".關於"優雅"有一個貼切的定義:簡單就是力量(power cloaked in simplicity).

也因此存在如下缺陷:

  • 工具程式之間存在許多不一致的地方.
  • 組多工具程式有缺陷.
  • 有時程式並未經過徹底測試,這使他們在執行的時候一不小心就會遭到破壞.
  • 系統的文檔儘管大致上內容完備,但極為簡單,是的使用者在學習的時候很難找到所需要的資訊.

     2.軟體工具的原則

  • 一次做好一件事情

         很多時候這都是最重要的原則,若程式只做一件事情,那麼無論是設計,編寫,調試,維護,以及組建檔案都容易的多.

  • 處理文本行,不要處理位元據

        文本行是 UNIX 的通用格式.它可以用任何唾手可得的文字編輯器來編輯它,也可以讓這些資料在網路和各種機器架構之間傳輸.舒勇該文字檔更有助於任何自訂工具與現存的 UNIX 程式之間的結合.

  • 使用Regex

       Regex(regular expression)是很強的文本處理機制.瞭解它的運作模式並加以實用可以濕度簡化編寫命令指令碼的工作.

  • 預設使用標準輸入/輸出  

       在未指明指定檔案名稱的情況下,程式預設會從它的標準輸入讀取資料,將資料寫到它的標準輸出,至於錯位資訊則會傳送到標準錯誤輸出.以這樣的方式來編寫程式可以輕鬆地讓它們成為資料過濾器.

  • 避免喋喋不休

      軟體工具的執行過程不該像"聊天"(chatty).不要將"開始處理"(starting processing),"即將完成"(almost done)或"處理完成"(finished processing)這類資訊放在程式的標準輸出中(至少這不該是預設狀態).

     3.shell指令碼的目標使用情景

     shell 指令碼最長用於系統管理工作,或是用於結合現有的程式以完成小型的,特定的工作.一旦你找出完成工作的方法,把命令串在一起,放進一個獨立的程式或者指令碼裡面,此後只需要執行該程式便能完成工作. 如果你寫的程式很有用,替他人可以利用該程式當做一個黑盒來使用,它使一個可以完成工作的程式,但我們不必知道它如何完成的.

     

     4. 指令碼程式設計語言和編譯型語言的差距

       許多大中型程式都是用編譯型語言寫成的,例如 Paxcal,C,C++或 Java.這類程式只要從原始碼(source code)轉換成目標代碼(object code),便能直接通過電腦來執行.編譯型語言的好處是高效,缺點是:他們多半運作與底層,所處理的位元組\整數\浮點數或者其他機器層級的對象.

       指令碼程式設計語言通常是解釋型(interpreted)的,這類程式的執行,是由解譯器(interprete r)讀入程式碼,並將其轉換成內部的形式,再執行.注意:解譯器本身是一般的編譯型程式.

       使用指令碼程式設計語言的好處是,他們多半運行在比編譯型語言還高的層級,能能夠情已處理檔案和目錄之類的對象.缺點是:他們的效率通常不如編譯型語言.不過權衡之下,通常使用指令碼編程還是值得的:花1個小時寫成的簡單指令碼,同樣的功能用 C 或 C++來編寫實現可能需要兩天,而且一般來說指令碼執行的速度已經夠快了,快到足以讓人忽略它效能上的問題.

 shell 似乎是各 UNIX 系統之間通用的功能,並且經過了 POSIX 的標準化,因此 shell 指令碼只要"用心寫"一次,即可應用在各個系統上.因此,使用 shell 指令碼是基於:

  •  簡單性
  • 可移植性
  • 開發容易

shell複習筆記----入門知識

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.