背景:

正常情况下,Linux系统中输入 history  只显示序号和历史命令如下图,但是当我们想要根据历史命令来排查一些故障问题时,无法精确获取该命令执行的详细信息,包括执行时间、执行的用户、是哪个终端上执行的,想要获取详细的历史记录信息,需要手动配置一下,下面我将逐个介绍:

1. 在 /etc/bashrc 配置history 的变量

[root@192 ~]# vim /etc/bashrc
export HISTTIMEFORMAT="%Y-%m-%d:"
[root@192 ~]# source /etc/bashrc
[root@192 ~]# history
1 2022-02-27:cd /
2 2022-02-27:vim /influxdb
3 2022-02-27:mkdir /oinfluxdb
4 2022-02-27:ls
5 2022-02-27:cd /oinfluxdb
6 2022-02-27:ls
7 2022-02-27:ll
8 2022-02-27:vim influxdb.sh
9 2022-02-27:/bin/bash influxdb.sh
10 2022-02-27:systemctl status influxdb  

或者:

[root@192 ~]# vim /etc/bashrc 
export HISTTIMEFORMAT="%F %T:"
[root@192 ~]# source /etc/bashrc
[root@192 ~]# history
1 2022-02-27 13:26:38:cd /
2 2022-02-27 13:26:38:vim /influxdb
3 2022-02-27 13:26:38:mkdir /oinfluxdb
4 2022-02-27 13:26:38:ls
5 2022-02-27 13:26:38:cd /oinfluxdb
6 2022-02-27 13:26:38:ls
7 2022-02-27 13:26:38:ll
8 2022-02-27 13:26:38:vim influxdb.sh
9 2022-02-27 13:26:38:/bin/bash influxdb.sh
10 2022-02-27 13:26:38:systemctl status influxdb

或者:

[root@192 ~]# vim /etc/bashrc
export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S `whoami` "
[root@192 ~]# source /etc/bashrc
[root@192 ~]# history
1 2022-02-27 13:26:38 root cd /
2 2022-02-27 13:26:38 root vim /influxdb
3 2022-02-27 13:26:38 root mkdir /oinfluxdb
4 2022-02-27 13:26:38 root ls
5 2022-02-27 13:26:38 root cd /oinfluxdb
6 2022-02-27 13:26:38 root ls
7 2022-02-27 13:26:38 root ll
8 2022-02-27 13:26:38 root vim influxdb.sh
9 2022-02-27 13:26:38 root /bin/bash influxdb.sh
10 2022-02-27 13:26:38 root systemctl status influxdb

2.history 设置历史命令记录数

[root@192 ~]# vim /etc/bashrc
export HISTSIZE=1000
[root@192 ~]# source /etc/profile

3.指定不同终端执行的命令都存储在同一个文件中

[root@192 ~]#vim /etc/bashrc
export HISTFILE=/var/log/.cmd_log
[root@192 ~]# source /etc/bashrc

4.忽略重复命令

[root@192 ~]# vim /etc/bashrc
export HISTCONTROL=ignoredups
[root@192 ~]# source /etc/bashrc

5.多个终端同时操作时,避免命令覆盖,采用追加方式

[root@192 ~]# shopt -s histappend

关于history的小技巧

  • !number 执行第几条命令
  • !command 从最近的命令查到以command开头的命令执行
  • !! 执行上一条

Linux之history使用技巧的更多相关文章

  1. Linux查看History记录加时间戳小技巧

    Linux查看History记录加时间戳小技巧 熟悉bash的都一定知道使用history可以输出你曾经输入过的历史命令,例如[root@servyou_web ~]# history | more ...

  2. linux 常用命令及技巧

    linux 常用命令及技巧 linux 常用命令及技巧:linux 常用命令总结: 一. 通用命令: 1. date :print or set the system date and time 2. ...

  3. Linux下history命令用法

    如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率.本文将通过实例的方式向你介绍 history 命令的 15 个用法. 使用 HISTTIMEFORMAT ...

  4. linux下history命令显示历史指令记录的使用方法

    Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,一般保存在用户目录下的.bash_history文件中.默认保存1000条,你也可以更改这个值 ...

  5. 最有用的Linux命令行使用技巧集锦

    最近在Quora上看到一个问答题目,关于在高效率Linux用户节省时间Tips.将该题目的回答进行学习总结,加上自己的一些经验,记录如下,方便自己和大家参考. 下面介绍的都是一些命令行工具,这些工具在 ...

  6. Linux下history命令详解---转载

    Linux下History命令主要用于显示历史指令记录内容, 下达历史纪录中的指令 . >History命令语法:[www.linuxidc.com@linux]# history [n][ww ...

  7. [转]Linux Shell History (快速使用Linux命令)

    http://www.blogjava.net/lihao336/archive/2010/10/11/334367.html Linux Shell History (快速使用Linux命令) Li ...

  8. linux 修改history带有时间

    今天在网上学到了给linux的history添加时间.方法如下: 首先已知HISTTIMEFORMAT可以给history设置时间:临时修改直接赋值:HISTTIMEFORMAT="%F % ...

  9. [转帖]linux 清空history以及记录原理

    linux 清空history以及记录原理 自己的linux 里面总是一堆 乱七八槽输错的命令 用这个办法 可以清空 linux的内容. 清爽一些. 1.当前session执行的命令,放置缓存中,执行 ...

随机推荐

  1. fastjson字符串转JSON的$ref问题

    先说结论: fastjson在把对象转换成字符串的时候,如果遇到相同的对象的时候,默认开启引用检测将相同的对象写成引用的形式. 官网文档:https://github.com/alibaba/fast ...

  2. python中的sort方法和sorted方法

    一.sort()函数 描述 sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数. 语法 sort()方法语法: 1 list.sort(cmp=None, key=No ...

  3. 【解决了一个小问题】golang的go.mod中出现版本错误

    代码中的这一句使用prometheus2.28.0版本的代码: import "github.com/prometheus/prometheus/prompb" 我把require ...

  4. VAE变分自编码器

    我在学习VAE的时候遇到了很多问题,很多博客写的不太好理解,因此将很多内容重新进行了整合. 我自己的学习路线是先学EM算法再看的变分推断,最后学VAE,自我感觉这个线路比较好理解. 一.首先我们来宏观 ...

  5. 数据库查询语句遇到:Unknown column 'XXXX' in 'where clause'解决方法

    数据库查询语句遇到:Unknown colunm 'XXX' in 'where clause'解决方法 根本原因:可能是sql语句所用到的数据类型错误(int与String)弄错- 我的情况: 在网 ...

  6. python整数运算--4

    #!/usr/bin/python #coding=utf-8 i=1 j=3 print(i*j) print(i**j)

  7. Asp-Net-Core学习笔记:身份认证入门

    前言 过年前我又来更新了~ 我就说了最近不是在偷懒吧,其实这段时间还是有积累一些东西的,不过还没去整理-- 所以只能发以前没写完的一些笔记出来 就当做是温习一下啦 PS:之前说的红包封面我还没搞,得抓 ...

  8. 计算机网络再次整理————tcp[二]

    前言 本文不会去介绍tcp的具体协议,因为这个tcp 应该不能说是单纯的连接和传输数据这么简单,里面还有很多机制. 正文 首先介绍一下什么是协议族(protocal Family),举个例子PF_IN ...

  9. 【以太坊剖析】以太坊虚拟机(EVM)之基本定义

    以太坊虚拟机(EVM) 以太坊虚拟机(Ethereum Virtual Machine,简称EVM)是一个基于栈的虚拟机,基于特定的环境数据,执行一系列的字节代码形式的指令,以修改系统状态.EVM目前 ...

  10. JS中的堆内存与栈内存

    在js引擎中对变量的存储主要有两种位置,堆内存和栈内存. 和java中对内存的处理类似,栈内存主要用于存储各种基本类型的变量,包括Boolean.Number.String.Undefined.Nul ...