shell指令碼基礎知識

2021-08-21 20:12:36 字數 3076 閱讀 7369

自定義shell變數時,變數有什麼規格?

可以使用字母,數字,下劃線,不能以數字開頭;

變數名區分大小寫;  賦值時等號兩邊不要有空格

不要使用關鍵字或特殊字元,給同乙個變數多次賦值時,最後一次生效。

簡述預定義變數$$、$?、$0、$#、$*、$!的作用?

$$:儲存當前執行的程式pid號;

$?:上乙個執行命令的返回狀態;

$0:當前執行的指令碼名;

$#:位置變數的個數;

$*:輸出所有的位置變數;

$!:儲存最後乙個程序的pid號;

簡述整數數值的比較操作?

-eq :等於       -ne:不等於       -lt:小於     -le:小於等於      -gt:大於      -ge:大於等於

shell環境中常見的中斷及退出控制指令?

continue:跳出本次的迴圈;

break:跳出整個迴圈;

exit:退出指令碼;

return:用在函式裡面,確認返回值;

shift:用於遷移位置變數。

正規表示式中+、?、*代表什麼意思?

簡述awk常用的內建變數各自的作用?

-f:設定字段分割符;    $n:比如$1指輸出第一列;   $0:輸出當前讀如的整行文字內容;

nf:輸出列數;     nr:輸出行數 ;    fnr:輸出當前處理行所在文字的行號;

filename:儲存當前處理的檔名;    environ:呼叫shell環境變數,格式environ["環境變數"]。

什麼是shel? 如何檢視當前系統支援的shell?

shell就是能夠實現某種功能的;

檢視/etc/shells

如何切換當前使用的shelll?

bash

/bin/bash有哪些特性?

命令補全功能,有vim編輯,有歷史命令等特性。

使用者的配置檔案都有那幾個?有什麼用?

~/.bashrc            ~/.bash_profile

在裡面定義變數,只針對使用者有效。

shell的變數型別有哪些?列舉出4個常用的預定義變數?

自定義變數,系統環境變數,預定義變數,位置變數

變數的生命週期?作用範圍?

1.在指令碼中定義的變數,只在指令碼的執行過程中有效;

2.只在當前的shell裡面可以使用,如果想要變數在所有的shel裡面都可以使用,需要定義成全域性變數。

指令碼的執行過程,指令碼的執行方式?

執行過程:從左到右,從上到下。

執行方式:sh  xx.sh  \  bash   xx.sh    \       ./xx.sh       \        絕對路徑執行

編寫指令碼的步驟?

1.首先需要確定編寫指令碼的目的;          2.所要實現的功能;            3.需要哪些命令;

4.需要哪些流程控制;        5.值是否需要變化,是否需要變數;

shell的判斷型別?

檔案狀態、數值比較、邏輯比較、字元比較

說一下在shell中-n -z -d -f -e -r -w -x -l !-z  代表什麼意思?

-n:是否為真;           -z:字串是否為空         -d:目錄是否存在          -f:檔案是否存在              -e:是否存在

-r:是否可讀                -w:是否可寫                    -x:是否有執行許可權      -l:是否是鏈結                  !-z:字串不存在為真

正規表示式中  (||) (\n)   (\r)  分別代表什麼意思?

||:或的意思。           \n:代表換行                \r:代表回車

獲取位址的方法命令?

ifconfig | sed -n '2p' | awk ''

函式內的local是什麼意思?

存在於指令碼函式中的變數稱為區域性變數;   以local的方式宣告,使變數只在函式的作用範圍內有效。

$@和$*的區別?

$@:將命令列的每個引數視為單個的引數;

$*:將所有引數視為1個字串。

$0、dirname、basename分別在指令碼裡面代表什麼?

$0:輸出指令碼的路徑和指令碼的名字

dirname:輸出指令碼的路徑;

basename:輸出指令碼名

如何取出3306這個埠號?

ss    -anptul | awk     '/3306/'  | awk    -f:    ''

shell中單引號和雙引號以及不加引號的區別?

加單引號:所見即所得,把單引號裡面的內容原樣輸出;

加雙引號:把雙引號內的內容輸出出來,當有命令和變數的時候,先把他們的結果解析出來,然後再輸出最終的內容;

不加引號:會將含有空格的字串視為乙個整體輸出出來,當有命令和變數的時候,先把他們的結果解析出來,然後再輸出最終的內容;  如果含有空格等特殊字元,不能完整的輸出出來,需要加雙引號,

echo   -n是什麼意思?

代表不換行操作;

-e:在後面有特殊字元的時候會加-e

\n:代表換行。

有0-9的數字,echo 0-9是輸出時不輸出0-5的數?

echo            |   sed     's/[0-5]//g'

使用seq列印10不分隔,列印10的倒序?

seq         -s       ""    10                                  

seq      10   -1    1

wget    -t   10    -c    -q    --spider        www.baidu.com   裡面-t、-c、-q 、--spider各是什麼意思?

生產環境常用的監控web的方法是什麼?

wget   和  curl 

檢視當前目錄下的所有資料夾?

ls -f | grep /

在awk中nf代表什麼?

nf:代表列數。     nr:代表輸出每一行的行數

Shell指令碼基礎知識

shell 變數 命名規則 首字元為字母 中間不能有空格,可用下劃線 不能使用標點和bash的關鍵字 賦值 顯示命名 不能加 語句賦值 唯讀變數 readonly variable name 刪除變數 unset varible name 不能刪除唯讀變數 shell字串 字串可以用單引號 雙引號 ...

shell指令碼基礎知識

雖然現在能在linux系統下生存,但是自覺效率太低,和高手有很大的差距。這就是關於linux的知識太過匱乏,有很多事情知道該怎麼做,但是就是沒法在linux下實現,為了提公升工作效率,必須要接觸linux高階技巧 linux的東西比較深,沒法一下學完,所以只要能掌握生信必備的基礎就好了。一些主要的流...

shell指令碼的基礎知識

shell 是指一種應用程式,這個應用程式提供了乙個介面,使用者通過這個介面訪問作業系統核心的服務,是指令碼中命令的直譯器。1.記錄命令執行的過程和執行邏輯,以便以後重複執行 2.指令碼可以批量處理主機 3.指令碼可以定時處理主機 bin bash 幻數 vim自動新增指令碼首部 1 手動在環境中開...