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
下一篇 2017-03-26

相关推荐

  • 谁说C语言很简单?

    前两天,Neo写了一篇《语言的歧义》其使用C语言讨论了一些语言的歧义。大家应该也顺便了解了一下C语言中的很多不可思异的东西,可能也是你从未注意到的东西。 是的,C语言并不简单,让我们来看看下面这些示例: 为什么下面的代码会返回0?(这题应该很简单吧) int x;   return x == (1&…

    Linux干货 2016-03-20
  • 22期第十四周课堂练习

    系统的INPUT和OUTPUT默认策略为DROP; [root@localhost ~]# iptables -P INPUT DROP [root@localhost ~]# iptables -P OUTPUT DROP 1、限制本地主机的web服务器在周…

    Linux干货 2017-03-15
  • Hadoop实战实例

     Hadoop 是Google MapReduce的一个Java实现。MapReduce是一种简化的分布式编程模式,让程序自动分布到一个由普通机器组成的超大集群上并发执行。就如同java程序员可以不考虑内存泄露一样, MapReduce的run-time系统会解决输入数据的分布细节,跨越机器集群的程序执行调度,处理机器…

    Linux干货 2015-04-13
  • 第二周 文件管理

    1.Linux上的文件管理类型命令都有哪些,其常用的使用方法及其相关示例演示 mkdir—— 创建目录  make directory 命令格式——mkdir [OPTION]… DIRECTORY… -p:自动按需创建父目录; -v:verbose,显示详细过程; -m MODE:创建目录直接给定权限,否则是默认权限; 注意:路径基…

    2017-12-10
  • Linux文本搜索工具grep

    Linux文本搜索工具grep Linux文本搜索工具grep grep 基本正则表达式 egrep 扩展正则表达式 fgrep 简介 grep(全称Globally search a Regular Expression and Print,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,根据用户指定的“模式(pattern)”对目标文本进行匹…

    2016-04-05
  • shell脚本基础练习2

    1.编写一个脚本/root/bin/createuser.sh,脚本的执行语法必须是:createuser.sh -username -m password,选项与参数间可支持多空格,但不能顺序颠倒。当未指定正确的选项或参数时,以错误输出方式提示“createuser.sh -u username -m password ”后退出脚本。用…

    2017-08-12

评论列表(1条)

  • renjin
    renjin 2017-04-05 10:29

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