Linux的shell程式設計(一)(轉)
Linux的shell程式設計(一)(轉)[@more@] Shell本身是一個用C語言編寫的程式,它是使用者使用Linux的橋樑。Shell既是一種命令語言,又是一種程式設計語言。作為命令語言,它互動式地解釋和執行使用者輸入的命令;作為程式設計語言,它定義了各種變數和引數,並提供了許多在高階語言中才具有的控制結構,包括迴圈和分支。它雖然不是Linux系統核心的一部分,但它呼叫了系統核心的大部分功能來執行程式、建立檔案並以並行的方式協調各個程式的執行。因此,對於使用者來說,shell是最重要的實用程式,深入瞭解和熟練掌握shell的特性極其使用方法,是用好Linux系統的關鍵。可以說,shell使用的熟練程度反映了使用者對Linux使用的熟練程度。
一、什麼是shell
當一個使用者登入Linux系統之後,系統初始化程式init就為每一個使用者執行一個稱為shell(外殼)的程式。那麼,shell是什麼呢?確切一點說,shell就是一個命令列直譯器,它為使用者提供了一個向Linux核心傳送請求以便執行程式的介面系統級程式,使用者可以用shell來啟動、掛起、停止甚至是編寫一些程式。
當使用者使用Linux時是透過命令來完成所需工作的。一個命令就是使用者和shell之間對話的一個基本單位,它是由多個字元組成並以換行結束的字串。shell解釋使用者輸入的命令,就象DOS裡的command.com所做的一樣,所不同的是,在DOS中,command.com只有一個,而在Linux下比較流行的shell有好幾個,每個shell都各有千秋。一般的Linux系統都將bash作為預設的shell。
二、幾種流行的shell
目前流行的shell有ash、bash、ksh、csh、zsh等,你可以用下面的命令來檢視你自己的shell型別:
#echo $SHELL
$SHELL是一個環境變數,它記錄使用者所使用的shell型別。你可以用命令:
#shell-name
來轉換到別的shell,這裡shell-name是你想要嘗試使用的shell的名稱,如ash等。這個命令為使用者又啟動了一個shell,這個shell在最初登入的那個shell之後,稱為下級的shell或子shell。使用命令:
$exit
可以退出這個子shell。
使用不同的shell的原因在於它們各自都有自己的特點,下面作一個簡單的介紹:
1.ash
ash shell是由Kenneth Almquist編寫的,Linux中佔用系統資源最少的一個小shell,它只包含24個內部命令,因而使用起來很不方便。
2.bash
bash是Linux系統預設使用的shell,它由Brian Fox和Chet Ramey共同完成,是Bourne Again Shell的縮寫,內部命令一共有40個。Linux使用它作為預設的shell是因為它有諸如以下的特色:
(1)可以使用類似DOS下面的doskey的功能,用方向鍵查閱和快速輸入並修改命令。
(2)自動透過查詢匹配的方式給出以某字串開頭的命令。
(3)包含了自身的幫助功能,你只要在提示符下面鍵入help就可以得到相關的幫助。
3.ksh
ksh是Korn shell的縮寫,由Eric Gisin編寫,共有42條內部命令。該shell最大的優點是幾乎和商業發行版的ksh完全相容,這樣就可以在不用花錢購買商業版本的情況下嘗試商業版本的效能了。
4.csh
csh是Linux比較大的核心,它由以William Joy為代表的共計47位作者編成,共有52個內部命令。該shell其實是指向/bin/tcsh這樣的一個shell,也就是說,csh其實就是tcsh。
5.zch
zch是Linux最大的shell之一,由Paul Falstad完成,共有84個內部命令。如果只是一般的用途,是沒有必要安裝這樣的shell的。
一、什麼是shell
當一個使用者登入Linux系統之後,系統初始化程式init就為每一個使用者執行一個稱為shell(外殼)的程式。那麼,shell是什麼呢?確切一點說,shell就是一個命令列直譯器,它為使用者提供了一個向Linux核心傳送請求以便執行程式的介面系統級程式,使用者可以用shell來啟動、掛起、停止甚至是編寫一些程式。
當使用者使用Linux時是透過命令來完成所需工作的。一個命令就是使用者和shell之間對話的一個基本單位,它是由多個字元組成並以換行結束的字串。shell解釋使用者輸入的命令,就象DOS裡的command.com所做的一樣,所不同的是,在DOS中,command.com只有一個,而在Linux下比較流行的shell有好幾個,每個shell都各有千秋。一般的Linux系統都將bash作為預設的shell。
二、幾種流行的shell
目前流行的shell有ash、bash、ksh、csh、zsh等,你可以用下面的命令來檢視你自己的shell型別:
#echo $SHELL
$SHELL是一個環境變數,它記錄使用者所使用的shell型別。你可以用命令:
#shell-name
來轉換到別的shell,這裡shell-name是你想要嘗試使用的shell的名稱,如ash等。這個命令為使用者又啟動了一個shell,這個shell在最初登入的那個shell之後,稱為下級的shell或子shell。使用命令:
$exit
可以退出這個子shell。
使用不同的shell的原因在於它們各自都有自己的特點,下面作一個簡單的介紹:
1.ash
ash shell是由Kenneth Almquist編寫的,Linux中佔用系統資源最少的一個小shell,它只包含24個內部命令,因而使用起來很不方便。
2.bash
bash是Linux系統預設使用的shell,它由Brian Fox和Chet Ramey共同完成,是Bourne Again Shell的縮寫,內部命令一共有40個。Linux使用它作為預設的shell是因為它有諸如以下的特色:
(1)可以使用類似DOS下面的doskey的功能,用方向鍵查閱和快速輸入並修改命令。
(2)自動透過查詢匹配的方式給出以某字串開頭的命令。
(3)包含了自身的幫助功能,你只要在提示符下面鍵入help就可以得到相關的幫助。
3.ksh
ksh是Korn shell的縮寫,由Eric Gisin編寫,共有42條內部命令。該shell最大的優點是幾乎和商業發行版的ksh完全相容,這樣就可以在不用花錢購買商業版本的情況下嘗試商業版本的效能了。
4.csh
csh是Linux比較大的核心,它由以William Joy為代表的共計47位作者編成,共有52個內部命令。該shell其實是指向/bin/tcsh這樣的一個shell,也就是說,csh其實就是tcsh。
5.zch
zch是Linux最大的shell之一,由Paul Falstad完成,共有84個內部命令。如果只是一般的用途,是沒有必要安裝這樣的shell的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10901326/viewspace-965896/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux之shell程式設計Linux程式設計
- Linux Shell程式設計(1)Linux程式設計
- Linux Shell程式設計(2)Linux程式設計
- Linux shell程式設計(一)shell指令碼中的變數詳解Linux程式設計指令碼變數
- Linux入門---(三)Shell程式設計Linux程式設計
- 前端學習 linux —— shell 程式設計前端Linux程式設計
- 【學習】Linux Shell指令碼程式設計Linux指令碼程式設計
- 如何學習shell程式設計?Linux運維學習shell程式設計是什麼程式設計Linux運維
- LINUX Shell指令碼程式設計例項詳解(一)上Linux指令碼程式設計
- shell程式設計—簡介(一)程式設計
- Linux Shell指令碼程式設計-基礎1Linux指令碼程式設計
- Linux作業系統之Shell程式設計Linux作業系統程式設計
- Linux-shell程式設計入門基礎Linux程式設計
- Linux大資料定製篇 Shell程式設計Linux大資料程式設計
- 一文學完Linux Shell程式設計,比書都好懂Linux程式設計
- Shell程式設計程式設計
- Shell變數型別有哪些?linux運維shell程式設計變數型別Linux運維程式設計
- Shell程式設計 --- Shell介紹程式設計
- Linux Shell指令碼程式設計while語句案例Linux指令碼程式設計While
- Linux shell程式設計常用萬用字元有哪些?Linux程式設計字元
- Linux之19——Shell程式設計基礎詳解Linux程式設計
- shell程式設計五程式設計
- shell程式設計二程式設計
- Shell程式設計-shell變數1程式設計變數
- Linux與Shell 第2天 實操、軟體包管理、Shell程式設計Linux程式設計
- Shell程式設計-09-Shell中的函式程式設計函式
- Shell程式設計-02-Shell變數程式設計變數
- Shell程式設計-基礎程式設計
- Shell程式設計-read命令程式設計
- shell程式設計進階程式設計
- shell 程式設計簡記程式設計
- shell程式設計基礎程式設計
- Shell 程式設計入門程式設計
- 初識shell程式設計程式設計
- Shell程式設計-11-子Shell和Shell巢狀程式設計巢狀
- 作業系統實驗(一)-Shell程式設計作業系統程式設計
- Shell程式設計——極簡教程程式設計
- shell程式設計–bash變數程式設計變數
- Shell 指令碼程式設計陷阱指令碼程式設計