標籤:http 使用 io strong for 問題 cti linux
1.各種Unix shell
linux下的shell基本是從unix環境中的shell發展而來,貼一下wiki:其中我們常用的,可歸類為Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh),等等
第一個Unix shell是由肯·湯普遜,仿效Multic上的shell所實現出來,稱為sh。
Bourne shell 相容
- Bourne shell (sh) 史蒂夫·伯恩在貝爾實驗室時編寫。1978年隨Version 7 Unix首次發布。
- Almquist shell (ash)
- Bourne-Again shell (bash)
- Debian Almquist shell(dash)
- Korn shell (ksh) David Korn在貝爾實驗室時編寫。
- Z shell (zsh)
C shell 相容
- C shell (csh) 比爾·喬伊在加州大學伯克利分校時編寫。1979年隨BSD首次發布。
其他
- fish,第一次發佈於2005年。
- rc shell (rc) 九號項目系統的shell,由Tom Duff在貝爾實驗室時編寫。隨後移植回 Unix 和其他的作業系統。scsh (Scheme Shell)
- es shell (es) 一個函數式編程的rc相容shell,編寫於二十世紀九十年代中期。
2. perl、python、shell指令碼區別
嚴格的講, shell不是一種程式設計語言, 但是shell有自己的控制流程結構(判斷,迴圈,選擇),運算以及函數等程式設計語言特性, 加上shell命令組織在一起構成指令碼, 能夠完成一般程式設計語言做到的事情.
perl和python相比於shell, 是嚴格意義上的程式設計語言. 功能比shell當然會複雜很多, 文法上也稍微複雜一些.
perl最大的優勢在於它的字串模式比對能力,其提供了一個十分強大的Regex匹配引擎。然而perl語言的晦澀和對符號文法的過度使用,讓解讀變得很困難。這些文法令初學者不得精要,為他們的學習帶來不小的阻礙。通常當你想閱讀幾個月前寫的perl指令碼的時候都不得不求助參考書。
系統管理的基礎是shell, 這取決於shell的橋樑作用. 可以說, shell指令碼幾乎可以完成所有linux下的自動化任務.
perl/python處理某些問題可能比shell簡單,高效, 可以說是提升系統管理水平的進階手段.