> 软件包与系统管理 > history

history命令指南:查询和管理Shell命令历史

`history`命令显示用户之前在终端中执行的命令列表(历史)。这对于轻松查找并重新执行过去使用的命令或记住进行过的操作非常有用。通过本指南,您将学习`history`命令的基本用法以及管理历史所需的各种选项。

history概述

每当用户在终端中输入命令时,该命令会记录到历史文件中(通常是`~/.bash_history`或`~/.zsh_history`)。`history`命令读取该文件的内容并在屏幕上显示,即使Shell会话结束后,历史记录仍然会保留。

history的主要作用

`history`命令主要用于以下目的:

主要应用领域

  • 命令重新执行: 可以轻松重新执行之前使用过的长命令,无需重新输入。
  • 任务跟踪: 帮助确认过去执行过的任务,并了解工作流。
  • 提高生产力: 快速找到常用命令,节省输入时间。
  • 脚本编写参考: 将过去成功执行的命令组合用于脚本编写。

环境变量与history

历史功能受到几个环境变量的影响:

主要相关环境变量

  • `HISTSIZE`: 内存中存储的命令历史的最大数量。该值在当前Shell会话期间保持。
  • `HISTFILESIZE`: 存储在历史文件(如`~/.bash_history`)中的命令历史的最大数量。该值在Shell会话之间保持。
  • `HISTFILE`: 指定命令历史保存的文件路径。默认值为`~/.bash_history`。
  • `HISTCONTROL`: 控制历史记录的方式。(例如:`ignoredups` - 忽略重复命令,`ignorespace` - 忽略以空格开头的命令)

主要history命令选项

`history`命令提供了查询、修改和管理历史列表所需的各种选项。

1. 历史查询和输出

2. 修改和重新执行历史

生成的命令:

请尝试组合命令。

描述:

`history` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

`history`命令的各种应用示例,帮助您有效查询和重用命令历史。

查询最近20条命令

history 20

输出最近执行的20条命令列表,带有编号。

在命令历史中搜索特定字符串

history | grep docker

使用`grep`命令查找历史中包含'docker'的命令。

重新执行之前的`ls`命令

!ls

查找最近以`ls`开头的命令并重新执行。

重用最后一个命令的最后参数

cat /var/log/syslog
less !$

在执行`cat /var/log/syslog`后,想要用`less`命令重新打开`/var/log/syslog`时很有用。

立即将当前Shell历史保存到文件

history -w

在关闭Shell之前,立即将当前会话中执行的所有命令保存到`~/.bash_history`文件中。

删除特定历史编号

history -d 125

使用`history`命令确认后,删除历史中的125号命令。(注意:一旦删除无法恢复)


相同类别命令