1 | sh
|
2 | ===
|
3 |
|
4 | shell命令解释器
|
5 |
|
6 | ## 补充说明
|
7 |
|
8 | **sh命令** 是shell命令语言解释器,执行命令从标准输入读取或从一个文件中读取。通过用户输入命令,和内核进行沟通!Bourne Again Shell (即bash)是自由软件基金会(GNU)开发的一个Shell,它是Linux系统中一个默认的Shell。Bash不但与Bourne Shell兼容,还继承了C Shell、Korn Shell等优点。
|
9 |
|
10 | ### 语法
|
11 |
|
12 | ```shell
|
13 | bash [options] [file]
|
14 | ```
|
15 |
|
16 | ### 选项
|
17 |
|
18 | ```shell
|
19 | -c string:命令从-c后的字符串读取。
|
20 | -i:实现脚本交互。
|
21 | -n:进行shell脚本的语法检查。
|
22 | -x:实现shell脚本逐条语句的跟踪。
|
23 | ```
|
24 |
|
25 | ### 实例
|
26 |
|
27 | 使用-x选项跟踪脚本调试shell脚本,能打印出所执行的每一行命令以及当前状态:
|
28 |
|
29 | ```shell
|
30 | [root@AY1307311912260196fcZ satools]# sh -x check_ssh_login.sh
|
31 | + DEFINE=30
|
32 | + cat /var/log/secure
|
33 | + awk '/Failed/ {++ip[$(NF-3)]} END {for (i in ip) print i"="ip[i]}'
|
34 | ++ cat /root/satools/black.txt
|
35 | + for i in '`cat /root/satools/black.txt`'
|
36 | ++ echo 121.42.0.16=1427
|
37 | ++ awk -F= '{print $1}'
|
38 | + IP=121.42.0.16
|
39 | ++ echo 121.42.0.16=1427
|
40 | ++ awk -F= '{print $2}'
|
41 | + NUM=1427
|
42 | + '[' 1427 -gt 30 ']'
|
43 | + grep 121.42.0.16 /etc/hosts.deny
|
44 | + '[' 1 -gt 0 ']'
|
45 | + echo sshd:121.42.0.16
|
46 | + echo vsftpd:121.42.0.16
|
47 | + for i in '`cat /root/satools/black.txt`'
|
48 | ++ echo 121.42.0.72=276
|
49 | ++ awk -F= '{print $1}'
|
50 | + IP=121.42.0.72
|
51 | ++ awk -F= '{print $2}'
|
52 | ++ echo 121.42.0.72=276
|
53 | + NUM=276
|
54 | + '[' 276 -gt 30 ']'
|
55 | + grep 121.42.0.72 /etc/hosts.deny
|
56 | + '[' 1 -gt 0 ']'
|
57 | + echo sshd:121.42.0.72
|
58 | + echo vsftpd:121.42.0.72
|
59 | ```
|
60 |
|
61 |
|