shell:腳本基礎知識
1. shell程序在運維工作中的作用地位
- shell腳本很擅長處理純文本類型的數據,而在linux中幾乎所有的配置文件、日誌文件(如nfs,rsync,httpd,nginx,lvs)等都是純文本類型的文件,因此,如果學好shell腳本語言,就可以利用它在linux系統中發揮巨大的作用。
##2. 腳本語言的種類
- 在unix/linux中主要有兩大類shell
-
Bourne shell(包括sh,ksh,and bash)
Bourne shell(sh) korn shell (ksh) Bourne Again shell(bash) Posix shell (sh)
-
C shell (包括csh and tcsh)
C shell (csh) tenex/tops C shell (tcsh)
- shell腳本語言是弱類型語言,較爲通用的shell有標準的Bourne shell(sh) 和 c shell(csh)。其中bourne shell(sh)已經被bash shell 取代。
##3. 其他運維或開發人員常用腳本語言 -
php
- php是網頁程序,也是腳本語言,更專注於web頁面開發,例如:dedecms,discuz。
- 也可以處理系統日誌,配置文件等。
-
perl
- perl腳本語言。比shell強大的多,前幾年2010年前很火,語法靈活、複雜,實現方式很多,不易讀,團隊協作困難。
-
python
- 可以做腳本開發,也可以實現web開發。中等以上的公司都要求會python,
##4. shell與php/perl/python語言的區別和優勢
- 可以做腳本開發,也可以實現web開發。中等以上的公司都要求會python,
-
shell的優勢在於處理操作系統底層的業務,因爲有大量的系統命令爲它做支撐,2000多個命令都是shell編程的有力支撐,特別是grep,awk,sed等。例如:一鍵軟件安裝,優化,監控報警腳本,常規的業務應用,shell開發更簡單快速,符合運維的大原則。
- php,python優勢在於開發運維工具,web界面的管理工具,以及web業務的開發等。處理一鍵軟件安裝、優化。報警腳本,常規的業務應用等php/python也是能夠做到的,但是開發效率和複雜度要比用shell就差很多了。我們使用軟件就是要根據業務需求來選擇,揚長避短。
##5. 常用操作系統的默認shell
linux是 Bournc Again shell(bash)
Solaris和freeBSD缺省的是Bourne shell(sh)
aix下是korn shell (ksh)
HP-UX缺省的是poslx shell (sh)
提示:這裏我們將重點講linux系統環境下的Bourne Again shell
##6. 企業考試題一例:centos linux系統默認的shell是()
[root@1-241 scripts]# echo $SHELL
/bin/bash
[root@1-241 scripts]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash