[command]bash基本命令

bash基本命令

環境變量通常是大寫字符。
變量賦值,=兩邊不能有空格!
雙引號內的特殊字符如$,保持原來的意思。
單引號內的特殊字符都是一般字符。

name=test
echo "$name" # test
echo '$name' # $name

unset取消變量。
環境變量中PATH表示爲執行文件查找的路徑,目錄與目錄之間用:分割。目錄的順序是很重要的。

變量的設置方式

${變量#關鍵字}: 從頭開始匹配關鍵字,將符合的最短的關鍵字刪除
${變量##關鍵字}:將符合的最長的關鍵字刪除
${變量%關鍵字}: 從頭開始匹配關鍵字,將符合的最短的關鍵字刪除
${變量%%關鍵字}:將符合的最長的關鍵字刪除
${變量/舊字符/新字符}:替換,將第一個舊字符替換
${變量//舊字符/新字符}:替換,全部替換

history

描述最近運行的命令。

!number: 執行第幾條命令
!command: 從最近的指令開始找,第一個滿足command開頭的命令
!!:上一條指令

組合按鍵

Ctrl+U:刪除整行命令
Ctrl+Z:  暫停當前命令

特殊符號

>: 輸出導向,替換
>>: 輸出導向,累加
<:  輸入導向

&& 與 ||

遵循短路規則。

cmd1 && cmd2:如果cmd1執行完畢且正確($?=0),則執行cmd2,否則不執行cmd2
cmd1 || cmd2:如果cmd1執行完畢且正確,則不執行cmd2,否則執行cmd2

基本命令

cut

-d:後面接分割符
-f:取出第幾段
-c: 以字符的單位取出固定字符區間
cut -d ':' -f 3, 4

sort

-f:忽略大小寫
-b:忽略最前面的空白
-M:以月份的名字排序,例如JANDEC等的排序方法
-n:使用純數字排序
-r:反向排序
-u:uniq,相同數據只出現一次
-t:分割符
-k:以某個區間進行排序

uniq

去重。

-i:忽略大小寫
-c:進行計數
 scripts ls | uniq -c
   1 1234_2017060
   1 1234_20170604
   1 1234_20170606
   1 file_20170604
   1 file_20170606
   1 script.sh
   1 test.txt

wc

計數。

-l:進列出行
-w:僅列出多少字
-m:多少字符

tee

雙向重定向

-a,累加的方式加入file當中

tr

切割。

tr -ds set1
-d,刪除信息中set1字符串
-s:取重複字符

col

-x: 將tab鍵轉換爲對等的空格鍵

join

將兩個文件當中有相同數據的那一行加在一起。

a.txt: 123213 123
b.txt: 123213 1234

join a.txt b.txt 
123213 123 1234
-t: 分隔符,默認爲空格,默認比較第一個字段
-i:忽略大小寫差異
-1 x:第一個文件以第x字段比較
-2 x:第二個文件以第x字段比較
join -t ' ' -1 1 -2 1 a.txt b.txt 
123213 1234 134 1234 42151

paste

-d:後面接分割符,默認tab
-:來自standard input

a.txt

123213 1234 134
123213 1234 134

b.txt

123213 1234 42151
123213 1234 42151
123213 1234 42151
123213 1234 42151
paste -d ' ' a.txt b.txt
123213 1234 134 123213 1234 42151
123213 1234 134 123213 1234 42151
 123213 1234 42151
 123213 1234 42151

expand

將tab轉換爲空格。

-t:一個tab對應多少個空格

split

切割文件

split -b [] -l [] file prefix
-b:切割文件的帶下,可加單位b,k,m
-l:以行數切割
prefix:切割後文件前綴,默認以a a,ab等排序。
split -b 1 file files

可以用cat復原

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章