一、文件許可權
在Linux系統中,每個文件都有9位許可權,分別是owner、group、other。每一位許可權用r、w、x這三個字母表示,分別對應讀取、寫入和執行。在shell中,使用chmod命令改變文件的許可權,比如:
chmod 777 filename.sh
其中,7表示rwx,具有最高許可權,即owner、group和other都可以讀、寫、運行該文件。但是,我們通常不會賦予一個文件最高許可權,因為這太危險了。比如,如果有人惡意修改了這個文件,那麼所有用戶都可以執行該文件,這可能導致系統崩潰或被黑客攻擊。
因此,對於一個shell文件,我們通常選擇以下配置:
chmod 755 filename.sh
這個配置表示owner可以讀寫並執行該文件,group和other只有執行許可權。這是一個安全的許可權配置,可以保證該文件的安全性。
二、常見操作
shell文件可以實現各種各樣的操作,比如文件管理、數據處理、服務管理等。在此我們介紹一些常見操作:
1. 編輯文件
我們可以使用vi命令編輯一個shell文件,比如:
vi filename.sh
這會打開一個vi編輯器,可以直接在裡面編寫shell腳本。
2. 運行文件
在Linux系統中,我們可以通過添加./來運行一個shell文件,比如:
./filename.sh
需要注意的是,當我們運行一個shell文件時,需要先給該文件賦予執行許可權,否則會提示沒有許可權。
3. 後台運行文件
有時候,我們需要讓一個shell文件在後台運行,不再佔用當前終端。這時可以使用nohup和&符號,比如:
nohup ./filename.sh &
其中,nohup表示即便關閉當前終端,該文件也會一直運行下去;&符號表示將該文件放到後台運行,不再佔用當前終端。這樣,即使我們關閉終端,該文件也會一直運行下去,直到完成任務或被手動停止為止。
4. 殺死進程
如果我們需要停止一個後台運行的shell文件,可以使用kill命令,比如:
ps -ef | grep filename.sh kill pid
其中,第一行的ps命令表示查找當前系統中運行的所有進程,並使用grep過濾掉與該文件相關的進程;第二行的kill命令表示停止pid對應的進程。
三、shell文件編寫要點
編寫shell文件時,需要注意以下幾點:
1. shebang標識
shell文件第一行必須以#!開頭,指定該文件使用的解釋器,比如:
#!/bin/sh
這表示該文件使用的是/bin/sh解釋器。
2. 變數和參數
在shell中,使用$符號來表示變數和參數,比如:
name="John" echo "My name is $name"
在這個例子中,$name表示變數name的值John,echo命令會輸出「My name is John」。
3. 函數
在shell中,使用function關鍵字來定義函數,比如:
function sayHello { echo "Hello World!" }
該函數的定義主體用{}括起來;函數可以在文件中任意位置調用。
4. 條件判斷
shell中常見的條件判斷語句有if、case和test等,比如:
if [ $num -eq 0 ]; then echo "num is zero" fi
該代碼表示,如果$num的值等於0,則會輸出「num is zero」。
5. 循環
循環是shell編寫中常見的語句之一。shell中有for、while、until等多種循環語句可供選擇,比如:
(1)for語句
for var in item1 item2 ... itemN do command1 command2 ... commandN done
該代碼表示,將item1到itemN中的每個元素賦值給變數var,然後執行command1到commandN中的命令。比如:
for i in 1 2 3 4 5 do echo "The value of i is: $i" done
這段代碼將會輸出:
The value of i is: 1 The value of i is: 2 The value of i is: 3 The value of i is: 4 The value of i is: 5
(2)while語句
while [ condition ] do command1 command2 command3 ... commandN done
該代碼表示,當條件滿足時,執行command1到commandN中的命令。比如:
num=0 while [ $num -le 5 ] do echo "The value of num is: $num" num=$((num+1)) done
這段代碼將會輸出:
The value of num is: 0 The value of num is: 1 The value of num is: 2 The value of num is: 3 The value of num is: 4 The value of num is: 5
總結
shell文件是Linux系統中必不可少的一部分,它可以實現各種各樣的操作。在編寫shell文件時,需要注意文件許可權、變數和參數、函數、條件判斷和循環等要點,才能寫出高效、安全、穩定的shell文件。
原創文章,作者:HIMQZ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/369513.html