shell脚本运行方式
shell脚本权限:chmod +x test.sh
- ./test.sh
- /bin/sh test.sh
创建shell脚本
vim test.sh
常用命令(文件/网络/性能)
文件:mkdir rmdir cat vim rm -rf mv
网络:netstat -t -u
性能:tcp(实时)、ps(静态)
管道
|管道符,左边命令的输出作为右边命令的输入
正则表达式
正则是记录文本规则的代码
grep
根据用户指定的模式,对目标文本进行过滤,显示对模式匹配到的行
命令形式:grep[option] pattern [file]
sed
流编辑器,一次处理一行内容(原文件不会被改变)
加-i参数会修改原文件:sed -i 's/root/hello/g' test.txt
-g 全局修改
-a 行后面增加:sed '2a new line' test.txt
-i 行前面增加:sed '2i new line' test.txt
awk
命令形式:awk 'pattern action' file
bash编程语法
a=10
打印变量:echo $a
设置变量为已读:readonly a
删除变量:unset a
if语句:
if [ $a -eq $b ]; then echo "equel"; elif [ $a -gt $b ]; then echo "small"; elif [ $a -lt $b ]; then echo "big"; fi
for语句:
for loop in 1,2,3
do
echo $loop
done
while语句:
int=1
while(($int<=5))
do
echo $int
let "int++"
done
for和while区别是for以空格区分,while以行区分
bash文件参数传递
#!/bin/bash
echo $1,$2,$3
echo "文件名"$0
echo "参数数量"$#
echo "all "$*
echo "return "$?
bash运算
#!/bin/bash
a=10
b=20
echo `expr $a + $b`
echo `expr $a - $b`
echo `expr $a \* $b`
echo `expr $a / $b`
linux进阶命令
curl命令
curl www.baidu.com 默认发送get请求
curl -d "login=1234" www.baidu.com -d为post请求
curl -X POST www.baidu.com -X指定请求方法
curl -v www.baidu.com -v查看请求全过程
curl -o www.baidu.com -o保存响应的内容
curl -x 127.0.0.1:8888 www.baidu.com -x增加代理
jq命令(json提取器)
echo '{"a":10,"b":20}'| jq '.' 提取所有的值
echo '{"a":10,"b":20}'| jq '.a' 提取a
echo '{"a":10,"b":20,"c":30}'| jq '[.a,.b.c]' 重组