快取指令
基本語法
!/bin/sh (或者是 #!/bin/bash) #宣佈shell指令
$? :表示上一個指令的離開狀況,一般指令正常離開會傳回 0。不正常離開則會傳回 1、2 等數值。
$1 :表示輸入的第一個參數,$2 則為第二個參數,依此類推。
$0 :shell script的檔名。
$@ :即代表 $1, $2,....直到所有參數結束。也就是說 $@ 代表了 “$1” “$2” “$3”….。
$* :所有參數無間隔的連在一起,成為單一個參數。也就是說 $* 代表了 “$1 $2 $3…”
使字串中包含',可用反斜線 \ 跳脫。
雙引號""中若含有變數$var,會先將變數轉換成其實際的值,單引號''則會將$var當成是一個值,而不會作轉換動作。
echo "你們輸入的年齡是 $Y_AGE + $F_AGE 歲"
echo "你們輸入的年齡是 $((Y_AGE + F_AGE)) 歲"
#!/bin/bash
read -p "Please enter your age:" Y_AGE
read -p "Please enter your friend's age:" F_AGEsum1=$Y_AGE + $F_AGE
sum2=`expr $Y_AGE + $F_AGE`
sum3=$((Y_AGE + F_AGE))echo "你們輸入的年齡是 $Y_AGE + $F_AGE 歲"
echo "你們輸入的年齡是 $((Y_AGE + F_AGE)) 歲"
#Bash Shell 中內建原生不支援運算式,所以無法顯示
echo "你們輸入的年齡是 $sum1 歲"
echo "你們輸入的年齡是 $sum2 歲"
echo "你們輸入的年齡是 $sum3 歲"
設定使用ssh設定來啟用sftp
Match需要放置在UsePAM後面
Match user user名稱
ChrootDirectory /srv/ftp #更改根目錄
AllowTcpForwarding yes #可以使用ssh tcp forwarding
ForceCommand “強制指令”
使用特殊ip
Match User ansible,backup,support Address *,!176.x.x.x #加!代表不要
#搭配hostname
Match user 使用者 Host “hostname”
#使用ip
Match address IP位置
#使用port
Match Localport 埠位
ex:
Match User user2, LocalPort 2201DenyUsers user2
備註:可以使用正則表示法
使用服務端可以使用的port位
ListenAddress hostname|address
ListenAddress hostname:port
ListenAddress IPv4_address:port
ListenAddress [hostname|address]:port
使用AllowUsers 跟AllowGroups或denyUsers denyGroups來限制使用者可不可以使用
ssh模式(可以限制帳號、ip或網域名稱等等
AllowUsers <user1> <user2> <user3>
AllowGroups <group>
DenyUsers *
DenyGroups no-sshDeny
Users username@192.168.1.*
shell 運算
n=1
m=2
echo $n+$m
結果:
1+2 #因為shell預設不做運算
n=1
m=2
echo $((n+m))
結果
3
環境變數
現在狀況,重開機或重登入後部一定會一樣
echo $PATH #顯示當下指令路徑
env #顯示當前使用者變數
set #顯示當前shell變數
export #當前使用者shell變數
a=asd #設定當前shell變數
export a=asd #設定當前使用者shell變數
unset a #取消變數
readonly a #設定只讀環境變數
永久環境變數更改
新增至/etc/profile #全部使用者
新增至$HOME/.profile #個別使用者
新增至/etc/bach.bachrc #更改全部使用bash shell
新增至$HOME/.bashrc #更改個別使用bash shell
更改完畢後需使用source 或 . 使起生效,如source /etc/profile 或 ./etc/profile
指令結果
2>/dev/null (忽略錯誤結果)
掃毒
安裝
apt install clamav clamdscan clamav-daemon clamav-freshclam
clamscan -r --quiet -l (掃描log檔案路徑) --exclude-dir (不掃描資料夾路徑) (要掃描的地方)
clamdscan - < (要掃描的檔案路徑名單)
cat 要掃描的檔案路徑名單)| clamdscan -
clamdtop 類似htop模式
補充:
回傳值0(沒有病毒)1(有病毒)2(有錯誤)
clamscan 與 clamdscan差異
clamscan較慢(單核運作)
clamdscan較快且常駐(多核運作、可用clamdtop看運作狀況)
背景執行
指令完後加"&"
多指令
1||2 (1成功就不執行2)
1&&2 (1成功就執行2)
1;2 (不管有無成功持續執行)
掛載遠端資料
sudo mount -t cifs -o username=<win_share_user>,password=<win_share_password> //WIN_SHARE_IP/<share_name> /mnt/win_share
使用fstab掛載
(來源路徑) (掛載地方) cifs defaults,uid=(本地使用者權限),gid=(本地群組權限),username=(帳號),password=(密碼),iocharset=utf8 0 0
EX:1.fstab無法掛載遠端資料夾時可以修改smb版本看看,加入vers={1.0:2.0:3.0}
2.如果mount路徑有空格需要更換成\040