linux下的shell和指令碼

來源:互聯網
上載者:User

標籤: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首次發布。
    • TENEX C shell (tcsh)
其他
  • 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簡單,高效, 可以說是提升系統管理水平的進階手段.

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.