標籤:
一、Shell解譯器
shell解譯器,使用者和作業系統核心之間的橋樑
shell介於作業系統核心與使用者之間,負責接收使用者輸入的操作指令(命令),並運行和解釋,將需要執行的操作傳遞給作業系統核心並執行
shell程式在系統中充當了一個”命令解釋“的角色
如:Windows中的cmd.exe類似這個角色,不過接收的是DOS命令
二、Linux中的shell
2.1、Shell常見種類
- Bsh:由貝爾實驗室編寫。Bsh是產生較早的UNIX Shell程式,實現了最基本的命令直譯器的功能,同時也可以作為指令碼程式設計語言
- Csh:是因使用C語言的文法風格而得名,在使用者的命令列互動介面上進行了很多改進,並增加了曆史,別名,檔案名稱替換,作業掏等功能,相比Bsh,Csh在更加適用為 使用者提供命令互動操作
- Ksh:在Bsh和Csh之後出現的,結合了兩都的功能優勢,兼具Bsh的文法和Csh的互動特性.
- Bash:從名稱可以看出是Bsh的升級版本,是著名的開源軟體項目,目前大多數的Linux版本(包括Red Hat公司的Linux系統)都使用Bash 作為預設的Shell程式當運行 Shell程式時,實際啟動並執行是Bash程式
- Zsh:更多地基於互動式操作考慮進行設計的Shell程式,整合了Bash,Ksh等多種Shell程式的優點
三、Bash
3.1、Linux預設使用的Shell程式
命令檔案位置:/bin/bash檔案中
[[email protected] /]# ls /bin/bash /bin/bash[[email protected] /]#
[[email protected] /]# ll /bin/bash -rwxr-xr-x. 1 root root 940416 Oct 16 21:56 /bin/bash[[email protected] /]#
3.2、主要功能
- 命令曆史: 是BaSh中用於提高命令輸入效率的一項功能,能夠讓使用者快速地重複執行已經輸入過的命令,減少重複輸入工作,向上的方向鍵等,
history可以查看已經輸入過哪些命令
- 命令別名:可以將頻繁使用的複雜命令定義為簡短的別名,當用記需要執行該複雜命令時,只需要使用別名即可完成對應的操作,降低和操作複雜性,提高了輸入效率
- 標準輸入輸出和重新導向:Linux使用檔案來描述系統的硬體,裝置等資源。
- 管道操作:在Bash環境中,為不同命令之間的協同工作提供了一種機制,為於管道符號左側的命令輸出結果,將作為右側命令的輸入,同一行命令中可以有多個管道
cat etc/inittab >>/tmp/bootype.txt
[[email protected] Documents]# cat >> a.txt << fw> fffffffffff> dddddddddd> fw[[email protected] Documents]#
將2個fw之間的內容追加到檔案a.txt中,如果a.txt不存在就建立
四、命令列
命令列的一般格式:
命令字 [選項] [參數]
命令字:簡單講,凡是在Linux字元介面,字元終端中,能名稱完成特定操作和任務的字串,都可以稱為"命令"。命令只代表了實現某一類功能的指令和程式的名稱。 命令字區分大小寫,是整條命令中最重要的部分
[選項]:調節命令的具體功能,決定這個命令將如何執行,同一個命令的配合不同的選項使用,可以獲得相似但有細微差別的功能。
[參數]:命令字的處理對象,可以是檔案,目錄,檔案夾,使用者等一些內容。參數可以是0個,多個.
命令字 選項 參數之間用空格隔開,多餘的空格會被忽略
選項和參數的順序可以混淆,可以順序相反,一般不影響命令的正常執行,特殊除外
Shell解譯器(學習筆記四)