修改centos默认的22端口脚步

#!/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语句里面,等等。
这里引出来[..]和[[…]]的区别:(摘自网上,实测证实):使用[[ ... ]]条件判断结构,而不是[ ... ],能够防止脚本中的许多逻辑错误. 比如,&&,||,<,和> 操作符能够正常存在于[[ ]]条件判断结构中,但是如果出现在[ ]结构中的话,会报错。

相关文章

linux下开机自启: 在/etc/init.d目录下新建文件elasticsear...
1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以...
最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用...
ASP.NET Core应用程序发布linux在shell中运行是正常的。可一...
设置时区(CentOS 7) 先执行命令timedatectl status|grep &...
vim&#160;/etc/sysconfig/network-scripts/ifcfg-eth0 B...