背景:
正常情況下,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
開頭的命令執行!!
執行上一條