运行 history
命令会显示你当前 shell 会话中执行的命令历史记录。这个命令会显示你最近执行的命令列表,通常会按照执行的顺序显示,每条命令都会有一个编号,从 1 开始递增。如果你在之前设置了 HISTTIMEFORMAT
环境变量,命令历史记录中会显示每个命令的执行时间戳。
#修改系统环境变量,给历史命令自动添加上时间戳
export HISTTIMEFORMAT="%F %T "
在Linux系统中,命令历史记录的相关环境变量通常由Bash shell负责管理。你可以在Bash的配置文件中找到和设置这些环境变量。以下是一些常见的与命令历史记录相关的环境变量:
-
HISTSIZE: 这个环境变量用于控制命令历史记录的数量。它指定了保存在历史记录中的命令的最大数量。默认值通常为1000。
-
HISTFILESIZE: 这个环境变量用于控制保存在历史文件中的命令的数量。历史文件是用于永久保存命令历史记录的文件。这个变量指定了历史文件的大小限制。默认情况下,这个值与HISTSIZE相同。
-
HISTCONTROL: 这个环境变量用于控制历史记录的保存方式。它可以包含如下值之一:
- ignorespace: 以空格开头的命令将不会被保存在历史记录中。
- ignoredups: 如果一个命令与前一个命令相同,则不会将其保存在历史记录中。
- ignoreboth: 同时忽略以空格开头的命令和重复的命令。
使用 echo $HISTSIZE
、echo $HISTFILESIZE
和 echo $HISTCONTROL
命令来查看当前的环境变量设置。该项参数设置可在/etc/profile文件中的46行左右可以看到,也可使用env命令查看环境变量。
-
命令历史记录数量: 默认情况下,
history
命令会显示最近执行的一定数量的命令。这个数量通常由环境变量HISTSIZE
控制。你可以通过修改HISTSIZE
环境变量来调整显示的历史记录数量。 -
使用
!
重新执行命令: 你可以使用!
加上命令编号来重新执行历史记录中的命令。例如,!100
表示重新执行编号为 100 的命令。 -
过滤历史记录: 你可以使用
grep
命令来过滤历史记录,只显示包含特定关键词的命令。例如,history | grep "ls"
可以显示包含 "ls" 关键词的命令历史记录。