unix的shell是作為作業系統的最外層,也稱外殼。它有以下幾種身份:
作為命令語言:為使用者提供使用作業系統的介面,使用者利用該介面與機器互動;
作為程式語言:使用者可以利用多條shell命令構成乙個檔案,稱為shell檔案或shell過程;
作為shell命令解釋程式:用於對從標準輸入或檔案中讀入的命令進行解釋執行。
本章主要介紹shell命令語言。
一 簡單命令
簡單命令是乙個能完成某種功能的目標程式的名字,按功能將命令分為如下五大類:
(1)進入與退出系統
進入系統也成為註冊,使用者須與系統管理員商定乙個唯一的使用者名稱,管理員用該名字在系統檔案樹上,為使用者建立乙個子目錄樹的根節點。開啟終端後,螢幕上會出現login:提示,鍵入後系統會詢問使用者口令,通過檢查後,使用者便能進入系統。
當使用者用完系統後,應向系統報告自己不再往系統裝入任何處理要求,系統得知後,便馬上為使用者記賬,清除使用者的使用環境。在多使用者情況下,通過ctrl-d可以重新供另一使用者登入。
使用者的進入與退出個過程,是由系統直接呼叫login及logout程式完成的。
(2)檔案操作命令
a. 顯示檔案內容命令cat
$cat filename1 filename2 ...
b. 複製檔案副本命令cp
$cp source target
c. 修改檔名命令mv
$mv oldname newname
d. 撤銷檔案命令rm
$rm filename1 filename2 ...
e. 確定檔案型別命令file
$file filename1 filename2 ...
(3)目錄操作命令
a. 建立目錄mkdir
$ mkdir dirname1 dirname2 ...
b. 撤銷目錄rmdir
$ rmdir dirname1 dirname2 ...
c. 改變工作目錄cd
d. 改變對檔案的訪問方式chmod
格式:chmod user op-code permission filename
其中,user用於指明訪問者的身份,可以是使用者自己、使用者組、所有其他使用者及全部,分別用u、g、o和a表示;op-code是操作碼,分別用+、-及=表示增加、消除及賦予訪問者某種權利;permission則是分別用r、w及x表示讀、寫及執行許可,如命令:
chmod go-w temp
表示消除使用者組和其他所有使用者對檔案temp的寫許可。
(4)系統詢問命令
a. 訪問當前日期和時間命令date,若在命令後給出引數,則date程式把引數作為重置系統時鐘的時間;
b. 詢問系統當前使用者的命令who,它將列出當前每乙個處在系統中的使用者的註冊名、終端名和註冊進入時間,並按終端標誌的字母順序排序,
使用者可用who命令了解系統的當前負荷,以及核實登陸使用者的註冊名、終端名資訊等;
c. 顯示當前目錄路徑名的命令pwd
二 重定向與管道命令
(1)重定向命令
在unix系統中,系統定義了三個檔案,其中有兩個分別稱為標準輸入和標準輸出檔案,各對應於終端鍵盤輸入和終端螢幕輸出。它們是在使用者註冊時,由login程式開啟。這樣,使用者程式執行時,隱含的標準輸入是鍵盤輸入,標準輸出是螢幕顯示。如果使用者想要改變輸入或輸出檔案,即標準輸入與標準輸出的重定向,可用重定向符「<」和「>」實現輸入和輸出轉向。如:
$ cat file1 > file2 表示把檔案file1的內容列印輸出到檔案file2上
$ wc < file3 表示對file3中讀出的行中的字和字元進行計數
此外,cat file4>>file2表示將file4的內容附加到現有檔案file2的末尾,它與cat file1 file4>>file2的效果是一樣的。
在乙個命令列中,可以同時改變輸入與輸出,如:
a.outfile0 表示在可執行檔案a.out執行時,將從檔案file1中提取資料,同時把a.out的執行結果資料輸出到檔案file0中。
(2)管道命令
用符號"|"來連線兩條命令,使前一條命令的輸出作為後一條命令的輸入,如
cat file | wc 使cat命令把file中的資料作為wc命令的輸入。
其機制是系統將為管道建立乙個作為通訊通道的pipe檔案,這時cat命令的輸出既不出現在終端上,也不存在某中間檔案中,而是由unix系統來緩衝第一條命令的輸出,並作為第二條命令的輸入。這種用管道線所連線的命令之間是單向、同步執行的。
三 通訊命令
unix系統為使用者提供了實時和非實時兩種通訊方式,分別用write及mail命令。聯機使用者也可以根據自己的當前情況,決定是否接受其他使用者與其進行通訊的要求。
(1)郵箱通訊命令mail
mail採用信箱通訊方式,是unix各使用者進行非互動式通訊的工具。發信者把要傳送的訊息寫成信件,「郵寄」到對方的信箱中。用mail進行通訊時,不要求接收者利用終端與傳送者會話。即,在發信者傳送資訊時,雖然接收者在系統中註冊過,但允許他此時沒有系統;或者雖在使用系統,但拒絕接收任何資訊。mail命令在用於發信時,把接收者的註冊名當做引數打入後,便可在新行開始鍵入信件正文,最後仍在乙個新行上用"."來結束信件或用"^d"退出mail程式。
接收者也用mail命令讀取信件,命令格式:
mail [-r][-q][-p][-file][-f persons]
其中選項r、q、p、file分別表示:按先進先出順序顯示各信件的內容;再輸入終端字元後,退出mail程式但不改變信箱的內容;一次性顯示信箱全部內容而不帶詢問;把指定檔案當作信件來顯示。
(2)對話通訊命令write
write命令使得使用者與當前在系統中的其他使用者直接進行聯機通訊。命令格式:
write user[ttyname]
當接收者只有乙個終端時,終端名可以預設。當接收者的終端被允許接收訊息時,螢幕提示會通知接收者源使用者名稱及其所用終端名。
(3)允許或拒絕接收訊息命令mesg
mesg命令格式:
mesg[-n][-y]
選項n表示拒絕接收訊息,選項y表示恢復對方的寫許可,即允許接收訊息。不帶自變數的mesg命令只報告當前狀態而不改變它。
四 後台命令
在命令後加上「&」號,是告訴shell將該命令放在後台執行,以便使用者在前台繼續鍵入其他命令。此時,標準輸入檔案會自動地從終端定向到乙個被稱為"/dev/null"的空檔案中。若shell未重定向標準輸入,那麼shell和後台程序都會同時從終端進行讀入,此時使用者鍵入終端的字元就不能確定被送到哪乙個程序中,因而必須為後台執行的命令重定向標準輸入,以使鍵入的字元都被送到shell程序。
UNIX LINUX下 M 的問題
unix和windows間的文字檔案轉換 在用電報通訊的年代,人們發明了一種用7bits把常用的英文和標點編碼的方法 這就是至今還在計算機世界應用的ascii。電報機每當列印到一行結尾時便需要 跳進下一行 並 回到第一格 因此ascii有lf line feed,0 0a 和cr carriage ...
unix linux下主要的I O模型
unix linux下主要的4種i o模型 1,阻塞i o 最常用,最簡單,效率最低 2,非阻塞i o 可防止程序阻塞在i o操作上,需要輪詢。3,i o多路復用 允許同時對多個i o進行控制 4,訊號驅動i o 一種非同步通訊模型。阻塞i o模式 阻塞i o是最普遍使用的i o模式,大部分的程式使...
設定 Unix,Linux環境下的NLS LANG
設定 nls lang 變數 1 正確配置 lc all 引數 2 配置 telnet ssh securecrt 客戶端的字符集 linux中可以用locale命令來檢視 nls lang設定,如下例所示 root hxzg locale lang en us.utf 8 lc ctype en ...