140 likes | 365 Views
UNIX Shell. 導論. UNIX shell 就是 UNIX 系統的命令直譯器,將使用者所鍵入的指令啟動正確的 UNIX 公用程式來執行這些指令。 目前主要的 shell 有 Bourne shell (sh) , Berkerly C shell (csh) ,與 Korn shell (ksh) 。 Script( 指令檔 ): 將我們所要執行的指令編寫成一個程式檔,直接執行此程式檔。. commands. shell. Kernel 的所有輸入輸出都經由 shell. kernel. Bourne Shell.
E N D
導論 • UNIX shell就是UNIX系統的命令直譯器,將使用者所鍵入的指令啟動正確的UNIX公用程式來執行這些指令。 • 目前主要的shell有Bourne shell (sh) ,Berkerly C shell (csh) ,與Korn shell (ksh) 。 • Script(指令檔):將我們所要執行的指令編寫成一個程式檔,直接執行此程式檔。
commands shell Kernel的所有輸入輸出都經由shell. kernel
Bourne Shell • 在UNIX系統中是歷史最久的shell程式,所有的UNIX系統都有提供此shell,它的執行檔名為”sh”。 • 通常位於/bin/sh。 • 所有UNIX的標準配備。
C Shell • 由柏克萊加州大學所研發出來的,其執行檔名為”csh” ,與 C語言非常相近,但是輸入及輸出控制不佳,導致有bug。 • 通常位於/bin/sh。
Tenex C Shell • 與C shell很類似的T shell,其執行檔名為tcsh。 • 通常位於usr/local/bin/tcsh。 • 去除了C shell的bug,但是卻不是標準配備。 • Linux要Slackware版的才會有。
Korn Shell • 雖然某些方面的功能比C shell更強,但是普及性不如C shell(因為不是免費的) ,其執行檔名為ksh。
如何更改成不同的shell • 若登入進系統時,提示符好如果是”%” ,那表示是使用Cshell系統(可能是 C shell 或T C shell) 。否則也可鍵入csh來啟動它。 • ksh—啟動Korn shell • csh---啟動C shell • tcsh---啟動T C shell
C shell 變數---區域變數 • 區域變數:有效範圍只在定義此變數的shell中,離開此shell,就跟著消失。 • 鍵入指令”set”,就知道系統中有哪些區域變數。 • 一般皆是以小寫字母來命名。 • 不同系統的話,所看到的內容並不完全相同。 左邊為區域變數的名稱,右邊為變數的值
C shell 變數---環境變數 • 環境變數(global):有效範圍是全域的,包含此shell與其他新的shell。 • 鍵入指令”setenv”,就知道系統中有哪些全域(環境)變數。 • 一般皆是以大寫字母來命名。 • 用”=”符號來表示環境變數的值。 左邊為全域變數的名稱,右邊為變數的值.
設定shell變數---區域變數 • 設定格式: set 變數名稱 = 變數值 • Ex. set longvan = “long vocation” • Ex. set weekdays = (Mon Tu Wen Th Fri) • 設定完變數值,即可鍵入set來查看。 • 清除區域變數: unset 變數名稱
設定shell變數---環境變數 • 設定格式: setenv 變數名稱 變數值 • Ex. setenv COLOR 8 • 清除區域變數: unsetenv 變數名稱
顯示shell變數的值 • 在shell變數前加特殊字元:”$”,代表此變數的值。 • Ex.%echo $longvar • Ex.%echo $COLOR
設定Prompt • Prompt:代表shell的提示符號,一般C shell預設為”%”,但使用者可由設定shell變數來改變它: • set prompt=“$cwd%” • 表示將預設提示符號改成cwd (Current Working Directory)的內容.