linux shell指令碼基礎知識筆記

2021-07-25 18:30:12 字數 2170 閱讀 2339

shell指令碼一般是用來幫助管理員來管理自己的伺服器的    所以一般shell指令碼是放在自己的家目錄序下面的,供自己來呼叫管理

1.首先  在自己家目錄下面建立目錄  mkdir  shell 

2.編寫shell指令碼的時候   首行都是以#!/bin/bash開頭的   ,在讀取的時候    會按照shell的語法來解析該指令碼!

3 shell指令碼寫完了之後要給指令碼賦予執行許可權chmod 755 ./test.sh

4.現在就可以執行shell指令碼了  執行的時候可以寫絕對路徑也可以寫相對路徑

1)./test.sh

2)/root/shell/test.sh

shell  指令碼的語法和一些簡單例子

1  變數;    語法   aa=123   =兩邊不能有空格,在shell指令碼之中所有的變數預設都是字串的,定義變數的時候不需要$   但是檢視變數的時候需要加上$

變數也可以寫成aa=$(ls /dev)   echo $aa   或者   aa=123 aa="$aa"456 echo $aa --->123456變數也可以累加,一邊情況之下變數都是鏈結起來的,

如果需要把值加起來的話aa=123,bb=234  cc=$(( $aa + $bb ))  echo $cc

2  位置引數變數   $0 表示的是變數自己   $1 表示的是第乙個引數, $2 表示的是第二個引數 ,$3  表示的是第三個引數  總共後面可以有九個引數  也就是$9

#!/bin/bash

echo"the command is $0"

echo"canshu1 is $1"

echo"canshu2 is $2"

3  預定義變數     $?  表示返回的上乙個命令的返回值    為0表示上一次命令執行成功,不為0表示執行失敗!    $#  統計命令之後的引數個數   ,,$*  返回所有的引數

$n  位置引數變數

#!/bin/bash

#名字為:canshu.sh

echo"canshu zongshu $#"

echo"canshu liebiao: $*"

echo $?

三 shell中常用命令

1 行提取命令grep    -v 反向提取    -n   顯示行號

grep  -n "[^a-z]hen" test_rule.txt利用正規表示式來查詢   test_rule.txt  裡面的不是以小寫字母開頭的的hen字串 

grep 「\.$」 test.txt匹配以點結尾的行

2 列提取命令   cut -d 「分隔符」 -f 提取列 檔名     如:cut-d ":" -f 1,3 /etc/passwd

more/etc/passwd | grep "/bin/bash" | cut -d ":" -f 1,3這裡cut後面就不需要加上檔名了

3   echo -e 「輸出內容」   -e  是表示格式化列印內容

4   條件測試    test -e 檔名 測試檔案是否存在,存在為真     [ -e 檔名 ] 注意:的左右兩側必須加空格 

例如test-e test.txt && echo yes || echo no

test -f 檔名 判斷是否是普通檔案#如果是檔案的話,返回0,若是目錄返回非0

test -d 檔名 判斷是否為目錄

test -b 檔名 判斷是否為塊裝置檔案

test -c 檔名 字元裝置檔案

test -r 檔名 判斷是否有可讀許可權

test -w 檔名 可寫

test -x 檔名 執行

test -s 檔名 判斷是否為非空白,有內容為真  

Linux Shell指令碼基礎

shell指令碼在處理自動迴圈或大的任務方面可節省大量時間,且功能強大。任何指令碼都可能有注釋,加注釋需要此行的第乙個字元為 直譯器對此行不予解釋。指令碼不是複雜的程式,它是按行解釋的。指令碼第一行總是以 bin sh開始,這段指令碼通知shell使用系統上的 bourne shell直譯器。指令碼...

Linux shell指令碼基礎

ls 列出目錄下的清單 cat 連線顯示檔案內容 less more 分頁顯示檔案內容,建議使用less,相比於more更方便 head 顯示檔案頭部,可指定行數,預設顯示10行 tail 顯示檔案尾部,可指定行數,預設顯示10行 file 顯示檔案型別 wc 檢視檔案或統計資訊 find 查詢檔案...

linux shell指令碼基礎 3

6.函式 function name 注意 必須在呼叫乙個函式之前先對它進行定義,不存在前向宣告 當乙個函式被呼叫時,指令碼程式的位置引數 1,2等 會被替換為函式的引數。這也是讀取傳遞給函式的引數的辦法。當函式執行完畢後,這些引數會恢復為它們先前的值。可以通過return命令讓函式返回數字值 注意...