1、查看本机支持的shell:more /etc/shells
$ more etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
2、定义变量:
变量名= 变量值
引用变量直接使用$var或者${var},后者使用更加严谨,一般是用来区分变量名和其他内容
3、执行命令
(1)反引号``,例如a = `ls`
$ a=`ls`
$ echo $a
restassured.csv test test1 test2 test.txt tongji.sh
(2) $()形式执行命令操作
$ a=$(ls)
$ echo $a
restassured.csv test test1 test2 test.txt tongji.sh
$ echo $(ls $(ls))
restassured.csv test.txt tongji.sh test: 0 0] 0]] abc.txt cat.txt file.txt file.txty test1: test2:
3、执行数学计算
$((a+b)),自动识别a和b的数值类型,如果是数字,就执行数学计算(加减乘除),如果是其他类型,就强制转换为数字0
$ a=1
$ b=abc
$ c=3
$ echo $((a+b))
1
$ echo $((a+c))
4
$ $((d=a+c))
$ echo $d
4
4、字符串处理
(1)掐头# 去尾$ 替换/
$ var=abcd
$ echo ${var#*c}
d
# 贪婪匹配,使用##
$ var=abcabc
$ echo ${var##*b}
c
$ var=abcabc
$ echo var=${var$b*}
abca
# 贪婪匹配,使用$$
$ var=abcabc
$ echo ${var$$b*}
a
$ var=abcabc
$ echo ${var/b/x}
axcabc
#贪婪替换 使用//
$ var=abcabc
$ echo ${var//bc/xx}
axxaxx
5、shell命令执行失败与否都会返回一个命令值,执行成功用0表示,执行失败则非零
$ echo a
a
$ echo $?
0
$ curl abcfdf
$ echo $?
6
6、算数判断符,文件判断符
[2 -eq 2]等于
[2 -ne 3]不等于
[3 -gt 2]大于
[3 -gt 3]大于等于
[3 -lt 4] 小于
[3 -le 3]小于等于
[-f file]判断一个文件是否是一个普通文件
[-d file]判断是否为一个目录
[-e file]判断一个文件是否存在
也可以用(())进行判断
((1==1),((1>=1)),((1<3))((abc==abc))
7、逻辑控制
for循坏,if else,while循环
$ if [ -f file];then echo file is a file;else file is not a file;fi
$ ss='aa bb cc dd'
$ for i in $ss;do echo $i;done
aa
bb
cc
dd
$ read x
7
$ echo $x
7
$ ls etc | while read line;do if [ -f etc/$line];then echo $line;fi;done
......
8、读写操作
file 写入文件 >>追加文件 read输入 <file重定向 |管道命令
$ ls /tmp > /tmp/tmp
$ echo change >> /tmp/tmp
$ read file < /tmp/tmp
$ ls tmp | grep pdf
9、内置环境变量
# 当前用户名
$ echo $USER
#当前用户主目录
$ echo $HOME
$ echo $~
#主机名
$ echo $HOSTNAME
#查看所有的环境变量
echo $
....
10、调用python语句
$ echo "print('hello,world')"|python
$ hello,world
11、通配符
*匹配任何字符
$ ls "*.log"|grep error
11、curl网络访问命令
$ curl --help|less
$ curl http://www.baidu.com/s?wd=appium
12、awk分割命令
接受命令输出,也接受文件输出
awk 'BEGIN{} {} END{}' file
$ x=123|456|789
$ echo $x | awk -F '|' '{print $2}'
456
13、 sed替换命令
sed -i(文件中替换不输出) s/old str/new str/g(全部替换,不加的话只针对第一个替换) file