头图

简介

history 命令显示当前 shell 会话中以前执行过的命令列表。这对于无需重新输入命令即可重新调用或重新执行命令特别有用。

示例用法

显示命令历史列表

history

# 示例输出如下:

1  ls -l
2  cd /var/log
3  cat syslog

执行历史记录中的命令

!<number>

!2

# number 表示执行第几条命令

限制命令历史显示的条数

history <number>

history 10

清空当前 shell 会话的历史命令

history -c

把命令历史写入 ~/.bash_history 文件中

history -w

~/.bash_history 文件中读取命令

history -r

删除命令历史中的指定命令

history -d <number>

history -d 5

Ctrl + r 搜索历史命令

(reverse-i-search)`cat': cat syslog

重新执行上一条命令

!!

重新执行以指定字符串开头的最新历史命令

!<string>

!cat

结合 grep 使用

history | grep "ls"

搜索不以指定字符串开头的命令

!?ls

使用负数执行倒数最新的命令

!-2

追加命令历史到 ~/.bashrc_history 文件

history -a

设置多个 shell 会话的命令都追加写入到 ~/.bash_history 文件

# 修改 ~/.bashrc 文件,添加以下行

shopt -s histappend

环境变量设置

设置会话期间存储在内存中的命令数

export HISTSIZE=1000

设置保存在 ~/.bash_history 文件中的最大命令行数

export HISTFILESIZE=2000

定义重复或某些命令如何存储在历史记录中

  • ignoredups:忽略重复的命令
  • ignorespace:忽略以空格开头的命令
  • ignoreboth:合并以上两者
export HISTCONTROL=ignoreboth

从历史记录中排除指定的命令

export HISTIGNORE="ls:pwd:exit"

启用命令历史中的时间戳

export HISTTIMEFORMAT="%F %T "

# 示例输出如下:

1  2024-11-29 15:30:01 ls -l
2  2024-11-29 15:32:15 cd /var/log

唐青枫
9 声望2 粉丝