完成這一章,你能夠作以下事情:
瞭解shell的工作原理
描述使用者登錄的過程
描述使用者環境變數和這些環境變數的功能。
設置和修改shell變數。
瞭解和修改一些特殊的環境變數例如PATH ,TERM等等。
為特定的應用定制使用者環境變數。
6.1 什麼是shell?
shell是一個交互性命令直譯器。 Shell獨立于作業系統,這種設計讓使用者可以靈活選擇適合自己需要的shell。 shell讓你在命令列鍵入命令,經過shell解釋後傳送給作業系統(內核)執行。
這一章介紹POSIX shell提供的交互的特徵。
以下是shell功能的一個匯總:
查找命令的位置並且執行相關聯的程式
為shell變數賦新值
執行命令替代
處理 I/O重定向和管道功能
提供一個解釋性的程式設計語言介面,包括tests,branches 和loops等語句
當你登錄到一個unix系統,shell會為你的終端登錄線索定義一些特徵,然後出現你的提示符。 在POSIX,Bourn,K shell中$符號為預設的提示符。 C shell中預設的提示符是%號。
6.2 一些通常使用的shell
/usr/bin/sh POSIX shell
/usr/bin/ksh Korn shell
/usr/old/bin/sh Bourne shell
/usr/bin/csh C shell
/usr/bin/keysh A contest-sensitive softkey shell
/usr/bin/rksh Restricted Korn shell
/usr/bin/rsh Restricted Bourne shell
POSIX shell 、是一個POSIX相容的命令程式設計語言和命令直譯器。 它可以從終端或者是一個檔中讀取並且執行命令。 POSIX在許多方面同korn shell 相似。 有歷史機制。 支援任務控制,和其他有用的特性。
Korn shell 同POSIX shell十分類似,是由貝爾試驗室的HTTP://www.aliyun.com/zixun/aggregation/16482.html">David Korn開發的。
Bourne shell :缺乏許多在POSIX,和korn shell 中的功能。 它是由Stephen R. Bourne開發的,是AT&T unix中最先使用的shell
C shell。 是一個普通的語言解譯器,有命令歷史機制,類似C語言的語法。 和任務控制工具。 它是由university of California at Berkeley 的william Joy開發的。
Rsh 和rksh是Bourne shell 和Korn shell 的受限制的版本。 受限制的shell在設置登錄名和環境的時候比普遍的shell 有更多的限制。 受限制的shell使用起來就像是具有異常現象的標準的shell。
使用受限制的shell的使用者不能:
更改目錄
重新設定PATH變數的值
在路徑名中使用/符號。
重定向輸出。