• bash魔法堂:History用法详解


    Brief                              

      又要敲那条长到没朋友的命令了,真心不再爱了。。。

      有了history这条命令我想大家可以再爱一次了吧!

    >history                            

      语法: history [n | -c | -raw histfile] 

      n —— 数字,用于表示罗列最近的n笔命令

      -c —— 表示清除history中的所有内容(实质上是清理$HISTFILE中保存的内容)

      -a —— 表示将当前会话的自上次执行history -a histfile命令后执行所有命令保存到hisfile文件中,若histfile缺省值为$HISTFILE变量指向的文件(~/.bash_history)

      -r —— 表示从histfile读取内容到当前会话的history

      -w —— 表示将目前的hitory内容写入histfile中

    How 2 execute the command show by "history"      

      M1.  !n 

        n为数字,表示执行history中指定编号的命令

      M2.  !cmd 

        cmd为命令的部分字符串,从最近往最远开始匹配以该字符串开头的首条命令并执行

      M3.  !!  或  !-1  或  Ctrl + p 

        !和-1表示获取最近一条命令,并执行。(Ctrl + p为快捷键)

      M4.  !?string?  或  Ctrl + r 

        string为命令的部分字符串。从最近往最远开始匹配含字符串的首条命令并执行(Ctrl + r为快捷将)

      M5.  fc n 

        n为数字,表示执行history中指定编号的命令。但此时会打开一个文本编辑器并显示该条命令,我们可以修改该命令,然后退出编辑器时则会执行修改后的命令。

      M6.  ^replacedString^newString!:s/replacedString/newString

        将上一条命令的replacedString内容替换为newString内容后执行新命令

    > ps -ef|grep httpd
    > ^httpd^grep

      M7.  !!& 

        在执行上一条命令后再执行另一条命令

    Fetch Args from History Commnad              

       !^ 获取上一条命令的第一个参数。

       !$ 获取上一条命令的最后一个参数。

       !:n 获取上一条命令的第n个参数,n从1开始。(为0时则挑选出命令名称)

       !:n-x 获取上一条命令的第n个参数到第x个参数,n和x均从1开始。(为0时则挑选出命令名称)

       !* 获取上一条命令的所有参数。

       !n* n为数字,获取上一条命令的从第n个参数(含第n个参数)后的所有参数。

       !n- n为数字,获取上一条命令的从第n个参数(含第n个参数)后的除了最后一个参数外的所有参数。

    Configurations begin with "HIST"              

      HISTTIMEFORMAT  

        用于设置history命令的输出格式。

         >export HISTTIMEFORMAT='%F %T' 

      HISTSIZE

      用于控制命令历史记录的总条目数。(当设置为0时则为禁用命令历史记录功能)

        >export HISTSIZE=0 

      HISTFILE

        用于设置命令历史的保存位置,默认保存在~/.bash_history文件中。

        >export HISTFILE=~/.cmd_history 

      HISTCONTROL

        剔除连续重复的命令历史条目: >export HISTCONTROL=ignoredups 

        清理所有重复的命令历史条目: >export HISTCONTROL=erasedups 

        不记录以空格开头的记录: >export HISTCONTROL=ignorespace 

      HISTIGNORE

        用于设置某些命令将不被保存到历史记录中

         >export HISTIGNORE='pwd:ls:ls -ltr:' 

        上述表示pwd,ls和ls -ltr将不被保存。

    注意:上述环境变量均仅对当前会话有效,当退出会话后将失效。若要所有会话均有效则需要将设置写入~/.bash_profile文件中。

    Conclusion                          

      通过man 3 history我们可以了解history更多酷炫的玩法!

      尊重原创,转载请注明来自:http://www.cnblogs.com/fsjohnhuang/p/4753904.html ^_^肥仔John

    Thanks                            

    http://blog.sina.com.cn/s/blog_5caa94a00100gyls.html

    http://blog.csdn.net/yorkingalan/article/details/7166583

  • 相关阅读:
    搭建前端监控系统(备选)Js截图上报篇
    搭建前端监控系统(三)静态资源加载监控篇
    搭建前端监控系统(一)阿里云服务器搭建篇
    springboot+缓存
    springboot集成springDataJpa
    从零开始搭建SpringBoot项目
    Java1.8的HashMap源码解析
    SpringMvc流程分析,简单源码分析
    Java定时任务
    Java性能调优
  • 原文地址:https://www.cnblogs.com/fsjohnhuang/p/4753904.html
Copyright © 2020-2023  润新知