shell 是一个命令解释器 通俗的来说 就是把我们敲的命令翻译给操作系统
shell 分为图形界面shell 比如windows 的桌面,以及命令行shell
我们通常说的shell 指的是linux 下的命令行式的shell ,通常指的是linux下的bash
查看当前系统的shell 类型 echo $SHELL 查看当前系统环境支持的shell
cat /etc/shells shell脚本
#!/bin/bash #这是单行注释 楼上是声明解释器 echo ‘hello world’ 单行注释 除了首行的# 号不是注释 其他所有行的# 都是注释
多行注释 :<<!..! 和 :<<字符…字符 shell脚本执行 bash /path/to/scipt-name 或 /bin/bash /path/to/script-name
1.脚本命名见名知意,文件后主是.sh
2.脚本文件首行必须是脚本解释器
3.脚本文件解释器后面要有脚本基本信息等内容
4.脚本文件中尽量用英文注释 写脚本的流程:
创建目录,集中存放脚本文件;
编写脚本内容;
vi 脚本名.sh ##编辑脚本文件 #!/bin/bash ##声明解释器 #注释内容 ##可以注释些信息,方便后续查看 命令及控制语句 ##脚本的核心内容 :wq! ##保存文件赋予脚本文件执行权限:chmod +x 文件
运行脚本;
脚本的声明:声明使用哪种解释器,cat /etc/shells文件中的所有解释器都可以使用,解释器可安装;
执行脚本的方式:
路径执行(必须有执行权限);
- 相对路径 - 绝对路径source 脚本的绝对路径或相对路径(不需要执行权限);
sh -x 脚本的路径(不需要执行权限),并且会显示命令和输出结果; 重定向:改变了标准的输入输出状态;
>:重定向输出到某个位置,替换原有文件的所有内容; >>:重定向追加输出到某个位置,在原有文件的末尾添加内容;<:重定向输入某个位置的文件;
2>:重定向错误输出;
2>>:重定向错误追加输出到文件的末尾;
&>:混合重定向输出,正确错误的输出结果都会输出;
1,2>:同上;
管道符:将|前的命令的输出结果作为管道|后的命令的输入;
echo命令:返回结果并显示; 概述:变量是一个筐,筐里装的是变量的值,只需要将筐带走,那么值也就随之带走,值为可变;
优点:简化输入,使脚本内容更加清晰,提高脚本的适用性;
分类:自定义变量、环境变量、位置变量、预定义变量;
自定义变量的定义:
a.定义变量:变量名=变量值
b.查看变量:echo $变量名
c.使用变量:在命令中直接使用 $变量名
d.取消变量:unset 变量名
e.变量的作用范围:
局部变量:变量名=变量值,此种变量只能在当前bash中有效; 全局变量:export 变量名=变量值,此种变量在当前bash和当前子bash中有效