shell學習筆記(二)

2021-09-19 09:37:10 字數 2473 閱讀 2074

alias(別名)

別名的設定格式alias variable=『命令』,取消別名使用unalias variable

source

通過source ~/.bashrc. ~/.bashrc將環境變數配置檔案寫入到shell環境中。

萬用字元符號作用*

代表0至無限個任意字元

?代表至少有乙個任意字元

[ ]代表至少有乙個[ ] 裡面的字元,例:[abcd],匹配到的是a,b,c,d的其中乙個

[-]例:[0-9]、[a-z]、[a-z]

[^]表示不會匹配到^後面的字元,例:[^abc]只會匹配到非a,b,c的字元

特殊字元

符號作用

#注釋符號#後面的**不會執行

\轉義符號,將萬用字元或特殊字元轉變為普通字元

|管道符用於分隔2個命令

;連續命令下達分隔符

~家目錄

$呼叫變數的前置符號

&工作控制,將指令變成背景下工作

!邏輯運算子,表示為非

/根目錄或路徑分隔符

>,>>

資料流重導向,輸出導向,分別為取代、累加

<,<<

資料流重導向:輸入導向

』 』』 '內的內容為純字元沒特殊意義

" "" "內的內容保持特性

` `` ` 內的內容會優先執行,同$()

( )在中間為子shell的開始和結束

{}代表{}內的所有命令區塊的集合

資料流重導向

標準輸入 (stdin) **0 使用< 或 <<

標準輸出 (stdout) **1 使用》 或 >>

標準錯誤輸出 (stderr) **2 使用 2> 或 2>>

標準輸出可以將命令輸出內容到乙個檔案內,如果檔案不存在則新建檔案。其中乙個>為覆蓋內容,>>為追加內容。標準輸入<可以將乙個檔案的內容輸入到乙個指令當中,<<可以理解為輸入內容的結束字元。錯誤輸出可以將錯誤的資訊輸入到乙個檔案內。

例:cat > test.txt < ~/.bashrc新建乙個test.txt的檔案,然後將.bashrc 裡面的內容輸入到這乙個資料夾裡面。

cat >> test.txt << 『end』將輸入內容寫入test.txt這檔案中,並覆蓋原來的內容,最後輸入end可以結束輸入。

多條命令執行;、&&、||

;用於分隔兩條或多條命令,這些命令一般沒有相關性。

&&用於判斷2條命令的相關性,如果命令1執行成功(返回值為0),則執行命令2。如果命令1執行失敗(返回值為非0),則不執行命令2。

||用於判斷2條命令的相關性,如果命令1執行成功(返回值為0),則不執行命令2。如果命令1執行失敗(返回值為非0),則執行命令2。

管道|管道的第乙個命令會產生出乙個標準輸出(stdout),管道後面的命令必須要能接受第乙個命令所產生的內容作為標準輸入(stdin)來進一步處理資料。

cutcut -d 『分割字元』 -f n用於切割字串,-d後面接分割字元,可以根據分割字元進行切割,-f後面用於分段輸出內容。

例:echo $ | cut -d 『:』 -f 1,3將path輸出的內容以:進行分割,取出1和3段的內容。

cut -c 字元區間用於以字元位數為切割依據分割字元。

例:export | cut -c 12-20切割出12-20字元間的內容

grep

grep [-cinv] 搜尋字元

-c 統計找到的要搜尋的字元的個數

-i 忽略大小寫進行搜尋

-n 顯示目標字元所在的行數

-v 反向選擇,顯示沒有目標字元的行

-o 只顯示匹配到的內容

sort,wc,uniq

sort

sort [-fbmnrtuk] 檔案或stdin預設以字母進行排序a-za-z。

-f 忽略大小寫

-b 忽略最前面的空白字元

-m 以月份進行排序

-n 以數字進行排序

-r 反向排序

-u 相同資料,僅顯示一行

-t 分割字元

-l 以那個區間進行排序

uniq

uniq -[ic]將重複內容顯示為一條輸出。

-i 忽略大小寫

-c 統計出現次數

wcwc -[lwm]統計輸出內容的行數、多少個詞、多少個字元。

-l 僅顯示有多少行

-w 僅顯示有多少個詞

-m 僅顯示有多少個字元

shell學習筆記(二)

字串表示 字串可以由單引號 包圍,也可以由雙引號 包圍,也可以不用引號。str1 c.biancheng.net str2 shell script str3 c語言中文網 單引號和雙引號前面已經解釋過了。不用引號的話字串之間不能有空格。字串拼接 直接將兩個字串放在一起就好了,簡單粗暴。bin ba...

學習shell程式設計筆記 二

變數 含義 0 當前指令碼的檔名 n傳遞給指令碼或函式的引數。n 是乙個數字,表示第幾個引數。例如,第乙個引數是 1,第二個引數是 2。傳遞給指令碼或函式的引數個數。傳遞給指令碼或函式的所有引數。傳遞給指令碼或函式的所有引數。被雙引號 包含時,與 稍有不同,下面將會講到。上個命令的退出狀態,或函式的...

shell學習筆記之條件(二)

test或者 檢查檔案是否存在 if test f read.c then fi if f read.c then fi 如果then和if在同一行上,就應該用 把if和then分開 if f read.c then fi 注意 1.if空格 空格 空格 都有空格 2.test命令的退出碼 表明條件...