欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

#007 bash 特性

程序员文章站 2022-05-11 11:12:45
...

bash 特性

#007 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 = 00 = 1
* 短路法则
     COMMADN1 && COMMADN2
     COMMADN1 || COMMAND2

命令的执行状态

* 成功:0
* 失败:1 - 255
* 查看状态结果:echo $?
相关标签: bash