在Ubuntu系统中管理命令行历史

zxl19 2025-11-09

记录一下如何在Ubuntu系统中管理命令行历史。

使用history命令

命令说明

  1. history命令用于管理命令行历史;
  2. 语法说明:

     history [-c] [-d offset] [n]
     history -anrw [filename]
     history -ps arg [arg...]
    

常用语法

  1. 显示带行号的命令历史列表:

     history
    
  2. 显示最近的n条命令(在zsh中会显示从第n条开始的所有命令):

     history n
    
  3. 以不同格式显示带时间戳的历史记录(仅在zsh中可用):

     history -d|f|i|E
    
  4. 清除命令历史列表:

     history -c
    
  5. 用当前bash的历史记录覆盖历史文件(通常与history -c结合使用以彻底清除历史):

     history -w
    
  6. 删除指定偏移量offset处的历史记录条目:

     history -d offset
    
  7. 将一条命令添加到历史记录中,但不运行:

     history -s command
    
  8. 通过在命令前添加一个空格,来运行命令且不将其添加到历史记录中:

     <space>command
    

扩展用法

  1. 以root权限运行上一条命令(!!会被替换为上一条命令):

     sudo !!
    
  2. 使用上一条命令的最后一个参数来运行一条新命令:

     command !$
    
  3. 使用上一条命令的第一个参数来运行一条新命令:

     command !^
    
  4. 运行历史记录中的第n条命令:

     !n
    
  5. 运行历史记录中的倒数第n条命令:

     !-n
    
  6. 运行最近一条包含字符串string的命令:

     !?string?
    
  7. 重新运行上一条命令,但将其中的字符串string1替换为字符串string2

     ^string1^string2^
    
  8. 执行一次历史扩展,但只打印将要运行的命令,并不运行:

     !-n:p