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

相关推荐

  • CentOS7内核编译

    一.centos7内核编译(支持ntfs文件系统) 1.下载内核源代码内核文件(https://www.kernel.org/) 2.解压缩源代码文件到指定目录 tar xvf linux-4.8.10.tar.xz -C /usr/src 3.创建软链接解压后的文件 cd /usr/src ln -s linux-4.8.10/ linux 4.复制当前系…

    Linux干货 2016-11-28
  • HTTP

    使用CentOS 7和CentOS 6实现以下任务 配置四个基于名称的虚拟主机;discuzXwordpressdrupal1.在conf.d下新建并编辑虚拟主机配置文件]# cd /etc/httpd/conf.d/]# vim vhost.confcentos6配置   [root@ _93_ conf.d]#&n…

    Linux干货 2016-10-12
  • 小白易患错误之绝对路径和相对路径的操作错误

    小白易患错误之绝对路径和相对路径的操作错误 作为一个不安稳的小白,一天都在那路乱折腾,恰巧,老师课程题目中有一题将/etc/skel 这个目录的文件除了..和. 复制到/home/USRNAEM 的家目录下。然后自以为是不按照老师的方法,自己折腾用了这样一条命令 [root@local skel]# ls -A .bash_lo…

    Linux干货 2016-08-05
  • linux 软件包管理

    1、Linux软件包管理 Redhat, SUSE: RPM Redhat Package Manager PRM is Package Manager 前端工具:yum, apt-get 后端工具:RPM, dpt   2、rpm: 数据库:/var/lib/rpm  rpm包: 软件包作者下载源程序,编译配置完成后,制作成rpm包 格…

    Linux干货 2017-08-06
  • 自制一个小型Linux(附带网络功能)

      我们这次讲述一下Linux启动的启动流程以及制作一个附带网络功能的mini linux 一、叙述 二、为什么要制作这么一个小型的系统 三、怎么制作 1、制作步骤 2、将虚拟机添加网络功能 一、叙述   在制作一个小型的Linux之前,首先你得明白Linux系统的启动过程,我们用一张图来进行说明  二、为什…

    Linux干货 2016-12-21
  • N26 第五周博客作业

    1、显示当前系统上root、fedora或user1用户的默认shell; 演示:     [root@263821a05cd9 /]# grep -E “^(root|fedora|user1)\>” /etc/passwd    root:x:0:0:root:/r…

    Linux干货 2017-03-05

评论列表(1条)

  • renjin
    renjin 2017-04-05 10:29

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