【Shell】-- 基礎知識(2),shell--基礎知識

來源:互聯網
上載者:User

【Shell】-- 基礎知識(2),shell--基礎知識
1、Shell指令碼運行方式

  建立Shell指令檔,一般以.sh結尾(如:example.sh)

  Shell指令碼運行方式如下:

  • 添加 ‘x’ 執行許可權(相對或絕對路徑執行)
  • 使用bash或source(.)命令呼叫指令碼檔案
2、Bash的準系統

  (1)、曆史命令history

     -c:清空曆史命令

    -w:將緩衝中的曆史命令儲存到設定檔當中(~/.bash_history)

    調用曆史命令的方法:

      ①、使用上、下鍵調用

      ②、使用“!n”重複執行第n條曆史命令

      ③、使用“!!”重複執行上一條命令

      ④、使用“!字元”重複執行最近一條以此字元開頭的命令

  (2)、命令別名alias

    格式:alias  別名=‘原命令’    [選項]

     例:alias   ls=‘ls -l’

    設定檔:

      單個使用者:~/.bashrc

      所有使用者:/etc/bashrc

      (對此處兩個設定檔不太明白同學,可以理解為一個為全域變數,一個為局部變數。)

    不同類型的命令執行優先順序:

      No.1、相對或絕對路徑的方式執行命令

      No.2、別名命令

      No.3、bash內建命令

      No.4、根據環境變數定義的目錄查詢到的命令

  (3)、Bash常用快速鍵

    

    

3、輸入輸出重新導向 

   (1)、Bash的標準輸入輸出

    裝置    裝置檔案名稱    檔案描述符   類型

    鍵盤    /dev/stdin        0      標準輸入

    顯示器   /dev/stdout      1      標準正確輸出

    顯示器   /dev/stderr       2      標準錯誤輸出

  (2)、輸出重新導向

    

  (3)、輸入重新導向

    命令:wc  【選項】 【檔案名稱】

        -c:統計字數(字元)

        -w:統計單詞數(字串)

        -l  :統計行數

    例如:

       wc   <   檔案(統計檔案中的字數,單詞數,行數)

          

       wc  <<  字元(統計從開始字元到結束字元中的單詞,字,行數)

           

4、多命令順序執行

  

5、管道符

  格式:命令1 | 命令2(將命令1的標準輸出作為命令2的標準輸入)

   xargs實現將命令1的標準輸出作為命令2的選項

   例如:

    echo  “--help”  |  cat

      

    echo   “--help”  | xargs cat

      

6、萬用字元

  

7、Bash中其他特殊符號

  

  父Shell和子Shell(使用pstree查看)

    

    使用Shell不影響父Shell,在()中執行的命令,在新開啟Shell中執行,不影響本Shell

8、變數

  (1)、變數規範

    可以由字母、數字和底線組成,但是不能以數字開頭,變數中間不能有空格。

  (2)、注意事項  

    v  在Bash中,變數的預設類型都是字串型,如果需要進行數值運算,則需要轉換為數值型

    v  變數用等號連結值,等號左右兩側不能有空格

    v  變數若有空格,需要使用單引號或雙引號包括

    v  雙引號“”括起來的$、|、``都有特殊含義

    v  單引號括起來的都是一般字元

    v  如果需要增加變數值,進行變數值疊加,”$變數名”或”${變數名}”,eg:PATH=$PATH:/sh

    v  變數名建議大寫,易於區分

  (3)、變數分類

    v  使用者自訂變數

    v  環境變數

    v  位置參數變數

    v  預定義變數

    a)         調用:

      echo  $變數名

      例如:echo  $PATH

 

    b)        查看:

      set [選項]  ----  直接斷行符號顯示系統中所有變數

             -u   調用沒有聲明的變數時會報錯(建議使用)

             -x    命令執行前,先將命令輸出一次

                           

    c)         刪除:

      unset 變數名

 

   2、環境變數

    a)         設定:

      export  變數名=值------(聲明~/.bash_profile)

      #export聲明的是環境變數

    b)        查看:

      env

      常用格式: env | grep 變數

      #set中包括env,env查詢環境變數,set查詢所有變數

    c)         PS1變數:定義命令提示字元

         

                          PS1可支援以下選項:

        v  \d:顯示日期,格式為“星期月日”

        v  \H:顯示完整的主機名稱。如預設主控件名“localhost.localdomain”

        v  \h:顯示簡寫主機名稱。如預設主控件名“localhost”

        v  \t:顯示24小時制時間,格式為“HH:MM:SS”

        v  \T:顯示12小時制時間,格式為“HH:MM:SS”

        v  \A:顯示24小時制時間,格式為“HH:MM”

        v  \@:顯示12小時制時間,格式為“HH:MM am/pm”

        v  \u:顯示目前使用者名

        v  \v:顯示Bash的版本資訊

        v  \w:顯示當前所在目錄的完整名稱

        v  \W:顯示當前所在目錄的最後一個目錄

        v  \#:執行的第幾個命令

        v  \$:提示符。如果是root提示符為“#”,如果是普通使用者提示符為“$”

  3、調用格式:

      

    d) LANG語系變數----定義主語系環境變數

                            i.查看Linux支援的語系

          locale –a | more

                            ii.當前使用可用語系

          locale

                            iii.查詢預設語系

          cat  /etc/sysconfig/i18n

                            iv.修改案頭版中文為英文

     export LANG=en_US.UTF-8

     xdg-user-dirs-gtk-update

 

  4、位置參數變數

    v  $*顯示所有參數(作為整體接收)

    v  $@顯示所有參數(分開接收)

    v  $#顯示參數個數

  預定義變數

     

    v  $? 判斷上一條命令是否正常執行

      錯誤數值非0,正確的是0

    v  $$ 當前進程的PID

    v  $!最後一個後台執行的命令的進程

 

                    注意事項:

    v  變數名可以自訂,如果不指定變數名,會把輸入儲存入預設變數REPLY

    v  如果只提供了一個變數名,則整個輸入行賦予該變數

    v  如果提供了一個以上的變數名,則輸入行分為若干字,一個接一個地賦予各個變數,而命令列上的最後一個變數取得剩餘的所有值

 

 

  5、接受鍵盤輸入

    格式:read  [選項]   [變數名]

                     選項:-p “提示資訊”:在read等待時輸入的資訊

                      -t  秒數       :read等待的秒數(到達秒數自動跳轉下一條)

                      -n  字元數    :read最多能接收的字元數

                      -s            :隱藏輸入的資訊

                    註:若特殊選項不換行,使用\n控制轉換符

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.