Linux之bash的特性

bash的特性
(1)常用组合快捷键:,ctrl+d

         Ctrl+a: 跳转至命令行首

         Ctrl+e: 跳转至命令行尾 

         Ctrl+u: 删除命令行首至当前光标所在处之前的所有内容

         Ctrl+k: 删除当前光标所在处至命令行尾的所有内容

         Ctrl+l: 清屏

         Ctrl+c: 中止或取消

         Ctrl+z: 把当命令送至后台

         Ctrl+d:回到登陆用户登陆界面

(2)命令补全:命令的补齐,参数中目录或文件的补齐

         当输入命令的部分是唯一的时候按TAB键就可以不全剩下的部分

         当输入命令的部分不是唯一的,按两次TAB就可以列出所有以输入部分开头的命令        

         注意:命令的选项是不能补齐的。

(3)路径补全:

         当输入路径中文件名唯一部分是可以TAB补全此文件名

         当输入路径中文件名不是唯一部分是可以按两个TAB来列出有哪些以此路径开头的目录。        

(4)历史命令:history,上下光标键,!N,!!

        保存的条数: echo $HISTSIZE

        环境变量:HISTSIZE       

       用户退出时的持久保存位置:

       环境变量:HISTFILE,通常默认为用户家目录下的.bash_history       

      此文件中可保存的最大数目:echo $HISTFILESIZE 

       环境变量:HISTFILESIZE      

       用法:

       history N: 显示最近的N条,包括当前命令自身;

       history -c: 清空命令历史

       history -d offset: 删除指定的偏移处的命令条目

       history -a [/path/to/some_history_file]: 将当前会话中的命令历史写入指定文件    

       bash调用命令历史列表中的命令:

       !#: 执行命令历史中的第#条命令

       !!: 执行上一条命令

       !string: 执行命令历史中最近一次以string开头的命令;

       !$: 调用上一条命令的最后一个参数

       ESC, .:功能同上     

(5)命令别名:alias,unalias

        定义一个命令让他具有别的命令加参数的功能

        which COMMAND查看命令路径和别名。    

(6)前台进程,后台进程,作业控制:&,ctrl+z,fg,bg,jobs

        前台作业:通过终端启动,并在终止之前一直占据着终端

        后台作业:作业启动之后即运行于后台,释放前台

        交互式模式:手动启动的非守护进程类的程序,一般都运行于前台;

        如何将作业运行于后台:

        1、运行中的作业:

        Ctrl+z

        送往后台后,作业处于STOPPED状态

        启动top命令。ctrl+z送往后台,发现状态时stop

        2、尚未启动作业:

        COMMAND &       查出的是command的进程号

        此类由手动方式控制的作业,与终端相关作业会被终止;如果把作业送往后台,且与终端无关:

        # nohup COMMAND &

        作业:作业号

        # jobs

        作业控制命令:

        # fg [[%]JOBNUM]: 将指定的作业调回前台

        # bg [[%]JOBNUM]: 让送往后台的作业在后台继续运行

        # kill %JOBNUM: 终止指定的作业


(7)重定向:>,>>,<,<<(here document)
        文件:文件系统(内核)

              标准输入:0      键盘            

              标准输出:1      监视器

              错误输出:2       监视器 

         重定向意味着:改变其标准位置

         输出重定向:

         COMMAND > POSITION:覆盖输出

         COMMAND >> POSITION: 追加输出         

          错误重定向:

          COMMAND 2> POSITION:覆盖输出

          COMMAND 2>> POSITION: 追加输出          

          合并重定向:

          COMMAND &> POSITION   正确错误的信息都输出到hello.txt文件中          

          COMMAND > POSITION 2> &1        

          分别重定向

          COMMAND > POSTION 2> POSTION2

          如果命令正确,在向POSTION输入信息时,也向POSTION2输入空白信息。

          输入重定向:

          COMMAND < POSTION

(8)管道(|):command1 | command2 | command3 | command4

          将command1的结果给command2,再将command2的结果给command3,这样递交。

(9)文件名通配(globbing):

     *: 任意长度的任意字符

     ?: 匹配任意单字符

     []: 匹配指定范围内的任意单字符

     [abc], [a-z], [0-9], [0-9a-z]       

      [^]:匹配指定范围以外的任意单字符

      [^0-9a-z]    

       字符集合:

       [:space:] : 所有空白字符

       [:punct:] : 所有标点符号

       [:lower:] :所有小写字母

       [:upper:]:所有大写字母

       [:digit:]:所有数字

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

       [:alpha:]:任意字母

(10)字符串操作

      字符串切片: 
      ${string:offset:length}         

      取尾部的指定个数的字符: 
      ${string: -length} 
 

      取子串:基于模式 
      ${variable#*word}:在variable中存储字串上,自左而右,查找第一次出现word,删除字符开始至此word处的所有内容; 
      ${variable##*word}:在variable中存储字串上,自左而右,查找最后一次出现word,删除字符开始至此word处的所有内容; 
      file=‘/var/log/messages‘ 
      ${file#*/}: 返回的结果是var/log/messages 
      ${file##*/}: 返回messages 

      abc=‘helloword‘


      ${variable%word*}: 在variable中存储字串上,自右而左,查找第一次出现word,删除此word处至字串尾部的所有内容; 
      ${variable%%world*}:在variable中存储字串上,自右而左,查找最后一次出现word,删除此word处至字串尾部的所有内容; 
      file=‘/var/log/messages‘ 
      ${file%*/}: 返回的结果是/var/log 
      ${file%%*/}: 返回结果为空 

      phonenumber=‘010-110-8‘ 
      ${phonenumber%%-*} 
      ${phonenumber##*-} 

      查找替换: 
      ${variable/pattern/substi}: 替换第一次出现 
      ${variable//pattern/substi}:替换所有的出现 

      ${variable/#pattern/substi}:替换行首被pattern匹配到的内容 
      ${variable/%pattern/substi}: 行尾 

      pattern可以使用globbing中的元字符: 
      * 、?
               
      查找删除: 
      ${variable/pattern} :删除variable左到右第一个被pattern匹配到的
      ${variable//pattern} :删除variable左到右所有被pattern匹配到的


      ${variable/#pattern} :删除variable行首被pattern匹配到的
      ${variable/%pattern} :删除variable行尾被pattern匹配到的

      大小写转换: 
      小-->大:${variable^^} 
      大-->小:${variable,,}

(11)命令行展开

      {}:

      /tmp/{x,y}

      /tmp/x, /tmp/y






本文出自 “aolens·程超” 博客,请务必保留此出处http://aolens.blog.51cto.com/7021142/1534310

Linux之bash的特性,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。