设为首页 收藏本站
查看: 1330|回复: 0

[经验分享] Linux之bash的特性

[复制链接]

尚未签到

发表于 2018-5-24 08:45:28 | 显示全部楼层 |阅读模式
  bash的特性
(1)常用组合快捷键:,ctrl+d
           Ctrl+a: 跳转至命令行首
           Ctrl+e: 跳转至命令行尾
           Ctrl+u: 删除命令行首至当前光标所在处之前的所有内容
           Ctrl+k: 删除当前光标所在处至命令行尾的所有内容
           Ctrl+l: 清屏
           Ctrl+c: 中止或取消
           Ctrl+z: 把当命令送至后台
           Ctrl+d:回到登陆用户登陆界面
  (2)命令补全:命令的补齐,参数中目录或文件的补齐
           当输入命令的部分是唯一的时候按TAB键就可以不全剩下的部分
           当输入命令的部分不是唯一的,按两次TAB就可以列出所有以输入部分开头的命令        
   DSC0000.jpg
           注意:命令的选项是不能补齐的。
  (3)路径补全:
           当输入路径中文件名唯一部分是可以TAB补全此文件名
           当输入路径中文件名不是唯一部分是可以按两个TAB来列出有哪些以此路径开头的目录。         DSC0001.jpg
  (4)历史命令:history,上下光标键,!N,!!
          保存的条数: echo $HISTSIZE
          环境变量:HISTSIZE       DSC0002.jpg
         用户退出时的持久保存位置:
         环境变量:HISTFILE,通常默认为用户家目录下的.bash_history       DSC0003.jpg
        此文件中可保存的最大数目:echo $HISTFILESIZE
         环境变量:HISTFILESIZE       DSC0004.jpg
         用法:
         history N: 显示最近的N条,包括当前命令自身;
         history -c: 清空命令历史
         history -d offset: 删除指定的偏移处的命令条目
         history -a [/path/to/some_history_file]: 将当前会话中的命令历史写入指定文件    DSC0005.jpg
         bash调用命令历史列表中的命令:
         !#: 执行命令历史中的第#条命令
         !!: 执行上一条命令
         !string: 执行命令历史中最近一次以string开头的命令;
         !$: 调用上一条命令的最后一个参数
         ESC, .:功能同上      DSC0006.jpg
  (5)命令别名:alias,unalias
          定义一个命令让他具有别的命令加参数的功能
          which COMMAND查看命令路径和别名。    DSC0007.jpg
  (6)前台进程,后台进程,作业控制:&,ctrl+z,fg,bg,jobs
          前台作业:通过终端启动,并在终止之前一直占据着终端
          后台作业:作业启动之后即运行于后台,释放前台
          交互式模式:手动启动的非守护进程类的程序,一般都运行于前台;
          如何将作业运行于后台:
          1、运行中的作业:
          Ctrl+z
          送往后台后,作业处于STOPPED状态
          启动top命令。ctrl+z送往后台,发现状态时stop DSC0008.jpg
          2、尚未启动作业:
          COMMAND &       查出的是command的进程号 DSC0009.jpg
          此类由手动方式控制的作业,与终端相关作业会被终止;如果把作业送往后台,且与终端无关:
          # nohup COMMAND &
          作业:作业号
          # jobs
DSC00010.jpg

          作业控制命令:
          # fg [[%]JOBNUM]: 将指定的作业调回前台
          # bg [[%]JOBNUM]: 让送往后台的作业在后台继续运行
          # kill %JOBNUM: 终止指定的作业
  

  (7)重定向:>,>>,<,<<(here document)
        文件:文件系统(内核)
                标准输入:0      键盘            
                标准输出:1      监视器
                错误输出:2       监视器
           重定向意味着:改变其标准位置
           输出重定向:
           COMMAND > POSITION:覆盖输出
           COMMAND >> POSITION: 追加输出          DSC00011.jpg
            错误重定向:
            COMMAND 2> POSITION:覆盖输出
            COMMAND 2>> POSITION: 追加输出          DSC00012.jpg
            合并重定向:
            COMMAND &> POSITION   正确错误的信息都输出到hello.txt文件中          DSC00013.jpg
            COMMAND > POSITION 2> &1        
DSC00014.jpg

            分别重定向
            COMMAND > POSTION 2> POSTION2
            如果命令正确,在向POSTION输入信息时,也向POSTION2输入空白信息。
DSC00015.jpg

            输入重定向:
            COMMAND < POSTION
DSC00016.jpg

  (8)管道(|):command1 | command2 | command3 | command4
            将command1的结果给command2,再将command2的结果给command3,这样递交。
DSC00017.jpg

  (9)文件名通配(globbing):
       *: 任意长度的任意字符
DSC00018.jpg

       ?: 匹配任意单字符
DSC00019.jpg

       []: 匹配指定范围内的任意单字符
       [abc], [a-z], [0-9], [0-9a-z]       DSC00020.jpg
        [^]:匹配指定范围以外的任意单字符
        [^0-9a-z]    DSC00021.jpg
         字符集合:
         [:space:] : 所有空白字符
         [:punct:] : 所有标点符号
         [:lower:] :所有小写字母
         [:upper:]:所有大写字母
         [:digit:]:所有数字
         [:alnum:]:任意字母和数字
         [:alpha:]:任意字母
  (10)字符串操作
        字符串切片:
      ${string:offset:length}         
DSC00022.jpg       取尾部的指定个数的字符:
      ${string: -length}
DSC00023.jpg       取子串:基于模式
      ${variable#*word}:在variable中存储字串上,自左而右,查找第一次出现word,删除字符开始至此word处的所有内容;
      ${variable##*word}:在variable中存储字串上,自左而右,查找最后一次出现word,删除字符开始至此word处的所有内容;
      file='/var/log/messages'
      ${file#*/}: 返回的结果是var/log/messages
      ${file##*/}: 返回messages

        abc='helloword'
DSC00024.jpg       ${variable%word*}: 在variable中存储字串上,自右而左,查找第一次出现word,删除此word处至字串尾部的所有内容;
      ${variable%%world*}:在variable中存储字串上,自右而左,查找最后一次出现word,删除此word处至字串尾部的所有内容;
      file='/var/log/messages'
      ${file%*/}: 返回的结果是/var/log
      ${file%%*/}: 返回结果为空
DSC00025.jpg   
      查找替换:
      ${variable/pattern/substi}: 替换第一次出现
      ${variable//pattern/substi}:替换所有的出现
DSC00026.jpg       ${variable/#pattern/substi}:替换行首被pattern匹配到的内容
      ${variable/%pattern/substi}: 行尾
DSC00027.jpg       pattern可以使用globbing中的元字符:
      * 、?
               
      查找删除:
      ${variable/pattern} :删除variable左到右第一个被pattern匹配到的
      ${variable//pattern} :删除variable左到右所有被pattern匹配到的

DSC00028.jpg       ${variable/#pattern} :删除variable行首被pattern匹配到的
      ${variable/%pattern} :删除variable行尾被pattern匹配到的
DSC00029.jpg       大小写转换:
      小-->大:${variable^^}
      大-->小:${variable,,}

DSC00030.jpg

  (11)命令行展开
        {}:
        /tmp/{x,y}
        /tmp/x, /tmp/y
DSC00031.jpg

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-480487-1-1.html 上篇帖子: Linux常见命令。 下篇帖子: linux学习命令总结①
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表