history命令详解

   有效地使用命令历史机制将会使效率获得极大提升。
history:
   保存你输入的命令历史。 可以用它来重复执行命令。
   history [-c] [-d offset] [n]
   history -anrw [filename]
   history -ps arg [arg…]
    -c: 清空命令历史
    -d offset: 删除历史中指定的第offset个命令
    n: 显示最近的n条历史
    -a:append, 追加本次会话新执行的命令历史列表至历史文件
    -n: 读历史文件中未读过的行到历史列表
    -r: 读历史文件附加到历史列表
    -w: 保存历史列表到指定的历史文件
    -p: 展开历史参数成多行,但不存在历史列表中
    -s: 展开历史参数成一行,附加在历史列表后(伪造命令历史)
1、四种方法快速执行之前的命令
   1)用向上键查看上条命令,按回车执行。 
   2)在命令行中输入!!并按回车。 
   3)在命令行中输入!-1并按回车。 
   4)按Ctrl+p显示上条命令,按回车执行
2、用Ctrl + r搜索历史命令
   按下Ctrl +r然后输入关键字。
   在命令行提示符下按下Ctrl+r,终端将显示如下提示reverse-i-search:
   (reverse-i-search)red: cat/etc/redhat-release 

   当看到你要的命令后按回车键,就可以重新执行这条命令了 

history命令详解

   ctrl+g 从历史搜索模式中退出
3、执行历史命令中的特定命令

   !n 执行history命令输出对应序号n的命令

history命令详解

   !-n 执行history历史中倒数第n个命令

history命令详解

4、使用特定字符执行历史命令
   !string 重复前一个以“ string” 开头的命令

   !?string 重复前一个包含string的命令

history命令详解

   !string:p 仅打印命令历史,而不执行
   !$:p 打印输出上一个命令的内容而不执行
   !:p 打印输出 !( 所有参数) 的内容(?)
   ^string 删除上一条命令中的string
   ^string1^string2 将上一条命令中的第一个string1替换为string2
   !!:gs/string1/string2 将上一条命令中所有的string1都替换为 string2
5、命令历史相关的环境变量
   HISTSIZE: 命令历史记录的条数(默认最多1000条)
   HISTFILE: 指定历史文件, 默认为~/.bash_history(当前家目录下)
   HISTFILESIZE: 命令历史文件记录历史的条数(默认最多1000条)
   HISTTIMEFORMAT=“%F %T “ 显示时间
   HISTIGNORE=“str1:str2:… “ 忽略包含string1,string2历史
   控制命令历史的记录方式:
     环境变量: HISTCONTROL
     ignoredups 默认, 忽略重复的命令, 连续且相同为“ 重复”
     ignorespace 忽略所有以空白开头的命令
     ignoreboth 相当于ignoredups, ignorespace的组合
     erasedups 删除重复命令
     export 变量名=”值“(定义系统变量或者环境变量)
     存放在 /etc/profile 或 ~/.bash_profile
6、要重新调用前一个命令中最后一个参数
   1)!$ 表示
   2)Esc, .( 点击Esc键后松开,然后点击 . 键)
   3)Alt+ .( 按住Alt键的同时点击 . 键)
7、注意
   1)登录shell时,会读取命令历史文件(~/.bash_history)中记录下的命令;
   2)登录进shell后新执行的命令只会记录在缓存中,这些命令会用户退出时“ 追加” 至命令历史文件中。

原创文章,作者:张 洁,如若转载,请注明出处:http://www.178linux.com/71733

(2)
张 洁张 洁
上一篇 2017-03-26 14:58
下一篇 2017-03-26 16:18

相关推荐

  • Tomcat基于MSM+Memcached实现Session共享

    前言 在Tomcat集群中,当一个节点出现故障,其他节点该如何接管故障节点的Session信息呢?本文带来的解决方案是基于MSM+Memcached实现Session共享。 相关介绍 MSM MSM–Memcached Session Manager是一个高可用的Tomcat Session共享解决方案,除了可以从本机内存快速读取Session信…

    Linux干货 2015-07-03
  • KVM虚拟化平台部署及管理

    前言 KVM即Kernel Virtual Machine,最初是由以色列公司Qumranet开发。2007年2月被导入Linux 2.6.20核心中,成为内核源代码的一部分。2008年9月4日,Redhat收购了Qumranet,至此Redhat拥有了自己的虚拟化解决方案,之后便舍弃Xen开始全面扶持KVM,从RHEL6开始KVM便被默认内置于内核中。本文…

    Linux干货 2015-07-19
  • 在centos6.9上实现软RAID

    在centos6.9上实现软RAID 什么是RAID?     RAID,全称Redundant Arrays of Inexpensive(Independent)Disks。简单翻译叫磁盘阵列。    通俗一点讲就是多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提…

    Linux干货 2017-08-12
  • CMDB内功心法,助我登上运维之巅

    很多70、80后甚至90后都在金庸、古龙、梁羽生先生等武林大家熏陶下成长的,这么多年过去了,我的武侠梦依然不曾散去。曾几何,梦想有一天练就一身绝学,搂着小师妹花前月下,仗剑走天涯,快意人生。可每次的酣睡美梦都被班主任大书板子给抽醒,在他们的鞭策之下,浑浑噩噩的成了一位IT骚年。我们都知道武功分为内功和招式,内功是气,而招式是形,以气御形。内功深厚,会让你的招…

    系统运维 2017-01-09
  • Liunx课前准备

            经过与家人的沟通终于来到了北京,开始了期待已久的Linux学习之路。    今天是讲课前第一天,和上学时代一样,各位同学做了自我介绍,仿佛又置身于10年前的课堂,同学们有序的介绍着自己,今天我们坐到了一起就为了同一个梦想。之前还有很大的顾虑:学不会怎么办?出来找不到工作怎么办?……但听了大家的介绍后发现很多同学与我一样,所有的顾虑瞬间消失,希…

    2018-03-26
  • systemd

    1、systemd (1)CentOS 7 使用systemd替换了SysV。Systemd目的是要取代一直在使用的init系统,兼容SysV和LSB的启动脚本,负责在系统启动或运行时,激活系统资源、服务器进程和其它进程。 (2)systemd的新特性: 系统引导是实现服务并行启动 按需启动守护进程 自动化管理各服务间的依赖关系 同时采用sockets式与D…

    Linux干货 2016-09-21

评论列表(1条)

  • renjin
    renjin 2017-04-05 10:29

    history的用法写的很详细,包括一些调用命令历史的方法都写的挺详细的,不过排版可以再好一些