• 命令别名  

          定义别名      alias  name='value'    只对当前shell有效

                     对当前用户有效     修改~/.bashrc

                     对所有用户有效     修改/etc/bashrc

          取消别名      unalias name  

                                      -a:取消所有别名

          bash进程重读配置文件

                                  source  /path/to/config_file

                                           .  /path/to/config_file

        当命令别名与原名同名时,执行原命令

                              \command,/path/to/cmmand,'aliasname',"aliasname",command aliasname

       当别名与内部命令,外部命令同名时会先执行别名

                              优先级   别名>内部命令>外部命令

  • 命令历史
           保存输入的命令历史,登录shell时,会读取命令历史文件~/.bash_history中记录下的命令到内存中,登录进shell后新执行命令会记录在缓存中,当用户正常退出时这些命令会追加到命令历史文件中。

           history  [-c] [-d offset] [n]

                      -c:清空命令历史

                      -d offset:删除历史中指定的第offset个命令

                      -n:显示最近的n条历史

     相关环境变量

              HISTSIZE            命令历史大小

              HISTFILE            指定命令历史文件

              HISTFILESIZE     命令历史文件大小

     调用前一个命令最后一个参数

             Esc,.      !$         Alt+.

     重复执行前一个命令   !!      方向上键      

     执行history中对应数字的命令   !n             

  • 命令行展开

     命令行展开$()和` `

            Linux上bash的基础特性_基础特性

            Linux上bash的基础特性_运维_02

    花括号{ }展开

            Linux上bash的基础特性_基础特性_03

      echo "VAR_NAME"    双引号变量会替换     弱引用

        Linux上bash的基础特性_运维_04

      echo 'VAR_NAME'    单绰号变量不会替换    强引用

        Linux上bash的基础特性_Linux_05

  • Tab补全

        命令补全

        路径补全 

               如果唯一,则直接补全;不唯一,再次Tab给出列表

         $2Tab   显示所有变量

  • 命令Hash

       外部命令Hash缓存表

           系统初始Hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将此条命令的路径记录到Hash表中,当再次使用该命令时,Shell解释器会首先查看Hash表,存在将执行之,如果不存在,将会去PATH路径下寻找,利用Hash缓存表来大大提高命令的调用速率。

                hash  显示全部缓存

                      -r:清除缓存

                      -t name:显示name缓存路径

                      -r name:清除name缓存

  • Bash快捷键

      常用快捷键

             ctrl+c    取消命令

             ctrl+d    中止命令

             ctrl+u    删除光标之前内容

             ctrl+k    删除光标之后内容

             ctrl+a    光标跳到行首

             ctrl+e    光标跳到行尾

             ctrl+l     清屏

  • 文件通配符glob   

             *:匹配任意字符                                

             ?:匹配任意单个字符

          -~:前一个工作目录

      [0-9]:数字范围

       [a-z]:字母

     [A-Z]:字母

  [string]:匹配列表中的任意一个字符

 [^string]:匹配列表中所有字符以外的字符

  预定义的字符类:man 7 glob

          [:digit:]:数字

          [:lower:]:小写字母

          [:upper:]:大写字母

          [:alpha:]:任意大小写字母

          [:alnum:]:任意数字或字母

          [:punct:]:标点符号

          [:blank:]:水平空白字符

          [:space:]:水平或垂直空白字符