⑴ linux sudo命令中的%sudo ALL=(ALL:ALL) ALL 括弧中的冒號表示什麼意思呢
(ALL:ALL)表示的是前一個表示用戶,後一個表示用戶所在群組,如test0 ALL=(test1:test2)的意思是,第一個ALL表示用戶test0可以登陸的主機,可以限定為localhost等,ALL表示允許所有來源;test0在執行sudo命令後,獲取到屬於test2群組的test1的操作許可權。最後一個ALL表示的是可以執行的指令,可以用命令的絕對路徑來限定可以執行的操作,ALL的話就是允許所有操作。
這個設置是debian版本裡面的visudo設置,可能跟centos,ubuntu其他的一些版本不太一樣
⑵ linux 的 man 下的方括弧 尖括弧 圓括弧還有省略號的意思
在方括弧內的表達式(「[」 和 「]」之間的字元)是可選的(寫命令時要去掉括弧)。
在尖括弧內的表達式(「[」 和 「]」之間的字元)是必須替換的表達式(而且要去掉括弧)。
省略號表示該選項可以單個或多個
以7z的參數為例:
7z <command> [<switches>...] <archive_name> [<file_names>...] [<@listfiles...>]
7z <命令行> [[選項]...] <檔案名稱(壓縮包名稱)> [<被壓縮的文件名>...] [<@文件列表(如txt文件中的文件列表)...>]
實例分析:
7z a -tzip -p111 archive.zip txt.txt #txt.txt文件壓縮為archive.zip,壓縮方式為zip,密碼為111
7z x -tzip -p111 archive.zip #解壓,密碼為111
a為命令,命令至少要有一個
-t /-p為選項(switch),可選0個或多個,zip和111分別為-t和-p的參數,中間不需要空格 選項(如-r)放前放後都行
⑶ Linux shell腳本中連接字元串的方法
在Linux shell腳本中,連接字元串的方法主要有以下幾種:
直接連接:
使用花括弧{}:
雙引號:
命令替換:
總結: 直接連接:var3=${var1}${var2} 使用花括弧{}:$value2=${value1}"=" 雙引號:echo "${var1}${var2}" 命令替換:result="Current date and time: $"
這些方法都可以在Linux shell腳本中用來連接字元串,根據具體需求選擇合適的方法即可。
⑷ linux shell ) 雙括弧運算符使用
估計很多朋友都感覺比較難以接受。特變邏輯運算符」[]」使用時候,必須保證運算符與算數 之間有空格。 四則運算也只能藉助:let,expr等命令完成。 今天講的雙括弧」(())」結構語句,就是對shell中算數及賦值運算的擴展。
使用方法:
語法:
((表達式1,表達式2…))
特點:
1、在雙括弧結構中,所有表達式可以像c語言一樣,如:a++,b--等。
2、在雙括弧結構中,所有變數可以不加入:「$」符號前綴。
3、雙括弧可以進行邏輯運算,四則運算
4、雙括弧結構 擴展了for,while,if條件測試運算
5、支持多個表達式運算,各個表達式之間用「,」分開
使用實例:
擴展四則運算
復制代碼
代碼如下:
#!/bin/sh
a=1;
b=2;
c=3;
((a=a+1));
echo $a;
a=$((a+1,b++,c++));
echo $a,$b,$c
運行結果:
sh testsh.sh
2
3,3,4
雙括弧結構之間支持多個表達式,然後加減乘除等c語言常用運算符都支持。如果雙括弧帶:$,將獲得表達式值,賦值給左邊變數。
擴展邏輯運算
復制代碼
代碼如下:
#!/bin/sh
a=1;
b="ab";
echo $((a1?8:9));
((b!="a")) echo "err2";
((a2)) echo "ok";
運行結果:
sh testsh.sh
9
err2
ok
擴展流程式控制制語句(邏輯關系式)
復制代碼
代碼如下:
#!/bin/sh
num=100;
total=0;
for((i=0;i=num;i++));
do
((total+=i));
done
echo $total;
total=0;
i=0;
while((i=num));
do
((total+=i,i++));
done
echo $total;
if((total=5050));then
echo "ok";
fi
運算結果:
sh testsh.sh
5050
5050
ok
有了雙括弧運算符:[[]],[],test 邏輯運算,已經let,expr 都可以拋到一邊了。