文字作業系統與外部最主要的介面就叫做shell。shell是作業系統最外面的一層。shell管理你與作業系統之間的互動:等待你輸入,向作業系統解釋你的輸入,並且處理各種各樣的作業系統的輸出結果。 shell提供了你與作業系統之間通訊的方式。這種通訊可以以互動方式(從鍵盤輸入,並且可以立即得到響應),或者以shell script(非互動)方式執行。shell script是放在檔案中的一串shell和作業系統命令,它們可以被重複使用。本質上,shell script是命令列命令簡單的組合到一個檔案裡面。 Shell基本上是一個命令直譯器,類似於DOS下的command.com。它接收使用者e79fa5e98193e58685e5aeb931333431363666命令(如ls等),然後呼叫相應的應用程式。較為通用的shell有標準的Bourne shell (sh)和C shell (csh)。 互動式shell和非互動式shell 互動式模式就是shell等待你的輸入,並且執行你提交的命令。這種模式被稱作互動式是因為shell與使用者進行互動。這種模式也是大多數使用者非常熟悉的:登入、執行一些命令、簽退。當你簽退後,shell也終止了。 shell也可以執行在另外一種模式:非互動式模式。在這種模式下,shell不與你進行互動,而是讀取存放在檔案中的命令,並且執行它們。當它讀到檔案的結尾,shell也就終止了。 shell的型別 在UNIX中主要有兩大類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) Bourne Shell 最初的UNIX shell是由Stephen R. Bourne於20世紀70年代中期在紐澤西的AT&T貝爾實驗室編寫的,這就是Bourne shell。Bourne shell 是一個交換式的命令直譯器和命令程式語言。Bourne shell 可以執行為login shell或者login shell的子shell(subshell)。只有login命令可以呼叫Bourne shell作為一個login shell。此時,shell先讀取/etc/profile檔案和$HOME/.profile檔案。/etc/profile檔案為所有的使用者定製環境,$HOME/.profile檔案為本使用者定製環境。最後,shell會等待讀取你的輸入。 C Shell Bill Joy於20世紀80年代早期,在Berkeley的加利福尼亞大學開發了C shell。它主要是為了讓使用者更容易的使用互動式功能,並把ALGOL風格的語法結構變成了C語言風格。它新增了命令歷史、別名、檔名替換、作業控制等功能。 Korn Shell 有很長一段時間,只有兩類shell供人們選擇,Bourne shell用來程式設計,C shell用來互動。為了改變這種狀況,AT&T的bell實驗室David Korn開發了Korn shell。ksh結合了所有的C shell的互動式特性,並融入了Bourne shell的語法。因此,Korn shell廣受使用者的歡迎。它還新增了數學計算,程序協作(coprocess)、行內編輯(inline editing)等功能。Korn Shell 是一個互動式的命令直譯器和命令程式語言.它符合POSIX——一個作業系統的國際標準.POSIX不是一個作業系統,而是一個目標在於應用程式的移植性的標準——在源程式一級跨越多種平臺。 Bourne Again Shell (bash) bash是GNU計劃的一部分,用來替代Bourne shell。它用於基於GNU的系統如Linux.大多數的Linux(Red Hat, Slackware, Caldera)都以bash作為預設的shell,並且執行sh時,其實呼叫的是bash。 POSIX Shell POSIX shell 是Korn shell的一個變種. 當前提供POSIX shell的最大賣主是Hewlett-Packard。在HP-UX 11.0 , POSIX shell 就是/bin/sh,而bsh是/usr/old/bin/sh. 各主要作業系統下預設的shell: AIX 下是Korn Shell. Solaris和FreeBSD預設的是Bourne shell. HP-UX預設的是POSIX shell. Linux是Bourne Again shell.
文字作業系統與外部最主要的介面就叫做shell。shell是作業系統最外面的一層。shell管理你與作業系統之間的互動:等待你輸入,向作業系統解釋你的輸入,並且處理各種各樣的作業系統的輸出結果。 shell提供了你與作業系統之間通訊的方式。這種通訊可以以互動方式(從鍵盤輸入,並且可以立即得到響應),或者以shell script(非互動)方式執行。shell script是放在檔案中的一串shell和作業系統命令,它們可以被重複使用。本質上,shell script是命令列命令簡單的組合到一個檔案裡面。 Shell基本上是一個命令直譯器,類似於DOS下的command.com。它接收使用者e79fa5e98193e58685e5aeb931333431363666命令(如ls等),然後呼叫相應的應用程式。較為通用的shell有標準的Bourne shell (sh)和C shell (csh)。 互動式shell和非互動式shell 互動式模式就是shell等待你的輸入,並且執行你提交的命令。這種模式被稱作互動式是因為shell與使用者進行互動。這種模式也是大多數使用者非常熟悉的:登入、執行一些命令、簽退。當你簽退後,shell也終止了。 shell也可以執行在另外一種模式:非互動式模式。在這種模式下,shell不與你進行互動,而是讀取存放在檔案中的命令,並且執行它們。當它讀到檔案的結尾,shell也就終止了。 shell的型別 在UNIX中主要有兩大類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) Bourne Shell 最初的UNIX shell是由Stephen R. Bourne於20世紀70年代中期在紐澤西的AT&T貝爾實驗室編寫的,這就是Bourne shell。Bourne shell 是一個交換式的命令直譯器和命令程式語言。Bourne shell 可以執行為login shell或者login shell的子shell(subshell)。只有login命令可以呼叫Bourne shell作為一個login shell。此時,shell先讀取/etc/profile檔案和$HOME/.profile檔案。/etc/profile檔案為所有的使用者定製環境,$HOME/.profile檔案為本使用者定製環境。最後,shell會等待讀取你的輸入。 C Shell Bill Joy於20世紀80年代早期,在Berkeley的加利福尼亞大學開發了C shell。它主要是為了讓使用者更容易的使用互動式功能,並把ALGOL風格的語法結構變成了C語言風格。它新增了命令歷史、別名、檔名替換、作業控制等功能。 Korn Shell 有很長一段時間,只有兩類shell供人們選擇,Bourne shell用來程式設計,C shell用來互動。為了改變這種狀況,AT&T的bell實驗室David Korn開發了Korn shell。ksh結合了所有的C shell的互動式特性,並融入了Bourne shell的語法。因此,Korn shell廣受使用者的歡迎。它還新增了數學計算,程序協作(coprocess)、行內編輯(inline editing)等功能。Korn Shell 是一個互動式的命令直譯器和命令程式語言.它符合POSIX——一個作業系統的國際標準.POSIX不是一個作業系統,而是一個目標在於應用程式的移植性的標準——在源程式一級跨越多種平臺。 Bourne Again Shell (bash) bash是GNU計劃的一部分,用來替代Bourne shell。它用於基於GNU的系統如Linux.大多數的Linux(Red Hat, Slackware, Caldera)都以bash作為預設的shell,並且執行sh時,其實呼叫的是bash。 POSIX Shell POSIX shell 是Korn shell的一個變種. 當前提供POSIX shell的最大賣主是Hewlett-Packard。在HP-UX 11.0 , POSIX shell 就是/bin/sh,而bsh是/usr/old/bin/sh. 各主要作業系統下預設的shell: AIX 下是Korn Shell. Solaris和FreeBSD預設的是Bourne shell. HP-UX預設的是POSIX shell. Linux是Bourne Again shell.