执行history命令时打印命令执行时间

命令行历史记录

  • 当执行命令后,系统默认会在内存记录执行过的命令
  • 当用户正常退出时,会将内存的命令历史存放对应历史文件中,默认是~/.bash_history
  • 登录shell时,会读取命令历史文件中记录下的命令加载到内存中
  • 登录进shell后新执行的命令只会记录在内存的缓存区中;这些命令会用户正常退出时“追加”至命令历史文件中
  • 利用命令历史。可以用它来重复执行命令,提高输入效率

history命令常用选项

-c: 清空命令历史
-d offset: 删除历史中指定的第offset个命令
 n: 显示最近的n条历史
-a: 追加本次会话新执行的命令历史列表至历史文件
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-n: 读历史文件中未读过的行到历史列表
-p: 展开历史参数成多行,但不存在历史列表中
-s: 展开历史参数成一行,附加在历史列表后

history命令相关环境变量

HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
HISTTIMEFORMAT="%F %T `whoami` "   显示时间和用户
HISTIGNORE="str1:str2*:…" 忽略str1命令,str2开头的历史
HISTCONTROL:控制命令历史的记录方式
	ignoredups 是默认值,可忽略重复的命令,连续且相同为“重复”
	ignorespace 忽略所有以空白开头的命令
	ignoreboth   相当于ignoredups, ignorespace的组合
	erasedups   删除重复命令

持久保存变量
以上变量可以 export 变量名="值" 形式存放在 /etc/profile(对所有用户生效) 或 ~/.bash_profile(对当前用户生效)

[root@centos8 ~]# cat .bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
export HISTTIMEFORMAT="%F %T "  	#执行history时显示命令执行时间

#############################

#新开一个终端执行history验证结果
[root@centos8 ~]# history 
    1  2022-04-03 13:53:27 df -h
    2  2022-04-03 13:53:27 poweroff 
    3  2022-04-03 13:53:27 sudo sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*
    4  2022-04-03 13:53:27 sudo sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*
    5  2022-04-03 13:53:27 poweroff 
    6  2022-04-03 13:53:27 yum provides mime.types
    7  2022-04-03 13:53:27 yum provides *mime.types
    8  2022-04-03 13:53:27 ls
	...
[root@centos8 ~]# 
posted @   浅笑人伤  阅读(216)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示