#007 bash 特性
程序员文章站
2022-05-11 11:12:45
...
bash 特性
补全
Tab键可以
* 命令补全
* 路径补全
引用
* 强引用:’ ’
* 不会转换$var变量值
* 弱引用:“ ”
* 转换$var变量值
* 命令引用:` `
* 执行引号内命令
别名
* alias:查看当前系统别名
* alias COMMAND=‘alias command’:设置别名,仅对当前shell生效
* 修改配置文件中的别名:~/.bashrc,对用户生效
快捷键:
* Ctrl + a:眺至行首
* Ctrl + e:眺至行尾
* Ctrl + u:删除光标前内容
* Ctrl + k:删除光标后内容
* Ctrl + l:清屏 == clear
命令历史
保存用户提交执行过的命令
history
* 定制history功能,通过环境变量实现,查看:echo $HISTFILE
* HISTSIZE:命令历史所能保存的条数
* HISTFILE:持久保存命令历史,意味着下次登录shell能查找历史命令
* .bash_history / .zsh_history
* HISTFILESIZE:命令历史文件的大小
* 更多选项:man history
* 调用上一条命令的最后一个参数:
* 快捷键:ESC + .
* 字符串:!$
* 控制命令历史的方式:
* 环境变量:HISTCONTROL
* ignoredups:忽略重复的命令
* ignorespace:忽略以空白字符开头的命令
* ignoreboth:以上两者同时生效
* 修改变量的值:
* NAME=‘value'
* 这种修改仅对当前shell有效
hash 缓存
系统上有相应的数据库系统保存此前键入过的命令,当我们再次使用某些命令时,不用每次都查找PATH环境变量里对应的执行命令的文件。
* 加速命令查找机制
* 缓存此前命令的查找结果:Key-Value
glob通配符
文件名通配(整体文件名匹配,而非部分)
* 匹配模式:元字符
* :匹配任意长度的任意字符
? :匹配任意单个字符
[ ] :匹配指定范围内的任意单个字符
[a-z],[A-Z],[0-9],[a-z0-9]
[[:upper:]]:所有大写字母
[[:lower::]]:所有小写字母
[[:alpha:]]:所有字母
[[:digit:]]:所有数字
[[:space:]]:所有空白字符
[[:punct:]]:所有标点符号
[[:alnum:]]:字母加数字
[^] :匹配指定范围外的任意单个字符
命令行展开
~ :自动展开为用户的家目录,或指定用户的家目录
{} :可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径
/tmp/{a,b} 相当于 /tmp/a /tmp/b
多命令执行
COMMAND1;COMMAND2;COMMAND3;...
* 逻辑运算
* 运算数
真:true,yes,on,1
假:false,no,off,0
* 与
短路运算
1 && 1 == 1
1 && 0 == 0
0 && 1 == 0
0 && 0 == 0
* 或
短路运算
1 || 1 = 1
1 || 0 = 1
0 || 1 = 1
0 || 0 = 0
* 非
!1 = 0
!0 = 1
* 短路法则
COMMADN1 && COMMADN2
COMMADN1 || COMMAND2
命令的执行状态
* 成功:0
* 失败:1 - 255
* 查看状态结果:echo $?