一、什麼是 shell ?shell
打開系統,輸入 zs ,按下 Tab 鍵,出現下圖命令 zsoelim ,vim
說明沒有 zsh 命令,這時候能夠安裝一下,先輸入命令 yum list |grep zsh ,回車,搜索一下,bash
能夠看出有 zsh 命令,也有 ksh 命令,這邊咱們就不安裝了。3d
二、命令歷史rest
咱們執行過的命令,其實是有保存到一個文件的。按向上的方向鍵,能夠查看以前的命令,那麼這些命令在哪邊被保存的呢?有一個文件在用戶的加目錄下,root 用戶見下圖,blog
能夠 cat 查看,命令很是多,截取一部分,見下圖,內存
要想知道以前執行過的命令有多少條,能夠用 history 命令查看,輸入 history ,回車,截取一部分圖品,見下圖,io
能夠看到以前的歷史是 672 條,那麼這個文件 .bash_history 最大能夠存儲 1000 條命令。這一點能夠經過環境變量 HISTSIZE 查詢,見下圖,zsh
還有一個命令 history -c ,能夠把當前的歷史命令清空,見下圖,登錄
那麼該命令能夠清空配置文件嗎?輸入命令 cat .bash_history ,回車,見下圖,
能夠看到配置文件的內容,沒有被清空,說明 history -c 命令僅僅是把內存當中的命令歷史清空而已,此時使用向上方向鍵,也查看不到以前的歷史命令,只有剛剛的幾條命令。
那麼咱們執行過的命令,何時會保存到這個文件裏去呢?舉個例子,
如今執行三次 ls 命令,而後再輸入命令 cat .bash_history ,回車,
能夠看到,這些命令的最後幾行,並無 ls ,再次使用 history 查看,見下圖,
此時就能夠看到 ls 命令,說明剛剛執行過的命令,目前只存在與內存中,只有退出終端以後,這些命令才能夠保存到配置文件 .bash_history 中。
環境變量 HISTSIZE 去哪裏定義呢?在 /etc/profile 中,使用 vi /etc/profile 命令進入,搜索一下HIST,
HISTSIZE 默認的量是1000 。
以爲太少的話,能夠改爲5000 。按字母 i 進入編輯,完成以後,按 Esc 退出編輯,輸入 :wq ,保存後退出。
更改完數值以後,不會立刻變成5000,須要執行一下 source 命令,才能夠生效,見下圖,
如今來看一下 history 命令,
上圖中,只顯示了 ID 號和具體的命令,能不能將對應的命令的運行時間記錄下來,這就須要對 HISTSIZE 從新賦值,見下圖,
這邊須要注意一下,此次更改的賦值,僅對當前的終端操做有效,再次打開終端之後,就會失效。也就是說,系統默認環境變量是不存在的,不要去定義。這時候,再執行 history 命令,
就會看到,命令歷史的格式發生了改變,會記錄命令的運行日期和時間。以上改變就是環境變量做用的結果。要讓改變生效,能夠編輯 /etc/profile 文件,輸入命令 vim /etc/profile ,回車,見下圖,
搜索 HIST ,見下圖,
增長一行上圖紅色框框的內容,保存後退出,執行命令 source ,
退出 Putty ,再從新登陸,執行 history 命令,見下圖,
能夠看到,日期和時間永久生效了。
接着作實驗,見下圖,
執行上圖這條命令之後,這個文件就只能追加,不能刪除。
終端沒有正常退出時,history 裏面就不會保存本次執行過的命令或者保存的命令不全。
另外再講一下,!! ,!n(n表示數字) ,!word(word表示命令單詞) ,詳見下圖,
三、命令補全和別名
一、Tab 鍵 命令補全
敲一下 Tab 鍵,不只能夠補全命令,還能夠補全文件路徑。
當遇到開頭同樣的多個文件或命令的時候,敲一下就不會有反應了,要敲兩下,而後就會出現這些開頭同樣的文件和命令,再從中找出本身須要的文件或命令。
CentOS 7 系統中默認是不支持補全參數的,須要安裝一個包,見下圖,
安裝完成以後,還不能當即生效,須要重啓系統才能夠。舉個例子,如今輸入命令 systemctl res ,而後敲 Tab 鍵,無論敲幾下都會發現毫無反應。接着輸入命令 reboot ,回車,重啓系統。
重啓成功以後,再輸入命令 rpm -qa bash-completion ,回車,
能夠看到,包已經安裝好了,接着試一下,輸入 systemctl res ,而後敲兩下 Tab 鍵,就會出現3個參數。
Tab 鍵的用法心照不宣就行了,文字說不清楚,就到這吧。
二、alias 命令
舉個例子 ,systemctl restart network.service 這個命令有點長,雖然可使用 Tab 鍵來補全命令,仍是以爲有點麻煩,這時就可使用 alias 來命名一個別名。具體操做見下圖,
這樣子就能夠直接運行 restartnet 這個命令了,直接輸入 alias ,回車,能夠看到系統裏面全部的alias ,包括自定義的,見下圖,
接着查看這些alias存在於哪裏,首先輸入命令 vi .bashrc ,回車,見下圖,
這邊只有3個 alias ,在用戶的家目錄下,其餘的在哪裏呢?輸入 :q ,回車,退出上圖界面,接着見下圖,
其餘的 alias 都在這些文件裏面,如今進入 colorls.sh ,見下圖,
這邊有2個 alias ,輸入 :q ,回車退出,接着輸入命令 vim colorgrep.sh ,回車,見下圖,
以上就是這些 alias 所在的文件。
那麼,怎麼取消自定義的別名呢?用 unalias 就能夠了,見下圖,