标签:
51cto课程学习整理 http://edu.51cto.com/course/course_id-963.html
#!/usr/bin/expect //非交互式
env 或者 set //查看用户环境变量
source 或者 . 执行脚本能把子shell变量传给父shell
脚本规范
1) #!/bin/bash
#Date: 2016-1-1
#Author: Created by mayuansheng
#Mail: xxx.@163.com
#Function: This script function is ...
#Version: 1.1
2)不使用中文
3)以.sh为扩展名
4)括号成对出现
5)流程控制一次写完
if[];then
fi
6)缩进
环境变量四个位置: .bashrc .bash_profile /etc/profile /etc/profile.d/
设置环境变量
1)export variable = value
2)variable = value ; export variable
3)declare -x variable = value
unset variable //取消变量
$?返回值
1)0 成功,非0失败
2)2 权限拒绝
3)1~125 脚本命令、系统命令或参数传递错误
4)126 找到该命令,但是无法执行
5)127 未找到要运行的命令
6)>128 命令被系统强制结束
$0 //当前脚本 文件名
$$ echo "$$" >m.pid //当前shell脚本进程号(PID)
$* //所有参数
$# //参数总个数
$! //执行上一个指令的PID
$@ //这个程序的所有参数
$_ //最后一个参数
$*和$@区别
$* "$1$2$3" 一个字符串
$@ "$1" "$2" "$3" 单独字符串
shift 降变量 $2 -> $1 $3 -> $2 ...
字符串截取
# 前端匹配删除 m = mayuansheng666asd ${m#ma} => yuansheng666asd
% 后端匹配删除 m = mayuansheng666asd ${m%asd} =>mayuansheng666
数值计算
1)echo $((1+2))
2)let veriable = 1+2;echo $variable
3)expr 1"空格"+"空格"2
4)bc //计算器
5)echo $[1+2]
查看字符串长度
m = mayuansheng666asd
1)echo ${#m}
2)echo $(expr length "$m")
1+2+...+100 seq -s "+" 100 | bc // -s 指定分隔符
[]用 -a
[[]]用 &&
. /etc/init.d/functions //加载函数库 "点"后有空格
action "nginx is stopped" /bin/true
nmap ip地址 -p 111 | grep open | wc -l //测试网站,其结果可以用来比较进行判断
输出字体有颜色
30-37
1) echo -e "\033[30m black \033[0m"
2) echo -e "\E[1;31m red \E[0m"
while 读文件三种方式
1)exec < FILE
while read line
do
done
2)cat FILE_PATH | while read line
do
done
3)while read line
do
done<FILE
seq -w 10 //输出01 02 03..10 补0对齐
数组
1)array = (value1 value2 value3...)
echo ${array[*]}
echo ${#array[*]}
2)array = ([1]=one [2]=two [3]=three)
3)array[0] = a array[1] = b
sh (-nvx) script.sh //脚本调试
ping -c2 10.0.0.$n > /dev/null 2>&1 //判断ip在线
awk ‘{print $1}‘ access.log | grep -v "^$" | sort | uniq -c //用于日志判断用户尝试登陆次数
iptables -I INPUT -s ip地址 -j DROP //-I 在第一行封杀
标签:
原文地址:http://www.cnblogs.com/mayuansheng/p/5691155.html