微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Bash shell 相关特性

bash 基础特性之:命令历史

命令历史:shell进程会在会话中保存此前用户提交执行过的命令;

  • 查看历史命令:
    • ~]# history
    • 定制history的功能,可通过环境变量来实现
    • HISISIZE:shell进程可保留的命令历史条数
    • HISIFILE:持久保存命令历史的文件 (.bash_history)
    • HISIFILESIZE:命令历史文件的大小
  • 用法
-c:清空当前历史命令; 
-a:将历史命令缓冲区中命令写入历史命令文件中; 
-r:将历史命令文件中的命令读入当前历史命令缓冲区; 
-w:将当前历史命令缓冲区命令写入历史命令文件中;
-d:删除指定命令历史条目;
  • 显示最近#条历史命令 (history #)
  • 调用历史列表中的命令 ( ! number)
  • 再次执行上一条命令 (!!)
  • 再一次执行历史列表中最近一个以STRING开头的命令 (!STRING)
  • 调用上一条命令的最后一个参数 (ESC+.、file !$、file alt+.
  • 控制命令历史的方法
    • 环境变量:HISICONTROL
    • 参数:
      ignorespace:忽略以空白字符开头的命令
      ignoredups:忽略以空白字符开头的命令
      ignoreboth:以上两者同时生效
      echo $HISTCONTROL
    • 修改变量值
      HISICONTROL=Ignorespace

bash 基础特性之:命令补全

  • 命令补全:
    • shell程序在接收到用户执行命令的请求,分析完成后,最左侧的字符串会被当作命令;
    • 命令查找机制:
    • 根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名\
    • 给定的打头字符串如果能唯一标识某命令程序文件,则直接补全\
    • 不能惟一标识某命令程序文件,再击打一次tab键,会给出列表;
  • 路径补全:
    • 在给定的起始路径下,以对应路径下的打头字符串来逐一匹配起始路径下的每个文件 (tab)
    • 如果能惟一标识,则直接补全。否则,再一次tab给出列表;

bash 基础特性之:命令行展开

  • ~:自动展开为用户的家目录,或指定的用户家目录;
  • {}:可承载一个以逗号分割的路径列表;
  • 例如:

    • mkdir /tmp/{a,b},相当于 mkdir /tmp/a,mkdir /tmp/b;
    • 创建/tmp/sysroot目录下包含以下文件
    |--bin
    |--etc
        |--sysconfig
                |--network-scripts
    |--sbin
    |--usr
        |--local
                |--bin
        |--sbin
    |--var
        |--cache
    
    • tree命令:

    [options] [directory] 列出树形目录中目录的内容; -l:level 指定显示的层级

bash 基础特性之:命令的执行状态结果

  • 命令执行的状态结果
    • bash通过状态返回值来输出此结果 (成功:0,失败:1-255);
    • 命令执行完成后,其状态返回值保存于bash的特殊变量中 " $? ";
    • 命令正常执行时,有的还会有命令返回值,其根据命令及其功能不同,结果各不相同;
  • 两种引用命令的执行结果
    • $(COMMAND)
    • `COMMAND`
    • 示例:mkdir $(date +%H-%M-%s)

bash 基础特性之:引用

  • 强引用:' '
  • 弱引用:" "
  • 命令引用: ` `

bash 基础特性之:快捷键

  • Ctrl+a:跳转至命令行行首
  • Ctrl+e:跳转至命令行行尾
  • Ctrl+u:删除行首至光标所在处之间的所有字符
  • Ctrl+k:删除光标所在处至行尾的所有字符
  • Ctrl+l:清屏(等同clear)

bash 基础特性之:globbing

globbing:文件通配

  • 星号 :匹配任意长度的任意字符 (papapa,pa);
  • 问号?:匹配任意单个字符(pa?,??pa,p?a,p?a?);
  • 中括号[]:匹配指定范围内的任意单个字符 ([a-z] [A-Z] [0-9] [a-z0-9]);
  • [^]:匹配指定范围外的任意单个字符([^[:upper:]],[^0-9],[^[:alnum:]]);

bash 基础特性之:命令hash

  • hash命令:
    • -d COMMAND,删除
    • -r 情况hash缓存
  • 执行命令的查找顺序: hash、alias、path;
  • 解释:
    • 把命令的查找结果,缓存在缓存中就叫hash;
    • 什么时候需要清空hash表,hash缓存不正确时;

bash 基础特性之:变量

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐