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

相关推荐

  • puppet代码分析

    这篇博客的目的是通过分析Forge上的Puppet模块来加深一些概念的理解,同时了解一些常用用法。 今天的例子是jfryman-nginx模块,它是原puppetlabs-nginx模块的升级版本,依赖3个Puppet公共模块:puppetlabs-apt,puppetlabs-stdlib和puppetlabs-concat。安装非常方便,puppet m…

    2017-03-18
  • linux基础学习之SElinux

    1、SElinux简介 SELinux: Secure Enhanced Linux,是美国国家安全局「NSA=The National Security Agency」和SCC(Secure Computing Corporation)开发的Linux的一个强制访问控制的安全模块。2000年以GNU GPL发布,Linux内核2.6版本后集成在内核中 2、…

    Linux干货 2016-09-15
  • OpenSSL

    三个组件: openssl: 多用途的命令行工具; libcrypto: 加密解密库; libssl:ssl协议的实现; PKI:Public Key Infrastructure CA RA CRL 证书存取库  建立私有CA: OpenCA openssl  证书申请及签署步骤: 1、生成申请请求; 2、RA核验; 3、CA签署; 4…

    Linux干货 2015-03-21
  • 权限管理

    权限 权限就是用户或者组对文件或者目录所拥有的能力,所能执行的操作。 权限的分配: 通过ls -l file这个命令可以查看文件或者目录的详细信息:     [root@localhost home]# ls -l /root/   &nb…

    Linux干货 2016-08-05
  • 阿里云修改hostname主机名的一点小技巧

    CentOS 7以后修改主机名一般使用: hostnamectl set-hostname newhostname 如果仍然无效,使用vim打开/etc/cloud/cloud.cfg,将 preserve_hostname=fale 改为 preserve_hostname=true 即可。 以上在阿里云ECS上亲测有效,使用了网上查阅…

    Linux干货 2017-01-09
  • Nginx浅谈(一)

    浅谈nginx(一) 此文主要介绍nginx的基础知识及其基本配置,一为巩固,二为记录 知识点: nginx的作用 nginx的基本配置框架 nginx一些常用模块介绍 1、什么是nginx     nginx是一款免费的,开源的,高性能的HTTP服务软件,它不仅能     够支…

    Linux干货 2017-01-15

评论列表(1条)

  • renjin
    renjin 2017-04-05 10:29

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