sh命令是shell命令语言解释器,执行命令从标准输入读取或从一个文件中读取。通过用户输入命令,和内核进行沟通!
bourne again shell (即bash)是自由软件基金会(gnu)开发的一个shell,它是linux系统中一个默认的shell。bash不但与bourne shell兼容,还继承了c shell、korn shell等优点。
语法格式
sh [参数]
常用参数
-c | 命令从-c后的字符串读取 |
-i | 实现脚本交互 |
-n | 进行shell脚本的语法检查 |
-x | 实现shell脚本逐条语句的跟踪 |
参考实例
跟踪脚本调试shell脚本,能打印出所执行的每一行命令以及当前状态:
[root@coonote ~]# sh -x check_ssh_login.sh
define=30
cat /var/log/secure
awk '/failed/ { ip[$(nf-3)]} end {for (i in ip) print i"="ip[i]}'
cat /root/satools/black.txt
for i in '`cat /root/satools/black.txt`'
echo 121.42.0.16=1427
awk -f= '{print $1}'
ip=121.42.0.16
echo 121.42.0.16=1427
awk -f= '{print $2}'
num=1427
'[' 1427 -gt 30 ']'
grep 121.42.0.16 /etc/hosts.deny
'[' 1 -gt 0 ']'
echo sshd:121.42.0.16
echo vsftpd:121.42.0.16
for i in '`cat /root/satools/black.txt`'
echo 121.42.0.72=276
awk -f= '{print $1}'
ip=121.42.0.72
awk -f= '{print $2}'
echo 121.42.0.72=276
num=276
'[' 276 -gt 30 ']'
grep 121.42.0.72 /etc/hosts.deny
'[' 1 -gt 0 ']'
echo sshd:121.42.0.72
echo vsftpd:121.42.0.72