history是一条非常实用的shell命令,可以显示出之前在shell中运行的命令,配合last显示之前登录的用户,就可以追溯是哪个用户执行了某些命令。以下详细说明history使用中常见的命令或技巧,在实际系统管理中,应用得当,可以让工作事半功倍。

使用HISTTIMEFORMAT在历史中显示TIMESTAMP

默认情况下,history并不记录命令的执行时间,分析起来很困难。

# 这时候可以配置HISTTIMEFORMAT环境变量,给history记录添加上时间戳

export HISTTIMEFORMAT="%F %T "

把上面的export命令加入到~/.bashrc中即可在登录后自动开启history时间戳了。

其实HISTTIMEFORMAT的格式就是 strftime函数的格式,比如上面的"%F %T ",%F表示显示出Y-M-D格式的日期,%T表示显示出H-M-S这样格式的时间。更多的格式,可以参考 man strftime。

用Ctrl + R搜索历史命令

本人最常使用的history特性,当你执行了一串相当长的命令之后,你只要用关键字搜索一下历史命令然后重新执行这条命令而不需要将整条命令再输一遍。方法是:按下Ctrl+R然后输入关键字。在以下示例中,我搜索”cat”,则显示以前的命令中含有”cat”的命令“cat anaconda-ks.cfg”。按回车,就可以重新执行这条命令了,而按左箭头键或右箭头键则可以直接修改,改完之后按回车执行,非常方便!

【注:在命令行提示符下按下Ctrl+R,终端将显示如下提示reverse-i-search】

用HISTSIZE控制历史命令的总数

# 内存中的history条数,退出登陆之后会写到~/.bash_history文件里

export HISTSIZE=450

# 文件中存储的最大history条数,文件:~/.bash_history
export HISTFILESIZE=450

# 如果你想禁用history,不让shell记录命令,把HISTSIZE设为0即可

export HISTSIZE=0

使用HISTFILE改变历史文件名

默认情况下,命令历史被储存在.bash_history文件中,把下面的一行添加到.bash_profile文件中,重新登录shell,则新文件将取代.bash_history文件用来储存历史命令。你可以使用这个命令来追踪不同终端中执行的命令,届时只需要将不同终端中所执行的命令保存在不同的历史文件中即可。

[root@rocket ~]# vim ./.bashrc

HISTFILE=/root/my_history

重新登陆可以看到新history file已经生效

使用HISTCONTROL来消除命令历史中的连续重复条目

export HISTCONTROL=ignoredups

使用HISTCONTROL在整个历史中去除重复命令

export HISTCONTROL=erasedups

使用c选项清除所有的历史命令

#清除之前的历史命令

history -c

用HISTIGNORE让history在存储时忽略某些指令

有时你不想在记录里看到诸如“pwd”,ls”之类的基本指令,可以用HISTIGNORE忽略这些指令。

注意在HISTIGNORE中添加“ls”,只忽略“ls”不忽略“ls –l”。一定要准确的写出要忽略的指令。

export HISTIGNORE=”pwd:ls:history”

history命令使用方法详解的更多相关文章

  1. telnet 命令使用方法详解,telnet命令怎么用

    telnet 命令使用方法详解,telnet命令怎么用? 文章类型:电脑教程 原创:天诺时空   什么是Telnet? 对于Telnet的认识,不同的人持有不同的观点,可以把Telnet当成一种通信协 ...

  2. 【转】Linux中history历史命令使用方法详解

    原文网址:http://os.51cto.com/art/201205/335040.htm 当你在玩Linux的时候,如果你经常使用命令行来控制你的Linux系统,那么有效地使用命令历史机制将会使效 ...

  3. Linux中history历史命令使用方法详解

    当你在玩Linux的时候,如果你经常使用命令行来控制你的Linux系统,那么有效地使用命令历史机制将会使效率获得极大提升.事实上,一旦你掌 握了我在下面给出的15个有关Linux history历史命 ...

  4. telnet 命令使用方法详解,telnet命令怎么用?

    什么是Telnet? 对于Telnet的认识,不同的人持有不同的观点,可以把Telnet当成一种通信协议,但是对于入侵者而言,Telnet只是一种远程登录的工具.一旦入侵者与远程主机建立了Telnet ...

  5. Linux中监控命令top命令使用方法详解

    收集了两篇关于介绍Linux中监控命令top命令的详细使用方法的文章.总的来说,top命令主要用来查看Linux系统的各个进程和系统资源占用情况,在监控Linux系统性能方面top显得非常有用,下面就 ...

  6. telnet作用和 命令使用方法详解

    什么是Telnet? 对于Telnet的认识,不同的人持有不同的观点,可以把Telnet当成一种通信协议,但是对于入侵者而言,Telnet只是一种远程登录的工具.一旦入侵者与远程主机建立了Telnet ...

  7. telnet 命令使用方法详解

    参考自:这里 什么是telnet? 简单来说,可以把telnet当作一种通信协议.但对于入侵者来说,telnet只是一种远程登陆的工具.一旦入侵者与远程主机建立了telnet链接,入侵者便可以使用目标 ...

  8. [转]gzip,bzip2,tar,zip命令使用方法详解

    原文:http://blog.chinaunix.net/uid-20779720-id-2547669.html 1 gzipgzip(1) 是GNU的压缩程序.它只对单个文件进行压缩.基本用法如下 ...

  9. 【转】linux tail命令使用方法详解

    原文网址:http://www.111cn.net/sys/linux/46902.htm linux tail命令用途是按照要求将指定的文件的最后部分输出到标准设备,一般是终端,通俗讲来,就是把某个 ...

随机推荐

  1. RTU模式与ASCII模式有什么不同

    所有设备必须必须实现 RTU 模式.ASCII 传输模式是选项,即默认设置必须为 RTU 模式. 当设备使用RTU (Remote Terminal Unit) 模式在 Modbus 串行链路通信, ...

  2. openssl/ssl.h file not found

    sample/le-proxy.c:33:10: fatal error: 'openssl/ssl.h' file not found mac下,在安装某些软件的时候提示如上错误,但是mac已经安装 ...

  3. Swift入门(一)——基本的语法

    近期開始学习swift.把学习的过程和总结整理成一个系列.方便日后回想总结. 基本的语法 基础语法 swift中每一行结束后不须要加分号.多个语句在同一行内须要用分好隔开 //表示凝视.或者用/* - ...

  4. C# this.Invoke()的作用与用法

    Invoke()的作用是:在应用程序的主线程上执行指定的委托.一般应用:在辅助线程中修改UI线程( 主线程 )中对象的属性时,调用this.Invoke();   在多线程编程中,我们经常要在工作线程 ...

  5. 用word2vec对语料进行训练

    在Linux上安装好word2vec, 进入trunk文件夹,把分词后的语料文件放在trunk文件夹内,执行:./word2vec -train tt.txt -output vectors.bin ...

  6. MySQL MID()函数用法

    SQL MID() 函数用于得到一个字符串的一部分.这个函数被MySQL支持,但不被MS SQL Server和Oracle支持.在SQL Server, Oracle 数据库中,我们可以使用 SQL ...

  7. Node.js静态页面展示例子2

    例程下载:https://files.cnblogs.com/files/xiandedanteng/nodejsStaticHtmlSample.rar 页面效果: Html页面代码(注意用文本编辑 ...

  8. redis学习笔记——入门

    基本安装和用法:http://www.tuicool.com/articles/QzMRNb Redis如何通过本机客户端访问远程服务器段:http://blog.sina.com.cn/s/blog ...

  9. Angular 学习笔记——factory

    <!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv="C ...

  10. Android学习(五) 圆角实现(转)

    设置边框圆角可以在drawable-mdpi目录里定义一个取名为corners_bg.xml <?xml version="1.0" encoding="utf-8 ...