shell複習筆記 入門知識

2022-09-07 14:39:29 字數 1421 閱讀 8844

unix 簡史

unix 最初是由貝爾實驗室(bell telephone laborataries)的電腦科學研究中心開發的,第一版誕生於2023年--也就是在貝爾實驗室退出multics專案不久.在 unix 廣受歡迎的功能中,有許多便是來自multics 作業系統.

它有下列優勢:

也因此存在如下缺陷:

2.軟體工具的原則

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

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

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

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

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

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

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

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

許多大中型程式都是用編譯型語言寫成的,例如 paxcal,c,c++或 j**a.這類程式只要從源**(source code)轉換成目標**(object code),便能直接通過計算機來執行.編譯型語言的好處是高效,缺點是:他們多半運作與底層,所處理的位元組\整數\浮點數或者其他機器層級的物件.

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

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

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

WCF筆記 入門

wcf的中的endpoint結構,乙個endpoint就類似於xml web service中的乙個asmx檔案,它包括三個組成部分1 address 2 binding 3 contract,此三者被稱為組成endpoint的 abc a解決了endpoint在哪的問題,也就是 where is ...

ZMQ筆記 入門

入門例子 只要包含 apt get install libzmq3 dev hello world server in c binds rep socket to tcp 5555 expects hello from client,replies with world include includ...

LESS學習筆記 入門

今天在網上完成了less的基礎學習,下面是我的學習筆記。總共有三個檔案 index.html main.less mian.css,其中mian.css是main.less經過koala編譯之後自動生成的。下面是 index.html mian.less charset utf 8 body div...