5、自學——Linux的學習進度與任務【shell中bash的特性】

來源:互聯網
上載者:User

標籤:dup   刪除空目錄   大小   檔案內容   沒有   重複   絕對路徑   捷徑   obb   

shell中bash的特性

shell中bash的特性

bash特性之一:命令列展開  

  把命令列的給定的一個特殊符號自動替換為別的字串的機制

目錄:

  命令:cd 【內建命令】  

      工作目錄:當前所處的目錄

      cd:change directory(切換目錄)

      cd 目標路徑(不能是一個檔案必須是一個目錄)

      所有從根起始的都是絕對路徑:/檔案名稱

      基名:路徑最後一個檔案的名字

       /x/y/z/m/n: 目標路徑
       /x/y/z/m: 是目錄名或者路徑名

           兩個命令:
          擷取路徑的基名:   # basename
          擷取路徑的目錄名:# dirname

  注意: 檔案名稱可以使用除/(路徑分割符)以外的任一字元(空白符也是可以),但是不要使用特殊字元,且總長度不能超過255個
      嚴格區分大小寫

 

  注意:~ 相當於 /home   

    如果要切換到根目錄下的目錄具體操作:# cd /USERNAME(可以是空檔案或者目錄)【只有管理員可以此操作】

  如果要切換到家目錄具體操作:# cd  或者 # cd ~

  如果要切換到家目錄下的目錄具體操作:# cd ~USERNAME(可以是空檔案或者目錄)【只有管理員可以此操作】

  # cd -  :返回上一次所在的目錄

  # cd .  :  切換到目前的目錄

    # cd .. :切換到父目錄(若目前的目錄為“/“,則執行完後還在“/";".."為上級目錄的意思)

  # cd ../.. :切換上兩級目錄;

    # cd !$ :把上個命令的參數作為cd參數使用

  

   {}:可承載一個以逗號分隔的路徑列表,能夠將其展開為指定的多個路徑;

       例如:

                 /tmp/{a,b,c}   /tmp/a /tmp/b /tmp/c

                    /tmp/{a,b}/z   /tmp/a/z /tmp/b/z

  # pwd:顯示目前的目錄    print working directory
  # mkdir:建立目錄 make directory
        -p: 先建立父目錄
        -v:顯示詳細資料 

  # rmdir:刪除空目錄  remove directory  

   

   

   

   

 

  命令:ls

  # ls : 查看檔案(注意:在一個目錄下的其他目錄都是該目錄的檔案,一切皆檔案

 

bash特性之二:shell的引用

      ‘‘:強引用,變數替換不會進行
     "":弱引用,能夠執行變數替換
      ``:命令引用(替換),引用命令的執行結果,命令替換的另外一符號:$(命令)

  變數替換:${變數名}
        # echo : 回顯變數值

        


  命令引用:

        

 

bash的特性之三:命令曆史

      bash儲存的過去曾經執行的命令的列表
     當前shell進程儲存在緩衝區中
     緩衝區中的命令會在shell退出時儲存至檔案中,.bash_history
       使用上下方向鍵可以翻看此前曾經執行過的命令

     history捷徑:

        !#:     #為命令曆史列表中的命令編號,可用執行第#條命令
        !!:      執行上一條命令(重複執行,執行過的命令)
        !-#:   執行命令曆史列表中的倒數第#條命令
      !string:   執行命令曆史列表中最近一次以string開頭的命令
        !$:     引用上個命令的最後一個參數 先按ESC,再按.

      history常用選項:

                 -c :    清空列表

           -d# :   刪除指定的曆史命令

          -a  :    追加當前會話的命令曆史到曆史檔案中

          -n  :    從曆史檔案中讀取所有未被讀取的行

              -r  :    讀取曆史檔案並將內容追加到曆史列表中  



      命令曆史相關環境變數:

              HISTSIZE:命令曆史中可以儲存的命令的個數

              HISTFILE:命令曆史檔案

              HISTFILESIZE:命令曆史檔案可以儲存的命令的個數

              HISTCONTROL:控制命令曆史產生

                    ignoredups:忽略記錄重複的命令,連續相同命令才為重複
                    ignorespace:不記錄以空白字元開頭的命令
                    ignoreboth:同時具有以上值的特性

      補充:Linux檔案系統的另外一特性:以點號開頭的檔案為隱藏檔案:# ls -a:才能查看隱藏檔案
      # cat 查看文字檔內容

     shell中的變數賦值:
            變數名=值
              注意:變數在賦值時不能使用$,而$只在變數替換時使用
                 變數名只能包含字母,數字和底線,而且不能以數字開頭
                 變數名區別大小寫:

 

bash的特性之四:命令別名(alias)

      alias :顯示當前shell中定義的所有別名

      

        命名別名

          # alias 別名=‘原始命令‘(沒有空格可以不加引號)

        撤銷別名

         # unalias 別名

 

bash的特性之五:globbing, 檔案名稱通配

    萬用字元:
      *:匹配任意長度的任一字元
        abc abb abm xab ab
        ab*
        *ab
        *ab*

      ?: 匹配任意單個字元(全檔案名稱精確匹配)

      []: 匹配指定字元範圍內的任意單個字元
        a[xyz]b:
        [a-z]
        [A-Z]
        [0-9]
          [0-9a-zA-Z] 預設情況下是不區分大小寫

            [[:upper:]] = [A-Z] 所有大寫字母

            [[:lower:]]   所有小寫字母
            [[:alpha:]]    所有字母表
            [[:digit:]]      所有數字
            [[:alnum:]]     所有字母表+數字
            [[:space:]]    所有空白符
            [[:punct:]]   所有標點符號
            [^]:        匹配指定字元範圍外的任意單個字元
            [^0-9]=[^[:digit:]]

   

  練習

      複製/var目錄下所有以l開頭,以一個小寫字母結尾,且中間出現一位元字的檔案或目錄至/tmp下

        l*[0-9]*[[:lower:]]

 

      1、複製/etc目錄下以p開頭,中間跟了任一字元,並以d結束的檔案至/tmp目錄中:
      2、複製/etc/目錄下以p開頭,中間跟了4個任一字元,並以d結尾的檔案至/tmp/a目錄中:如果a不存在,先建立出來
      3、複製/etc/目錄下以任意一位元字開頭,並以非數字結尾的檔案至/tmp/b目錄下
      4、複製/etc/目錄下以非字母開頭,後面跟了一個字母及其他任何長度字元的檔案至/tmp/c目錄中

      1、cp -r /etc/p*d/tmp
      2、cp -r/etc/p????d /tmp/a
      3、cp -r/etc/[0-9]*[^0-9]/tmp/b目錄下
      4、cp -r/etc/[^[:alpha:]][[:aipha:]]*/tmp/c

5、自學——Linux的學習進度與任務【shell中bash的特性】

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.