初識Shell——bash
Linux中的shell有點類似Windows下的cmd.exe或者.bat。管理整個計算機硬件的其實是操作系統(tǒng)的內核(Kernel),用戶無法與內核直接交互,所以通過shell來跟內核通信。即shell介于操作系統(tǒng)(Kernel)和用戶之間,它是用戶與內核的翻譯官,是一個命令解釋器。
常見的shell種類有:Bsh、Csh、Ksh、Bash、Zsh
Bsh和Csh出現(xiàn)的較早,Ksh繼承了它兩的功能,Bash繼承了Bsh和Ksh的升級版,而且是Linux系統(tǒng)中默認的shell,Zsh則兼具了各種shell的程序有點,交互式操作效率更高,但仍不及bash應用廣泛。
Shell環(huán)境的切換:
登錄Shell:指用戶每次登錄系統(tǒng)后自動加載的Shell程序,大多數(shù)Linux系統(tǒng)采用 /bin/bash 作為默認登錄Shell;/etc/shells 文件記錄了系統(tǒng)支持的有效登錄Shell
[root@localhost ~]# cat /etc/shells ==>使用chsh -l命令也可查看 /bin/sh /bin/bash /sbin/nologin /bin/tcsh /bin/csh /bin/ksh [root@localhost ~]#
默認的shell是bash,那么如何切換shell環(huán)境呢?分為兩種,一種是臨時切換,即當此終端關閉時,下次啟動仍然是bash,方法很簡單,直接在終端輸入shell名稱;第二種則是更改用戶登錄Shell,需要修改/etc/passwd文件中用戶記錄的最后一個字段,或者像前面講到的使用修改用戶的命令:usermod -s shell程序路徑 用戶名,也可以使用chsh命令,下次登錄有效。
查看當前shell可以通過/etc/passwd來查看,要查看系統(tǒng)默認使用的shell,可以使用echo $SHELL。
bash的常用功能:
1)Tab鍵自動補齊
這個功能可以讓您少打很多字,并且確定輸入是正確的。tab鍵接在一串命令的第一個字后面,則為命令補全;若接在一串命令的第二個字后面,則為文件補全;直接在bash提示符后面按兩下tab鍵,則能顯示所有可執(zhí)行的命令。
2)命令編輯快捷鍵
如之前提到的ctrl+D,ctrl+L,ctrl+U等
3)命令歷史
保存用戶曾經執(zhí)行過的命令操作;存放位置是:~/.bash_history隱藏文件;查看歷史命令只需使用history命令就行了。
調用歷史命令:
!n:執(zhí)行歷史記錄中的第n條命令
!str:執(zhí)行歷史記錄中以“str”開頭的命令
設置記錄歷史命令的條數(shù):修改HISTSIZSE參數(shù)即可(在/etc/profile文件里),默認為1000條。
(備注:正確使用歷史命令可以有效提高命令行輸入的效率,例如:如果之前不久執(zhí)行過“service network restart”命令,則重新修改了網卡的配置文件以后,通常只需要執(zhí)行“!ser”操作即可調用該歷史命令,以重啟network服務。合理控制歷史命令的條數(shù)可以提高安全性,root用戶的命令歷史一般建議設置為少于100條)
4)命令別名
為使用較高的復雜命令行設置間斷的調用名稱,存放位置是:~/.bashrc隱藏文件。查看命令別名只需用alias命令即可。
(備注:手動使用alias命令設置的別名只在當前Shell環(huán)境中有效,如alias rm='rm -i';若需每次登錄Shell環(huán)境時設置的別名都有效,需要修改宿主目錄中的“.bashrc”文件,添加相應別名設置)
5)標準輸入輸出
交互式硬件設備:
標準輸入:從該設備接收用戶輸入的數(shù)據(jù)
標準輸出:通過該設備向用戶輸出數(shù)據(jù)
標準錯誤:通過該設備報告執(zhí)行出錯信息
類型 |
設備文件 |
文件描述編號 |
默認設備 |
標準輸入 |
/dev/stdin |
0 |
鍵盤 |
標準輸出 |
/dev/stdout |
1 |
顯示器 |
標準錯誤輸出 |
/dev/stderr |
2 |
顯示器 |
(備注:/dev/stdin、/dev/stdout、/dev/stderr這三個文件是一個符號鏈接,輸入輸出與重定向關系緊密)
6)重定向操作
改變標準輸入、標準輸出、標準錯誤的方向:
類型 |
操作符 |
用途 |
重定向標準輸入 |
< |
將命令中接收輸入的途徑由默認的鍵盤更改為指定的文件 |
重定向標準輸出 |
> |
將命令的執(zhí)行結果輸出到指定的文件中,而不是直接顯示在屏幕上 |
>> |
將命令執(zhí)行的結果追加輸出到指定文件 | |
重定向標準錯誤 |
2> |
清空指定文件的內容,并將標準錯誤信息保存到該文件中 |
2>> |
將標準錯誤信息追加輸出到指定的文件中 | |
重定向標準輸出和 標準錯誤 |
&> |
將標準輸出、標準錯誤的內容全部保存到指定的文件中,而不是直接顯示在屏幕上 |
7)管道操作
管道操作符號是“|”,連接左右兩個命令,將左側的命令輸出的結果,作為右側命令的輸入(處理對象)。管道是腳本語言的特色,它可以講多個功能連接起來形成一個大的功能,這點與面向對象有很大的不同。
例如我現(xiàn)在要查看歷史記錄命令的第4行:則可先將前4條命令顯示出來,在��示前4條命令的最后一條:history | head -4 | tail -1 這樣即取出了第四條命令。
![]() | ![]() .. 定價:¥45 優(yōu)惠價:¥42 更多書籍 |
![]() | ![]() .. 定價:¥225 優(yōu)惠價:¥213 更多書籍 |