1.read
从键盘读入变量完成赋值(可使脚本产生交互模式)
read [-p "提示信息"] [-t 秒数] 变量名 #-p提示需要输入的内容 -t为超过此时间自动执行后续代码
2.终端显示控制
stty -echo //关闭终端输出(输入字符无显示)
stty echo //恢复终端输出
3.export
局部变量:新定义的变量默认只在当前Shell环境中有效,无法在子Shell环境中使用
全局变量:全局变量在当前Shell及子Shell环境中均有效
export 变量名 //发布全局变量
export -n 变量名 //取消全局发布
export 变量名=变量值 //新定义变量并发布全局
4.expr运算工具
expr 整数1 运算符 整数2
例:
expr $a + $b
expr $a - $b
expr $a * $b //乘法 \ : 转意符号
expr $a / $b
expr $a % $b //取余数
5.$[]算式替换
$[] 等同于 $(())
[
整
数
1
运
算
符
整
数
2
]
/
/
乘
法
无
需
转
意
,
运
算
符
两
侧
可
以
无
空
格
,
引
用
变
量
可
以
省
略
[整数1运算符整数2] //乘法无需转意,运算符两侧可以无空格,引用变量可以省略
[整数1运算符整数2]//乘法无需转意,运算符两侧可以无空格,引用变量可以省略符号
6.let 变量的自增减等(变量不存在时可以实现创建变量)
使用$[]或者let命令可
简写 完整
i++ i=i+1
i-- i=i-1
i+=2 i=i+2
i-=2 i=i-2
i*=2 i=i*2
i/=2 i=i/2
i%=2 i=i%2
7.bc 实现小数运算
bc //进入交互运算界面 scale=n ,可以约束小数位n为位数
echo “
a
∗
11.22
"
∣
b
c
/
/
管
道
给
b
c
实
现
非
交
互
e
c
h
o
"
s
c
a
l
e
=
3
;
a*11.22" | bc //管道给bc实现非交互 echo "scale=3;
a∗11.22"∣bc//管道给bc实现非交互echo"scale=3;a*11.22” | bc //多表达式
8.中断与退出
break //跳出当前所在的循环体,执行循环体后的语句
continue //跳过当前循环体内余下的命令,执行下一个循环
exit //退出脚本,默认返回值为0
- netstat -ntulp //显示本机正在使用的端口信息
netstat -atn //查看本机所有连接的状态
10.sort 串联排序所有指定文件并将结果写到标准输出
sort -n //升序排序
sort -nr //降序排序(r:反向排序)
11.ab 压力测试工具,httpd内置命令
ab -c 1 -n 1000 ip地址/ //c:访问人数 n:访问次数 ip地址后有’/’
12.uptime
查看top的第一行(主要用来查看CPU负载)
查看设备运行时间
13.free 查看内存信息
14.rpm -qa 查看已安装的所有软件包
15.clear 清空终端信息
16.EOF Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。
命令<<EOF
指令1
指令2
…
EOF
17.curl 命令行访问web(可用于测试)
-
ss
ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
ss -ntulp //类似与 netstat -ntulp
ss命令可以查看系统中启动的端口信息,该命令常用选项如下:
-a显示所有端口的信息
-n以数字格式显示端口号
-t显示TCP连接的端口
-u显示UDP连接的端口
-l显示服务正在监听的端口信息,如httpd启动后,会一直监听80端口
-p显示监听端口的服务名称是什么(也就是程序名称)
注意:在RHEL7系统中可以使用ss命令替代netstat命令,功能一样,选项一样 -
ssh 192.168.4.1 poweroff //发送指令(写在脚本中时需要无密码验证),并将输出显示到当前终端上
ssh-keygen -N ‘’ -f /root/.ssh/id_rsa //非交互生成密钥文件
-
echo -e “\033[$1m$2\033[0m” //改变输出字体颜色,$1为颜色数值,$2为输出内容
21.ping -c 3 -i 0.2 -W 1 主机ip //-c指定次数 -i指定间隔 -W指定失败返回结果的时间