bash特性
- 命令补全机制
- 目录补全机制
- 返回命令的执行状态结果
![]()
成功的结果都是0,失败的结果却各不相同
执行ls /etc
输出执行状态 echo $?

引用命令的输出结果

-
快捷键
![]()
-
命令行展开
~ 自动展开为用户的家目录,或者是指定用户的家目录
{} 可以承载一个以逗号分隔的路径列表,并能够将其展开为多个路径
/tmp/{a,b} 表示的就是 tmp/a tmp/b
还可以接收以 .. 分隔的两个量 {1..10} 代表的就是从1到10 -
hash命令
初始hash
![]()
执行几个命令
![]()
查看hash表
![]()
hash是内嵌命令
删除指定的已hash命令
![]()
清空
![]()
![]()
-
变量
![]()
![]()





变量的使用:

不适用{}来包含变量名,echo在解释的时候会把整体当成一个变量,
echo一个不存在的变量,返回结果空,
使用{},echo会将变量名解释,在拼接字符串,打印出变量代表的值
- 多命令执行
![]()
![]()
![]()
查看环境变量

- shell脚本编程
![]()
示例:

执行

再次执行

shell第一条命令对于已存在的用户,就执行失败了,所以需要对脚本增加判断容错

或运算,id判断用户是否存在,存在就不执行后面的useradd操作了,没有的话才执行

注意
在shell脚本中除了第一行的shebang。其他以#开头的语句都会被注释,在shell脚本中的空行在解释时也会被忽略,如果要输出空行,需要添加一echo,echo 就输出一个空行
- shell的按照登录类型分类:
![]()
环境变量:
profile

bashrc

仅管理员可以修改全局配置文件
环境的导入顺序:

















浙公网安备 33010602011771号