Linux下history命令的介绍

Linux下history命令的介绍

一、用处

对于Linux而言,命令是人机交互的重要方式,而查看命令历史可以帮助我们了解系统的使用状态、增强安全性也可以调用历史达到快捷操作的目的。

二、命令行历史

  执行过的命令会被存入缓存,当正常退出shell时,缓存中的命令会被写入文件中并保存在用户下的隐藏文件文件.bash_history中。当用户登陆时内存会在文件中读取命令历史再次存入缓存。


三、命令历史的调用


  重复执行上一条命令有四种方法:

    重复前一个命令使用上方向键,并回车执行;

    按 !! 并回车执行;

    输入 !-1 并回车执行;

    按 Ctrl+p 并回车执行。

  几个实用操作:

    !字符串:重复前一个以“字符串”开头的命令:

 blob.png


    !num:按照history命令输出中的序号重复对应命令:

 blob.png


    !?字符串:重复前一个包含该字符串的命令:

 blob.png

    !-n :重复n个命令之前的那个命令:

 blob.png


  在命令提示符中,使用↑(向上)和↓(向下)键来上下浏览从前输入的命令。

  键入ctrl+r来在命令历史中搜索命令

 blob.png

四、历史参数的调用

    #cmd !^ : 利用上一个命令的第一个参数做cmd的参数

    #cmd !$ : 利用上一个命令的最后一个参数做cmd的参数    

      也可以使用:Esc, .(点击Esc键后松开,然后点击 . 键)或 Alt+ .(按住Alt键的同时点击 . 键)       #cmd !* : 利用上一个命令的全部参数做cmd的参数

    #cmd !:n : 利用上一个命令的第n个参数做cmd的参数

    !n:^ 调用第n条命令的第一个参数

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

    !m:n 调用第m条命令的第n个参数

    !n:* 调用第n条命令的所有参数

    !string:^ 从命令历史中搜索以string 开头的命令,并获取它的第一个参数

    !string:$ 从命令历史中搜索以 string 开头的命令,并获取它
的最后一个参数

    !string:n 从命令历史中搜索以 string 开头的命令,并获取
它的第n个参数

    !string:* 从命令历史中搜索以 string 开头的命令,并获取
它的所有参数

五、history命令

  Linux下history是一个内部命令,主要用于显示缓存中历史指令记录内容, 或下达历史纪录中的指令。

  一些常用命令:

    -c:用于清空缓存中的命令历史

blob.png

     -d:删除历史中指定的命令;

blob.png

     #: 显示最近的#条历史;

blob.png

     -a: 把本次会话中新执行的命令历史列表从缓存追加至历史文件~/.bash_history中;

     -n: 显示历史文件~/.bash_history中未读过的行到历史列表,例如多个终端登录同一个用户时,缓存中的命令不会同步,使-n选项可以同步个终端的命令到历史列表中。

     -r: 把历史文件~/.bash_history中的命令附加到内存的历史列表中,每次打开shell都会默认执行类似操作;

     -w: 保存历史列表到指定的历史文件;

blob.png

     -p: 展开历史参数成多个行,但不存在历史列表中

blob.png

     -s: 展开历史参数成一行,附加在历史列表后(可以用来伪造命令)

blob.png

六、命令历史的相关环境变量

    HISTSIZE:定义内存中缓存命令条数的最大值;

blob.png


    HISTFILE:指定历史文件,默认为~/.bash_history;

blob.png


    HISTFILESIZE:命令历史文件记录历史的条数,用法与HISTSIZE相同;


    HISTTIMEFORMAT=“%F %T“ 显示时间:

blob.png


    HISTIGNORE="str1:str2: "忽略带有string1,string…”字符的历史命令。


    HISTCONTROL: 控制命令历史的记录方式


    ignoredups:忽略命令历史中已有的命令,且只记录第一条命令的时间


    ignorespace:忽略所有以空白行开头的命令


    ignoreboth:相当于ignoredups,ignorespace组合效果 


    erasedups:删除已有的重复命令

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

(0)
zhanghuanyuzhanghuanyu
上一篇 2016-07-29 09:38
下一篇 2016-07-29 09:56

相关推荐

  • 基于kubernetes构建Docker集群管理详解

    一、前言        Kubernetes 是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度、均衡容灾、服务注册、动态扩缩容等功能套件,目前最新版本为0.6.2。本文介绍如何基于Centos7.0构建Kubernetes平台,在正式介绍…

    2015-03-10
  • Linux文本编辑器之 vi vim 详谈

    Linux文本编辑器之 vi vim         vi :Visual Interface,它与sed不同,sed是功能比较简单的行编辑器,而vi是一个功能强大的全屏文本编辑器,它还有一个增强版vim (Vi IMproved).在vim里,有很多功能强大的文本编辑…

    Linux干货 2016-08-15
  • N22-第2周作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示 cd、pwd、ls、alias、cat、more、less、tail、cut、wc、touch、mv、cp、rm pwd:用户当前所在目录 [xuc@localhost ~]$ pwd /home/xuc cd:切换目录  cd  [/PATH…

    Linux干货 2016-08-22
  • 第一天参与马哥linux运维面授

    很高兴认识大家,介绍一下,我叫袁亚琼,来自美丽的云南。我是一个随和而又不随性95年女子,喜欢运动,擅长田径。学食品检测的,上学期间没怎么接触计算机,现在又来学专业计算机,内心还是有几丝恐慌,希望在今后的学习路上得到各位学友和老师的指导和帮助。等工作稳定,可以去云南放松一下,云南是个吃喝玩乐的好地方,同时也是个感受慢节奏生活的佳地。云南欢迎您哦! 选择学习li…

    Linux干货 2018-03-26
  • iptables-防火,防盗,防老王

        防火墙,其实说白了将,就是用于实现linux下访问控制的功能的,它分为两种方式,硬件防火墙和软件防火墙。不过无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义防火墙如何工作的,这就是防火墙的策略,规则,以达到让它对出入网络的IP,数据进行检测。     目前市…

    Linux干货 2017-05-02
  • Linux中的man命令使用方法

      Linux中的man命令就是manual的缩写,此命令是用来查看系统中自带的各种参考手册,帮助用户更好的了解并使用命令。   man命令的使用格式为: man COMMAND,即man后面跟上需要查询的命令,进到手册后有如下快捷按钮帮助用户更好的操作手册。     1.按键-j &nb…

    Linux干货 2016-10-20

评论列表(1条)

  • 马哥教育
    马哥教育 2016-07-29 09:49

    写的很好,但是字体能统一一下会更好!!!