背景:

正常情况下,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. js中数字和字母互转的方法

    var letter = String.fromCharCode(66); // B var num = "B".charCodeAt(); // 66

  2. 【记录一个问题】go get -u github.com/go-redis/redis出现错误" invalid character '.' after top-level value"

    安装某个库的时候依赖于redis库,总是出现这样的错误: go install go: github.com/go-redis/redis/v7@v7.2.0: parsing go.mod: mis ...

  3. es基础知识

    1.ES定义 •是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储.检索数据:本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据 •使用Java开发并使用Lucene作为其核心来实现 ...

  4. ES6复习干货知识点汇总

    一.问:ES6是什么,为什么要学习它,不学习ES6会怎么样? 答: ES6是新一代的JS语言标准,对分JS语言核心内容做了升级优化,规范了JS使用标准,新增了JS原生方法,使得JS使用更加规范,更加优 ...

  5. deque概述

    1.简介 双端队列deque,与vector的最大差异在于: 一.deque运行常数时间对头端或尾端进行元素的插入和删除操作. 二.deque没有所谓的容器概念,因为它是动态地以分段连续空间组合而成随 ...

  6. 如何使用自对弈强化学习训练一个五子棋机器人Alpha Gobang Zero

    前言 2016年3月,Alpha Go 与围棋世界冠军.职业九段棋手李世石进行围棋人机大战,以4比1的总比分获胜,在当时引起了轩然大波.2017年10月,谷歌公布了新版五子棋程序 AlphaGo Ze ...

  7. X000010

    P1829 [国家集训队]Crash的数字表格 / JZPTAB 题意:求 \({\rm S}(n,m)=\sum\limits_{i=1}^n\sum\limits_{j=1}^m{\rm lcm} ...

  8. SP419/422 TRANSP(2) - Transposing is Fun

    首先可以发现转置本质上就是一个置换,问题就转化为求一个排列排成有序的最少次数. 这是一个经典问题,答案为点数减循环置换的个数,考虑如何求循环置换. 发现有两个特殊性质:置换为转置,矩阵的边长为 \(2 ...

  9. [USACO18DEC]Balance Beam P

    根据题意不难发现这个模型是不好进行贪心的,于是可以考虑使用 \(dp\).可以令 \(dp_i\) 表示在 \(i\) 位置以最优策略能获得的报酬期望值,那么会有转移: \[dp_i = \max(f ...

  10. 接口里的default,static方法

    我们都知道接口里的变量默认隐含类型是public static final,也是就是说是常量.而方法默认类型是public abstract,所以接口的方法都是抽象方法,但是事实真的是这样吗? 我的P ...