linux中的bash


一、bash的簡介

  操作系統都是需要通過shell跟內核來交互的,常見的shell有GUI、KDE、sh、csh、bash、tsh、zsh等、

  而linux中最常用的shell就是bash。

二、bash的特性

  1.編輯快捷鍵

    Ctrl+a:跳到命令行首

    Ctrl+e:跳到命令行尾

    Ctrl+u:刪除光標至命令行首的內容

    Ctrl+k:刪除光標至命令行尾的內容

    Ctrl+l:清屏

    Ctrl+c:終止取消命令

    Ctrl+z:將當前命令送至后台(fg調回命令)

  2.命令歷史

    查看命令歷史:history

      -c:清空命令歷史

      -w:保存命令歷史至文件中

  3.命令展開

    ~:為家目錄

    {}:展開多個目錄

      /home/{zrq/{job,wok},demo} =/home/zrq/job   /home/work  /home/demo

  4.補全功能

    ①命令補全:通過tab鍵在PATH中搜索補全

      PATH:一組以冒號分割的路徑集合

      shell命令分為內部命令與外部命令

      內部命令:直接構建在shell之中的命令

      外部命令:在系統的某一路徑下游可執行程序

    ②路徑補全:給出排頭的路徑補全,如果沒有補全則默認為當前路徑

  5.通配符

    ①  *:匹配任意長度任意字符。

    ②  ?:匹配任意單個字符

    ③  []:匹配指定范圍內任意單個字符,不區分大小寫

    ④  [^]:匹配指定字符外的任意單個字符

  6.命令別名(alias)

    查看命令別名:alias

    臨時定義新的命令別名:alias 別名 =‘命令’

    取消臨時定義的命令別名:unalis 別名

  7.bash中的變量

    變量的類型

      ①自定義變量:只對當前shell有效,對其子shell無效。

        定義變量:變量名=“Value”

        引用變量:${變量名}

        撤銷變量:unse t變量名

      ②本地變量:只對局部生效

        定義變量:local 變量名=“Value”’

      ③環境變量:對shell及子shell都有效

        export

          -p:查看當前環境變量

      ④位置變量:

        $1..$n(代表從第一個位置到第n個位置的變量)

      ⑤特殊變量:

        $0::代表腳本名稱自身

        $?:代表上一個命令的執行狀態(0表示成功,非0均表示不成功)

        $$:shell最后運行的后台process的PID

  8.bash中的輸入輸出重定向和管道命令

    ①標准I/O

      標准注入:默認一般指鍵鼠

      標准輸出:默認一般指顯示器

      標准錯誤輸出:默認一般指顯示器

    ②I/O重定向

      輸入重定向:<

      輸出重定向:>,>>

          >:覆蓋輸出

          >>:追加輸出

          set -C :禁止使用覆蓋重定向覆蓋已存在文件。

          set +C:關閉禁止

      錯誤重定向:2>,2>>

      同時重定向正確輸出與錯誤輸出:&>

    ③管道命令   

      :|

      管道命令就是一種輸入輸出的一種實現,將命令的結果輸出到管道,然后通過這個管道輸入給下一個命令。

      同時管道命令是可以多重的

      命令1|命令2|命令3

    ③ tee命令

      當你想把一個命令的輸出,保存到文件中,又想對輸出進行另外操作時候。

      比如:/etc//work下的文件名 輸出到/tmp/test 中並統計共多少行

      cat /etc/work | tee /tmp/test |wc -l

       注意:tee的位置

三、bash的配置文件(使用戶配置持久配置)

  1.bash的配置文件分為兩類

    ①profile類(為交互式登錄提供配置)

        /etc/profile:全局的

        /etc/profile.d/*sh:全局的

        ~/.bash_profile:僅對個人用戶有效

      功能:

        設定環境變量

        運行腳本或命令

   ②bashrc類(為非交互式登錄提供配置)

        /etc/bashrc:全局的

        ~/.bashrc:僅對個人用戶有效

      功能:

        設定本地變量

        定義命令別名

  2.登錄類型

    ①交互式登錄

        直接通過終端輸入賬號密碼登錄

        su - 用戶名 或  su -l 用戶名 登錄

    ②非交互式登錄

        su 用戶名

        圖形界面下的終端

  3.bash讀取配置文件順序

    ①交互式登錄讀取順序

      /etc/profile --->/etc/profile.d/*.sh--->~/.bash_profile --->~/.bashrc ---> /etc/bashrc

    ②非交互式登錄讀取順序

      ~/.bashrc ---> /etc/bashrc ---> /etc/profile.d/*.sh 

  4.配置生效方式

    ①強制重讀

      source  文件名

      . 文件名

    ②重新登錄

四、bash中的算數

  1.declare

    -i:整型變量

  2.let

    let  變量名=算數表達式

    例如:let sum=$num1+$num2

       echo $sum

  3.算數表達式

    變量名=$[$sum1+$sum2]

五、bash的測試

  1.整數測試

  2.字符串測試

  3.文件測試

    ①單目測試

      -e file :測試文件是否存在

      -f /path:測試目標文件是否為普通文件

      -d:          目錄文件

      -b:

      -c:

      -p:

      -s:

      -r:文件存在且當前用戶有有讀權限

      -x:測試文件是否存在且不為空

    ②雙目測試

      file1  -nt file2 :測試文件1是否比文件2新

六、輪替

  shift

 

        

        

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM