1. 程式人生 > 實用技巧 >Linux橋樑工具之shell

Linux橋樑工具之shell

shell 常用命令

基本與Linux相同, 但也有不同的地方

1.比如流程控制語句if

if [ condition ]

then

程式

elif

else

fi(反向if,代表結束)

2.判斷表示式[ condition ](括號前後要空格) 和 計算表示式 $[ 5+6 ]

example

[ 32 -le 32 ] (命令-le前後也要空格)

3.for迴圈列外可以寫如下格式

for((i=0;i<=100;i++)) "可以使用後<=和i++ 但其他迴圈不能使用 只可用 -lt -e 等比較命令判斷"

do

命令程式

done

while [ 條件 ]

do

程式

done

4.case語句不同與java

case $變數名 in

"值1")

等於值1時的命令

;;(此處2個分號相當於break)

"值2")

命令2

;;

*) 這個等於default語句值

預設命令程式

;;

esac (反向拼寫case代表結束)

5. read讀取控制檯輸入

read -t 7 -p "Enter your name in 7 seconds" NAME

-t (time)表示等待多久輸入引數

-p (print)等待是控制檯列印提示

Name 為語句傳入的引數

echo $NAME (列印引數)

6 .運算子

“$((運算式))”“$[運算式]”

如計算(2+3

X 4的值

S=$[(2+3)*4]

echo $S

7.basename系統函式

basename [string /pathname] [suffix] (這個是字尾,如果寫了字尾,輸出時會刪掉字尾名顯示)

(功能描述:basename命令會刪掉所有的字首包括最後一個(‘/’)字元,然後將字串顯示出來。

Shell 工具類

1.cut 剪下

-f 提取第幾列

-d 按指定分隔符分開

cut -d ": " -f 2 file

(file要全部檔名,如 nihao .txt)

2.awk(三個人開發的名字組合,無意義)用與分隔篩選

  • -F fsfs指定輸入分隔符,fs可以是字串或正則表示式,如-F:
  • -v var=value賦值一個使用者定義變數,將外部變數傳遞給awk
  • 內建變數大寫才有用
  • FILENAME
  • NR 現在讀取到第幾行
  • NF 切割後有多少列
awk -F ":"  -v  i=1   'BEGIN{ print "start" } pattern{ commands + i} END{ print "end" }' file    
(-F以冒號:分隔檔案 ,-V 用來自定義引數,用於之後表示式內,pattern可以是條件表示式,正則表示式,begin end只輸出一次 ,file 即檔名)

3.sort

-n 大小排序

-r 反轉大小排序

-k 選擇第幾列排序

-t 用什麼分隔來排序

例句:

sort -t ":" -nrk 4 file名

系統預定義好的變數

1.指令碼的常用執行方式

第一種

採用bash 或sh +指令碼路徑

如:sh /home/atguigu/datas/helloworld.sh

第二種

修改許可權後 輸入指令碼的路徑

chmod +x 檔案路徑

執行指令碼

./路徑 或 /路徑

第三種 指令碼路徑前直接加 " . " 然後空格 路徑

一二種是再當前shell開啟子shell執行指令碼,然後關閉子shell 回到 父shell

第三種是在當前shell指令碼直接執行,不切換shell

2.顯示當前shell 的所有變數

命令:

set

3.特殊字元的意義

$0 指令碼名字

$n 第n個引數 10 以上要用大括號 如 ${10}

$# 所有引數的個數

$* 整體輸入引數

$@ 分別輸入

$? 最後命令的執行狀態 0表示執行成功