一、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文件中
[root@model /]# ls /bin/bash /bin/bash [root@model /]#
[root@model /]# ll /bin/bash -rwxr-xr-x. 1 root root 940416 Oct 16 21:56 /bin/bash [root@model /]#
3.2、主要功能
- 命令歷史: 是BaSh中用於提高命令輸入效率的一項功能,能夠讓用戶快速地重復執行已經輸入過的命令,減少重復輸入工作,向上的方向鍵等,
history可以查看已經輸入過哪些命令
- 命令別名:可以將頻繁使用的復雜命令定義為簡短的別名,當用記需要執行該復雜命令時,只需要使用別名即可完成對應的操作,降低和操作復雜性,提高了輸入效率
- 標准輸入輸出和重定向:Linux使用文件來描述系統的硬件,設備等資源。
- 管道操作:在Bash環境中,為不同命令之間的協同工作提供了一種機制,為於管道符號左側的命令輸出結果,將作為右側命令的輸入,同一行命令中可以有多個管道
cat etc/inittab >>/tmp/bootype.txt
[root@model Documents]# cat >> a.txt << fw > fffffffffff > dddddddddd > fw [root@model Documents]#
將2個fw之間的內容追加到文件a.txt中,如果a.txt不存在就創建
四、命令行
命令行的一般格式:
命令字 [選項] [參數]
命令字:簡單講,凡是在Linux字符界面,字符終端中,能名稱完成特定操作和任務的字符串,都可以稱為"命令"。命令只代表了實現某一類功能的指令和程序的名稱。 命令字區分大小寫,是整條命令中最重要的部分
[選項]:調節命令的具體功能,決定這個命令將如何執行,同一個命令的配合不同的選項使用,可以獲得相似但有細微差別的功能。
[參數]:命令字的處理對象,可以是文件,目錄,文件夾,用戶等一些內容。參數可以是0個,多個.
命令字 選項 參數之間用空格隔開,多余的空格會被忽略
選項和參數的順序可以混淆,可以順序相反,一般不影響命令的正常執行,特殊除外