专栏首页三丰SanFenghistory命令使用方法详解

history命令使用方法详解

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”

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • zookeeper监控告警

    一、ZooKeeper简介 ZooKeeper作为分布式系统中重要的组件,目前在业界使用越来越广泛,ZooKeeper的使用场景非常多,以下是几种典型的应用场景...

    三丰SanFeng
  • zookeeper集群搭建

    最近公司用到了zookeeper做集群管理,这里按步骤记录一下其中的一些经验,也给后来的同学一些参考。由于这里只有一台服务器,因此搭建的其实是伪集群,多台服务器...

    三丰SanFeng
  • zookeeper的python客户端安装

    项目中使用了python,需要使用到zookeeper的功能,这里记录一下安装过程。 内核版本:2.6.32 发行版:CentOs-6.6 64bit 1、由于...

    三丰SanFeng
  • 如何轻松记住 Linux 命令

    对于Linux的使用者来说,无论是菜鸟阶段还是大神阶段,往往都会对于命令行心存戒备:大量需要记忆的命令实在是令人痛苦。掌握命令是使用高效命令行工具的前提。 然而...

    企鹅号小编
  • 如何轻松记住 Linux 命令

    对于Linux的使用者来说,无论是菜鸟阶段还是大神阶段,往往都会对于命令行心存戒备:大量需要记忆的命令实在是令人痛苦。掌握命令是使用高效命令行工具的前提。 然...

    小小科
  • Swift多线程:GCD进阶,单例、信号量、任务组1. dispatch_once,以及Swift下的单例2. dispatch_after3. 队列的循环、挂起、恢复4. 信号量(semaphore

    stanbai
  • 比特币与130多种山寨币的数字货币开源交易库CCXT(CryptoCurrency eXchange)

    CCXT(CryptoCurrency eXchange)交易库,一个JavaScript/Python/PHP加密货币交易库,支持超过100种山寨币与比特币交...

    笔阁
  • 又一篇 Deployer 的使用攻略

    overtrue
  • 前端基础-浏览器对象模型

    浏览器对象模型(Browser Object Model)–英文简称 BOM,浏览器对象模型提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。我们使用Ja...

    cwl_java
  • Linux任务/进程前后台切换

    一、 & 加在一个命令的最后,可以把这个命令放到后台执行 ,如gftp &, 二、ctrl + z 可以将一个正在前台执行的命令放到后台,并且处于暂停状态...

    wuweixiang

扫码关注云+社区

领取腾讯云代金券