history命令详解

  讲解内容:

    history常用参数详解

    history调用的参数

    histroy相关的环境变量

一、history常用参数详解

   history

     -c:清空命令历史

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

      #:显示最近的第#条命令

     -a:追加本次会话新执行的命令历史列表至历史文件

     -n:读历史文件中未读过的行到历史列表

     -r:读历史文件附加到历史列表

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

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

     -s:展开历史参数成一行,附加在历史列表后

演示:

   -c:该参数将缓存中的历史命令清空

wKioL1eYscay52peAABnyW4NB9I834.png-wh_50


 -d:该参数可以将缓存中的历史命令删除指定的项目

wKioL1eYtM6QN-_mAABUtQ_KhW4308.png-wh_50

#:该参数显示最近的#条命令

wKiom1eYuw-Tsc7FAAAsa4lmOWE126.png-wh_50

-a:将缓存中的历史命令加入历史文件中

wKioL1eYuveRAkHaAABAWaE2smU969.png-wh_50

wKiom1eYuviwYpZzAABB05v_mw0245.png-wh_50

-n:两个人都使用root用户登录系统,用户1在敲入命令后,使用-a参数将命令保存到历史文件中,这是第二个登录系统的人无法再缓存中看到第一个人保存在历史文件中的命令,使用-n参数可以将第一个人敲入的命令追加到缓存中。

 

wKiom1eYv0_gkF6HAABWx-DqO6I601.png-wh_50

wKioL1eYv0_B3j4gAABs1XlByQw574.png-wh_50

wKiom1eYv2mQG6dUAABszHDOYSk142.png-wh_50

wKiom1eYv2qjzlD4AACE1c1aMr8232.png-wh_50

-r:将历史文件中的命令追加到缓存中

 wKioL1eYwCHh1qmjAABMylv_VQI878.png-wh_50

-w:将缓存中的历史命令保存到任意一个指定的文件中

wKioL1eYwNOBCNyDAAA69sWfpjc942.png-wh_50

-p:将命令以多行打印在屏幕上,同时不存与缓存中

wKiom1eYwsKzjMFDAAAlgfSg5OU565.png-wh_50

-s:将命令行以一行的形式显示,同时不将命令追加到缓存中

wKioL1eYzoqBOYFnAAAnn7-4n-k476.png-wh_50

二、history调用参数

 !shut:执行以shut开头的命令

 !?go :执行包含go的命令   ?是包含的意思

 !!:表示执行上一条命令

 !-n:执行之前第n条的命令

 ctrl+r键可以搜索历史命令

 esc+. 或者alt+.  :可以显示上一条命令的参数

 !$:可以显示上一条命令的最后一个参数

 !^:显示上一条命令的第一个参数

 !:#(数字):可以调用第1、2...个参数(#表示数字)

 !n:#  :可以调用第n条命令的第n个参数

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

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

 #cmd!*:利用上一个命令的全部参数做cmd的参数

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

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

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

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

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

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

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

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

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

三、history相关的环境变量

所有的参数均可以在家目录下的.bash_profile文件中定义,如果定义全局则需要在/etc/profile中定义。

1、 HISTSIZE:命令记录的条数

 例:表示在缓存中的历史命令最多能存1000条

 wKiom1eY0sWz73gcAAATAOaozhI265.png-wh_50

2、HISTFILE:指定历史文件,默认为家目录下的.bash_history

例:可以在家目录下的.bash_profile文件中使用如下命令重新定义历史文件的位置,在做登出操作和登入操作后,缓存中的命令就会保存在新的历史文件中。

wKioL1eY1HXhYk9jAAATz2hoCoo219.png-wh_50

wKiom1eY1HWDECpfAAAIpwYETe8242.png-wh_50

wKiom1eY1HWSUW_rAAARS8Iuxj4717.png-wh_50


3、HISTFILESIZE:可以调整历史文件记录历史的条目

例:

wKioL1eY1ZOAioWNAAARUFU7Djw591.png-wh_50

4、HISTTIMEFORMAT="%F %T"显示时间

例:

wKioL1eY1suzu018AAAegHECGE8604.png-wh_50

wKiom1eY1s2THaolAAAWzdt58yM479.png-wh_50

5、控制命令历史的记录方式

  环境变量:HISTCONTROL

   该值可以在/etc/profile或~/.bash_profile文件中定义,

   或者使用export 变量名=“值”在本shell中定义。

   同时可以多个变量用“;”分割

  wKioL1eY2lySAizYAAAi7lxZKzY120.png-wh_50

ignoredups:忽略重复的命令

   例:

 wKioL1eY16aQ5ymAAABLE_6mWzw004.png-wh_50

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

 例:

wKiom1eY2O-yhU46AAAa910s7s0911.png-wh_50

wKiom1eY2STBtqD5AABDKpob-8I985.png-wh_50

  ignoreboth:相当于同时定义ignoredups和ignorespace两条变量

  erasedups:删除重复命令


如何使用man来获取帮助

  有一句话总结了获取帮助的重要性:获取帮助的能力决定了技术的能力。

   接下来我将会详细介绍与man相关的命令。

一、whatis

  1、该命令会显示命令的简短描述信息:

  2、whatis命令依赖于系统中的whatis数据库,该数据库在系统安装完成一段时间后会自动建立,如果没有可以使用makewhatis命令(centos6)mandb(centos7)创建。

  3、如果用户对要使用的命令的作用不了解,建议先使用whatis获取命令的简短描述信息,然后再使用命令。

wKiom1eaDmmRD8NWAAAe0V4YKfw115.png

命令帮助:

  内部帮助命令:

 help command

   外部命令的帮助:

   1. COMMAND --help

   2.man COMMAND

   3.info COMMAND 信息页

   4.程序自身的帮助文档:README,INSTALL,Changelog

   5.程序官方文档

   

man命令:

   1、提供命令帮助的文件

   2、手册页存放在/usr/share/man

   3、几乎每个命令都有man“页面”

   4、man页面分组为不同的“章节”

   5、man【章节】命令

   6、man命令的配置文件:/etc/man.config | man_db.conf(centos 7)

   7、man -M /path/to/somewhere COMMAND:可以到指定位置下搜索COMMAND命令的手册也并显示帮助

二、man章节

  1、用户命令

   2、系统调用

   3、C库调用

   4、设备文件及特殊文件

   5、配置文件格式

   6、游戏

   7、杂项

   8、管理类命令

   9、linux内核API

三、man的常用方法:

  man -a keyword:列出所有帮助

  man -k keyword:列出所有匹配的页面

  /keyword:以keyword指定的字符串为关键字,从当前位置向文件尾部搜索,不区分字符大小写;n:下一个 N:上一个

 ?keyword:以keyword指定的字符串为关键字,从当前位置向文件收不搜索,不区分字符大小写。n:跟搜索命令同方向,下一个  N:跟搜索命令反方向,上一个


四、如何通过在线文档获取帮助

  1、第三方程序官方文档

  2、通过发行版官方的文档光盘或网站可以获得

    (1)安装指南

    (2)部署指南

    (3)虚拟化指南

    (4)红帽知识库和官方在线文档

        http://kbase.redhat.com

        http://www.redhat.com/docs

        http://access.redhat.com

  3、sosreport

    收集所有系统上的日志信息的工作,并自动打成压缩包,方便技术支持人员和红帽全球支持提供分析问题的依据


五、网站和搜索

  http://tldp.org

  http://www.slideshare.net

  http://www.google.com

   谷歌搜索举例:Openstack filetype:pdf

            rhca site:redhat.com/docs


作业:

1、只显示某目录下隐藏文件

ls -ad .*   注释:a参数:显示所有文件;d参数:将有子目录的文件以目录的形式展现;.*:匹配所有的隐藏文件

wKiom1eY21OzhyWcAABCqwX5hS8001.png-wh_50

2、只显示某目录下目录列表

ls -ad */   注释:*/匹配所有的目录文件

wKioL1eY27nTSKThAAAqIoqH704977.png-wh_50