一、shell概述
1.Shell是什么
shell是一个命令行解释器,他为用户提供了一个向linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动、挂起、停止甚至编写一些程序
shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。shell是解释执行的脚本语言,在shell中可以直接调用linux系统命令
2.Shell分类
1)Bourne Shell:从1979起Unix就开始使用Bourne Shell,Bourne Shell的主文件名为sh
2)C Shell:C Shell主要在BSD版的Unix系统中使用,其语法和C语言非常类似,所以叫C Shell
Shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash(linux中的标准shell)、psh、zsh;C 家族主要包括:csh(unix中主要使用的shell)、tcsh
TIP:可以使用命令:echo ¥SHELL来输出当前系统使用的是什么shell
3)Bash:Bash与sh兼容,现在使用的linux就是使用Bash作为用户的基本Shell
3.Linux支持的Shell
二、脚本执行方式
1.echo输出命令
echo [选项] [输出内容]
选项:
-e:支持反斜线控制的字符转换
[root@localhost ~]# echo -e “\e[1;31m你好\e[0m”
#使用红色字体输出你好
#30m=黑色,31m=红色,32m=绿色,33m=黄色,34m=蓝色,35m=粉红,36m=青色,37m=白色
上面这行示例代码中\e代表颜色,[1代表开启眼色,31m代表我要使用红色,\e[0m代表关闭颜色
2.第一个脚本
1)使用命令“vi hello.sh”创建一个脚本
2)文本中输入:”#!bin/bash”(做一个声明)
3)正文输入:echo –e “Hello World!”,然后保存退出
3.脚本执行
1)赋予执行权限,直接运行
chmod 755 hello.sh
./hello.ssh
2)通过Bash调用执行脚本
bash hello.sh
三、bash的基本功能
1.命令别名与快捷键
alias
#查看系统中所有的命令别名
alias 别名=’原命令’
#设定命令别名(需要注意的是只是用命令行增加别名的话只是临时使用,相当于windows当中的临时环境变量)
1)别名永久生效
vi ~/.bashrc
#写入环境变量配置文件(需要注意的是写入后是重启设备后才会生效,如果需要直接生效需要再加一条命令source .bashrc相当于更新一下那么就可以直接生效了)
2)删除别名
unalias 别名
#删除别名(只是删除临时别名)
3)命令生效顺序
第一顺位执行用绝对路径或相对路径执行的命令
第二顺位执行别名
第三顺位执行bash的内部命令
第四顺位执行按照¥PATH环境变量定义的目录查找顺序找到的第一个命令
4)常用快捷键
2.历史命令
1)历史命令
history [选项] [历史命令保存文件]
选项:
-c:清空历史命令
-w:把缓存中的历史命令写入历史命令保存文件”~/.bash_history”
history看到的是所有历史命令,.bash_history中的历史命令是系统退出时候自动写入的。
需要注意的是历史命令会默认保存1000条,可以在环境变量配置文件/etc/profile中进行修改
2)历史命令的调用
使用上下箭头调用以前的历史命令
使用”!n”重复执行第n条历史命令
使用”!!”重复执行上一条命令
使用”!字符串”重复执行最后一条以该字符串开头的命令
3)命令与文件补全
在bash中,命令与文件补全是非常方便与常用的功能,我们只要在输入命令或文件时,按下Tab键就会进行自动补全
3.输出重定向
1)标准输入输出
标准输出重定向将命令的结果保存在文件中(只要命令的结果有输出就会保存)
错误输出重定向(注意符号两边没有空格)
ls &>/dev/null只执行命令,不保存也不显示运行结果,/dev/null可以当作是垃圾回收站
命令 >> 文件 2>&1
以追加的方式把正确输出和错误输出都保存到同一个文件中去1
命令 &>>文件
以追加的方式把正确输出和错误输出都保存到同一个文件中去2
命令>>文件1 2 >>文件2
把正确的输出追加到文件1中,把错误的追加到文件2中
3)输入重定向
wc [选项] [文件名]
ctrl+d退出
使用wc统计文件行数、单词数、和字节数,也可以不用中间的那个<符号也可以统计
4.管道符
1)多命令顺序执行
多个命令顺序执行
逻辑与
逻辑或
TIP:可以通过类似:ls && echo yes || echo no这样的方式来判断命令是否有误
2)管道符
命令1 | 命令2
#命令1的正确输出作为命令2的操作对象
例如:
ls –l /etc | more来分屏查看命令执行结果
netstat –an | grep ESTABLISHED来监听我的服务器使用情况
netstat –an | grep ESTABLISHED | wc –l 来查看有多少人在使用我们的服务器
5.通配符
1)通配符
例如:
ls test* 列出test开头的所有文件
主要匹配文件名或者目录
2)Bash中其他特殊符号
现在我邀请你进入我们的软件测试学习交流群:【746506216
】,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!