1. 程式人生 > >0402 第十次課:shell基礎(上)

0402 第十次課:shell基礎(上)

開發十年,就只剩下這套架構體系了! >>>   

shell基礎上

一、shell介紹

shell是一個命令直譯器,它在作業系統的最外層,負責直接與使用者對話,把使用者的輸入解釋給作業系統,並處理各種各樣的作業系統的輸出結果,輸出到螢幕返回給使用者。這種對話方式可以是互動的方式(從鍵盤輸入命令,可以立即得到shell的迴應),或非互動(指令碼)的方式。換句話說,Shell是一個命令列直譯器,它為使用者提供一個像Linux核心傳送請求以便執行程式的介面系統級程式,使用者可以用Shell來啟動,掛起,停止甚至是編寫一些程式。   Shell還是一個功能相當請打的程式語言,易編寫,易除錯,靈活性較強。Shell是解釋執行的指令碼語言,在Shell中可以直接呼叫Linux系統命令。

  • 每個使用者都可以有自己特定的shell

  • CentOS7預設shell為bash(Bourne Agin Shell)

  • 還有zsh、ksh等,這shell預設是不安裝的,使用需要進行安裝

  • shell支援特定語法,比如邏輯判斷、迴圈(if for whell)

二、歷史命令

  • 命令歷史查檢視

    使用過的命令歷史存放在使用者家目錄下的.bash_history檔案中,可以通過history命令檢視命令使用歷史

  • 歷史命令儲存

    1.可以通過:echo $HISTSIZE 檢視多可以儲存多少條歷史命令,預設為:1000條。

    2.history -c 可以清除歷史命令,但是不能清除.bash_history檔案中的歷史命令

    3.歷史記錄只有退出終端的時候才會儲存到.bash_history檔案中,非正常關閉終端使用過的命令不會儲存。

    4.環境變數HISTSIZE的大小可以在/etc/profile中修改HISTSIZE引數,改完source或者退出終端重新登入生效

  • 命令歷史格式修改

    1、修改前

    2、臨時修改

    HISTTIMEFORMAT="%Y/%m/%d %H:%M"

    3、永久修改

    /etc/profile中加入:

    HISTTIMEFORMAT="%Y/%m/%d %H:%M "

  • 命令永久儲存

    如果想把命令永久儲存,不想別人刪除,那可以把.bash_history檔案加上a許可權,使檔案只能新增不能刪除。

    chattr -a ~/.bash_history

  • 命令歷史快捷鍵

    • !!: 執行最後一次執行的命令

    • !+ 數字: 執行命令歷史中對應數字的命令

    • !+xx: 執行以xx開頭的最後一條命令

三、命令補全

  • centos7中引數補全

    centos6中只能tab進行命令補全,centos7中可以支援引數補全。

    默然是不支援的需要安裝bash-completion,ctrl+d退出,重新登入後生效。

    安裝:yum -y install bash-completion

    重啟:reboot

    完成後測試:

  • 命令別名

    如果覺得有些命令比較長和繁瑣,可以使用給這些命令起一個別名,起別名的命令:alias

    用法:alias 別名='具體命令'

  • 檢視已有的別名

    命令:alias

  • 取消自定義的別名

    命令:unalias 別名

四、萬用字元

  • "*" :表示0或者多個任意字元

    如:*.txt 列出所有以.txt結尾檔案

  • ? : 一個任意字元

    如:?.txt 列出一個任意字元的.txt檔案

  • 如:[123].txt 會列出1.txt 2.txt 3.txt

    它也可以支援字母

    示例:

    列出:1-9

    列出:1-9 和a-z

  • {} :列出花括號裡面開頭

    如:{}.txt: 列出花括號內開頭帶有.txt

    示例:

五、輸出輸入重定向

  • 輸出重定向:

    1.> :左邊輸出重定向到右邊

    如:cat 1.txt > 2.txt 會把1.txt的內容重定向到2.txt中

    2.>>:左邊輸出追加到右邊

    如:at 1.txt >> 2.txt 會把1.txt的內容追加到2.txt中

    3.2> :錯誤重定向

    如:輸入一個錯誤的命令,加上2> 它會把錯誤資訊重定向到2.txt中。

    4.2>>: 錯誤追加重定向

    5.&> 是 > 和 2> 結合 ,會把正確和錯誤資訊全部重定向。

  • 輸入重定向

    把右邊的檔案輸入到左邊的命令中

    如:把2.txt的內容輸入到wc -l命令中進行統計行數