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号命令。(注意:一旦删除无法恢复)