Linux 中的 history 命令
-
Bash 中的
history
命令 -
Bash 中的
history
环境变量 - 在 Bash 中显示历史
-
在 Bash 中显示历史中的前
n
个命令 -
在 Bash 中显示历史上最后的
n
个命令 - 在 Bash 中搜索历史
- 从 Bash 的历史记录中删除命令
- 删除 Bash 中的全部历史记录
本教程展示了使用 history
命令来显示 Bash 历史记录、在历史记录中搜索、删除命令以及清除整个历史记录。
Bash 中的 history
命令
Bash 中的 history
命令显示在 shell 会话中执行的所有命令的列表。history
命令将在 shell 上执行的每个命令视为一个事件,并为其分配一个事件编号。
以后可以使用事件编号访问这些命令,也可以修改它们。主目录中的 .bash_history
文件还存储终端上最近执行的命令。
Bash 中的 history
环境变量
与 history
命令相关的三个环境变量是: HISTFILE
、HISTFILESIZE
和 HISTSIZE
。环境变量 HISTFILE
存储 Bash 历史文件的名称和位置 .bash_history
。
环境变量 HISTFILESIZE
存储存储在 .bash_history
文件中的命令数,HISTSIZE
存储可以缓存的命令数。
下图显示了三个环境变量中存储的值; HISTFILE
、HISTFILESIZE
和 HISTSIZE
。
.bash_history
文件可以存储 2000 条命令,一旦达到最大命令数,将删除最旧的命令,并存储新的命令。
系统可以缓存的最大命令数为 1000。
你必须编辑主目录中的 .bashrc
文件以修改三个环境变量。
在 Bash 中显示历史
要在 Bash 中显示所有 history
命令,请键入 history
并按 Enter。当执行下图中的 history
命令时,我们看到部分输出显示到标准终端。
命令前面的数字是与每个命令关联的事件编号。
在 Bash 中显示历史中的前 n
个命令
我们可以使用 history
命令和 head
命令来显示历史中的前 n
个命令。我们在下图中显示了历史上的前 10
个命令。
我们使用 history
命令、管道运算符和 head
命令来显示前 10
个命令。history
命令输出通过管道传送到 head
命令,该命令仅获取历史输出的前 10
行并将它们显示到标准输出。
在 Bash 中显示历史上最后的 n
个命令
我们可以使用 history
命令来显示最后 n
个命令并传递一个整数作为参数。我们传递的整数告诉 history
命令显示历史中最后的 n
命令。
我们使用 history
命令并传递下图中的整数 7
。这意味着 history
命令将显示历史中最后的 7
命令。
在 Bash 中搜索历史
我们还可以使用 history
命令和 grep
命令来搜索历史记录中的特定模式。下图在历史记录中使用 grep
命令搜索正则表达式 delft
。
我们使用 history
命令、管道运算符和 grep
命令在历史记录中搜索正则表达式。history
命令的输出通过管道传送到 grep
命令,该命令在其中搜索正则表达式 delft
。
所有匹配正则表达式的行都显示到标准终端。
从 Bash 的历史记录中删除命令
history
命令还可以从历史记录中删除特定命令。要从历史记录中删除命令,我们使用带有 -d
选项的 history
命令和命令的事件编号。
在下图中,我们使用命令 history 10
列出历史中最后的 10
命令。我们决定删除已突出显示的命令。
我们使用带有 -d
选项的 history
命令,并传入突出显示命令的事件编号。它从历史记录中删除该命令。
为了确认命令是否已被删除,我们检查历史记录中的最后 10
行,我们看到事件 ID 为 312
的命令 pwd
不存在。
删除 Bash 中的全部历史记录
要删除历史记录中的所有条目,我们使用带有 -c
选项的 history
命令。它会删除历史记录中的所有条目。
在下图中,我们使用 history
命令列出历史中最后的 5
个命令。稍后,我们使用带有 -c
选项的 history
命令来清除历史记录中的所有条目。
我们使用 history
命令显示历史中的所有条目,我们看到所有条目都已被清除。