標籤:version require please system 使用者
#/bin/sh 間接修改連接埠
#auther:qiruyi
#date:2016-08-05
#system:centos6.5
#version:1.0
#require root to run this script. //使用root使用者
if [[ "$(whoami)" = "root" ]];
then echo "root is run"
else
echo "please su root to run this script"
fi
\cp /etc/ssh/sshd_config /etc/ssh/sshd_config.$(date +"%F"-$RANDOM)
sed -i ‘s%#Port 22%Port 22%‘ /etc/ssh/sshd_config
sed -i -e ‘/Port 22/a\Port 1222‘ /etc/ssh/sshd_config //追加一個連接埠1222
#sed ‘3a-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT ‘ -i /etc/sysconfig/iptables //追加一個連接埠1222
/etc/rc.d/init.d/sshd restart
if [ `lsof -i tcp:1222 |wc -l` -eq 3 ];
then
echo "ssh修改連接埠成功"
sed -i ‘s%Port 22%#Port 22%‘ /etc/ssh/sshd_config
else
echo "ssh修改連接埠不成功"
fi
#保證安全,查看/etc/ssh/sshd_config後 手動重啟/etc/rc.d/init.d/sshd restart 後生效
反引號``
這個東西的用法,我百度了一下,和$()是一樣的。在執行一條命令時,會先將其中的 `` ,或者是$() 中的語句當作命令執行一遍,再將結果加入到原命令中重新執行
另外,從網上摘錄的區別如下:
A,()只是對一串命令重新開一個子shell進行執行
B,{}對一串命令在當前shell執行
C,()和{}都是把一串的命令放在括弧裡面,並且命令之間用;號隔開
D,()最後一個命令可以不用分號
E,{}最後一個命令要用分號
F,{}的第一個命令和左括弧之間必須要有一個空格
G,()裡的各命令不必和括弧有空格
H,()和{}中括弧裡面的某個命令的重新導向隻影響該命令,但括弧外的重新導向則影響到括弧裡的所有命令
兩個括弧(()),是代表算數擴充,就是對其包括的東西進行標準的算數計算——注意,不能算浮點數,如果需要算浮點數,需要用bc做。
至於中括弧[ ],感覺作用就是用來比較的。比如放在if語句裡面,while語句裡面,等等。
這裡引出來[..]和[[…]]的區別:(摘自網上,實測證實):使用[[ ... ]]條件判斷結構, 而不是[ ... ], 能夠防止指令碼中的許多邏輯錯誤. 比如,&&, ||, <, 和> 操作符能夠正常存在於[[ ]]條件判斷結構中, 但是如果出現在[ ]結構中的話, 會報錯。
修改centos預設的22連接埠腳步