news 2026/5/15 4:00:15

Ubuntu history 命令实用教程(设置记录命令行数或永久记录等)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ubuntu history 命令实用教程(设置记录命令行数或永久记录等)

Ubuntu history 命令实用教程

    • 简介
    • 一、认识 history 是什么
    • 二、查看本机当前历史配置
      • 1. 查看当前历史条数限制
      • 2. 查看历史文件实际已有多少条记录
    • 三、手动设置 history 指定记录行数
      • 1. 编辑配置文件
      • 2. 写入指定行数配置
      • 3. 保存退出并生效
    • 四、设置 history 永久不删除(无限保存)
      • 1. 编辑配置文件
      • 2. 粘贴无限历史配置
      • 3. 保存退出并生效
      • 4. 验证配置
    • 五、解决每次需手动 source 才能生效
    • 六、多终端同步效果测试
    • 七、隐私用法:敏感命令不记录到历史
      • 1. 单条命令临时免记录(最常用)
      • 2. 整个会话临时关闭历史记录
      • 3. 删除刚执行的上一条历史
    • 八、history --help 完整英文文档 逐行中文翻译
      • 原版命令语法
      • 功能说明原文
      • 参数选项详解
      • 历史文件规则原文
      • 时间戳规则原文
      • 退出状态原文
    • 九、history 基础常用命令
      • 1. 查看全部历史
      • 2. 只查看最近10条
      • 3. 搜索包含关键词的历史命令
    • 十、高效快捷用法(提升终端效率)
      • 1. 重新执行上一条命令
      • 2. 按编号执行指定历史命令
      • 3. 执行最后一条以某字符开头的命令
      • 4. 临时不记录当前命令
    • 十一、历史记录删除与清空操作
      • 1. 删除指定单条历史(按编号)
      • 2. 清空当前终端会话历史
      • 3. 彻底清空全部历史记录
    • 十二、常见问题排查
      • 问题1:配置后不显示时间戳
      • 问题2:新开终端配置失效
      • 问题3:想恢复系统默认配置
    • 十三、总结

简介

本文零讲解history命令原理、设置指定记录行数、配置永久无限不删除历史、显示时间戳、多终端历史同步,附带history --help完整参数中文翻译详解、常用快捷用法、删除与清空操作,所有代码均为多行格式可一键复制,零基础跟着就能配置。

一、认识 history 是什么

history是 Linux 终端自带的命令历史记录工具,自动保存你输入过的所有终端命令,方便回溯、复用、排查故障。

Ubuntu 默认只保存固定条数命令,旧命令会自动被清理。本文教你两种配置方式:

  1. 自定义设置指定记录行数
  2. 设置历史命令永久保存、永不自动删除

二、查看本机当前历史配置

1. 查看当前历史条数限制

echo$HISTSIZEecho$HISTFILESIZE
  • HISTSIZE:当前终端会话,内存中保留的命令最大条数
  • HISTFILESIZE:磁盘文件~/.bash_history永久保存的最大命令条数

2. 查看历史文件实际已有多少条记录

wc-l~/.bash_history

三、手动设置 history 指定记录行数

适合不想无限保存,只想固定保存5000条、10000条自定义条数的用户。

1. 编辑配置文件

nano~/.bashrc

Ctrl+End跳到文件末尾。

2. 写入指定行数配置

示例:设置内存保留5000条,文件永久保留10000条

# 自定义 history 指定记录条数HISTSIZE=5000HISTFILESIZE=10000# 显示命令执行时间戳 年-月-日 时:分:秒HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "# 忽略重复命令、忽略开头带空格的命令不记录HISTCONTROL=ignoreboth# 多终端实时同步历史记录PROMPT_COMMAND="history -a; history -c; history -r"

可自行修改数字:

  • 想存 8000 条:改成HISTSIZE=8000HISTFILESIZE=8000
  • 想存 20000 条:改成HISTSIZE=20000HISTFILESIZE=20000

3. 保存退出并生效

  1. Ctrl+O回车保存 →Ctrl+X退出
  2. 执行命令让配置立即生效
source~/.bashrc

四、设置 history 永久不删除(无限保存)

不需要固定行数,所有命令永久保存、永不自动清理。

1. 编辑配置文件

nano~/.bashrc

2. 粘贴无限历史配置

# 历史命令全局优化配置# 无限保存历史,永不自动删除HISTSIZE=-1HISTFILESIZE=-1# 历史记录显示时间戳 年-月-日 时:分:秒HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "# 忽略重复命令、忽略开头带空格的命令不记录HISTCONTROL=ignoreboth# 多终端实时同步历史记录PROMPT_COMMAND="history -a; history -c; history -r"

3. 保存退出并生效

source~/.bashrc

4. 验证配置

history

每条命令前显示编号 + 时间戳 + 命令,即为配置成功。

五、解决每次需手动 source 才能生效

问题原因:图形终端、普通终端默认不会自动加载.bashrc

编辑登录配置文件:

nano~/.bash_profile

粘贴以下内容(无该文件则自动创建):

# 登录终端自动加载 .bashrc 配置if[-f~/.bashrc];thensource~/.bashrcfi

保存退出。

测试:关闭所有终端,重新打开任意终端,配置自动生效,无需手动source

六、多终端同步效果测试

  1. 打开两个终端窗口
  2. 终端A 输入任意命令:echo 测试历史同步
  3. 终端B 直接按键盘↑ 上箭头,能立刻看到终端A 的命令;
  4. 所有终端历史完全合并、实时同步,互不覆盖。

七、隐私用法:敏感命令不记录到历史

1. 单条命令临时免记录(最常用)

命令前面先敲一个空格,再输入命令:

mysql-uroot-p123456exportAPI_KEY=私密密钥

特点:自动跳过历史记录,history查不到,历史文件也不保存。

2. 整个会话临时关闭历史记录

关闭后续所有命令记录:

set+ohistory

操作完敏感配置后,恢复历史记录:

set-ohistory

3. 删除刚执行的上一条历史

执行完才发现不想留记录,一键删除上一条:

history-d$((HISTCMD-1))

八、history --help 完整英文文档 逐行中文翻译

原版命令语法

history:history[-c][-d offset][n]orhistory-anrw[filename]orhistory-psarg[arg...]

中文翻译

history用法格式:1. 基础用法:history[-c][-d 偏移量][显示条数n]2. 文件同步用法:history-anrw[自定义历史文件名]3. 扩展参数用法:history-ps参数1[参数2...]

功能说明原文

Display or manipulate thehistorylist. Display thehistorylist with line numbers, prefixing each modified entry with a `*'. An argument of N lists only the last N entries.

中文翻译
显示或操作命令历史列表。
带行号展示历史命令,被修改过的历史条目前面会标记*
后跟数字 N 时,仅展示最近 N 条历史记录。

参数选项详解

Options:-cclearthehistorylist by deleting all of the entries-doffset delete thehistoryentry at position OFFSET. Negative offsets count back from the end of thehistorylist-aappendhistorylines from this session to thehistoryfile-nreadallhistorylines not alreadyreadfrom thehistoryfileand append them to thehistorylist-rreadthehistoryfileand append the contents to thehistorylist-wwritethe currenthistoryto thehistoryfile-pperformhistoryexpansion on each ARG and display the result without storing itinthehistorylist-sappend the ARGs to thehistorylist as a single entry

逐参数中文翻译

  • -c:清空当前终端所有历史列表条目
  • -d 偏移量:删除指定位置的历史记录;支持负数,负数表示从历史列表末尾倒数计算位置
  • -a:把当前终端会话的新命令,追加写入到历史文件
  • -n:读取历史文件中尚未加载到当前终端的命令,追加到本地历史列表
  • -r:读取历史文件全部内容,追加加载到当前终端历史列表
  • -w:把当前终端的所有历史,强制写入覆盖到历史文件
  • -p:解析并展开历史参数,仅展示结果,不存入历史记录
  • -s:把传入的参数作为一条单独命令,手动添加到历史列表

历史文件规则原文

If FILENAME is given, it is used as thehistoryfile. Otherwise,ifHISTFILEhas a value, that is used,else~/.bash_history.

中文翻译
如果执行命令时指定了文件名,则使用该文件作为历史记录文件;
若未指定,优先读取环境变量HISTFILE设置的文件;
都没有则默认使用:~/.bash_history

时间戳规则原文

If the HISTTIMEFORMAT variable issetand not null, its value is used as aformatstringforstrftime(3)to print thetimestamp associated with each displayedhistoryentry. Notimestamps are printed otherwise.

中文翻译
若配置了HISTTIMEFORMAT变量且不为空,会按照时间格式模板,为每条历史命令打印时间戳;
未配置该变量时,历史命令不显示时间。

退出状态原文

Exit Status: Returns success unless an invalid option is given or an error occurs.

中文翻译
执行状态:只要参数合法、无运行错误,均返回执行成功;传入非法参数或异常时报错。

九、history 基础常用命令

1. 查看全部历史

history

2. 只查看最近10条

history10

3. 搜索包含关键词的历史命令

替换apt为自己要查找的关键词

history|grepapt

十、高效快捷用法(提升终端效率)

1. 重新执行上一条命令

!!

2. 按编号执行指定历史命令

替换120为实际 history 编号

!120

3. 执行最后一条以某字符开头的命令

!sudo

4. 临时不记录当前命令

命令前面加一个空格再回车,本条不会存入历史:

sudo敏感操作命令

十一、历史记录删除与清空操作

1. 删除指定单条历史(按编号)

替换55为对应历史编号

history-d55

2. 清空当前终端会话历史

history-c

3. 彻底清空全部历史记录

谨慎使用,清空后无法恢复

history-c&&history-w

十二、常见问题排查

问题1:配置后不显示时间戳

重新加载配置再查看:

source~/.bashrchistory

问题2:新开终端配置失效

确保配置代码粘贴在~/.bashrc文件末尾,重新执行:

source~/.bashrc

问题3:想恢复系统默认配置

一键还原所有自定义配置:

sed-i'/HISTSIZE=/d'~/.bashrcsed-i'/HISTFILESIZE=/d'~/.bashrcsed-i'/HISTTIMEFORMAT=/d'~/.bashrcsed-i'/HISTCONTROL=ignoreboth/d'~/.bashrcsed-i'/PROMPT_COMMAND=/d'~/.bashrcsource~/.bashrc

十三、总结

  1. 指定行数配置:修改HISTSIZEHISTFILESIZE自定义保存条数;
  2. 永久无限配置:设为-1即可永不删除历史记录;
  3. 配置HISTTIMEFORMAT实现历史命令显示年月日时分秒时间戳;
  4. 附带官方history --help完整中文翻译,看懂每一个参数作用;
  5. 掌握搜索、按编号执行、删除单条、清空历史等日常必备用法,大幅提升终端操作效率。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/15 3:57:27

C# / .NET 在工业环境中的优势

C# 与 .NET 在工业环境中的优势并非单一的技术特性,而是 “高性能、高开发效率、完整生态与跨平台能力” 的结合。从底层的设备通信到顶层的数字孪生,.NET 技术栈提供了覆盖全场景的一体化解决方案。 以下是其在工业领域的核心优势: 高性能…

作者头像 李华
网站建设 2026/5/15 3:57:19

开源AI代理框架Corellis:构建可控可观测的智能体工作流

1. 项目概述:一个开源的AI代理框架最近在折腾AI应用开发,特别是想搞点能自主处理复杂任务的智能体(Agent),发现市面上框架虽多,但要么太重,要么太“黑盒”,调试起来让人头疼。直到我…

作者头像 李华
网站建设 2026/5/15 3:57:14

Kubernetes kubeconfig文件实战:从生成、合并到多集群切换

1. 理解kubeconfig文件的核心作用 当你第一次接触Kubernetes集群管理时,可能会好奇为什么在Master节点上能顺利执行kubectl命令,而在Node节点上却报错。这个现象背后隐藏着kubeconfig文件的关键作用。简单来说,kubeconfig就像是打开Kubernete…

作者头像 李华
网站建设 2026/5/15 3:56:06

综合实战——开发一个“智能标书辅助生成系统“(01需求分析与架构设计)

综合实战——开发一个“智能标书辅助生成系统“ 前言:为什么选择"标书生成"作为实战项目? 在正式开始之前,先回答一个关键问题:为什么选这个场景? 标书(Bid/Proposal)生成是企业中一个真实且高价值的AI应用场景: 痛点明确:写一份标书需要3-5天,且大量内容…

作者头像 李华
网站建设 2026/5/15 3:50:32

避开英文论文3大降AIGC误区:如何通过结构级优化顺利通关?

马上要临近答辩了,还有的同学在发愁英文摘要和全英文章怎么降低aigc率。英文文本的句式本来就很固定,比如大量的被动语态和从句,这就很容易被系统标记,尤其对于我们这种非英语母语者来说,更是无从下手。 今天我就结合…

作者头像 李华
网站建设 2026/5/15 3:47:12

SDR++终极指南:跨平台软件定义无线电快速入门与专业应用

SDR终极指南:跨平台软件定义无线电快速入门与专业应用 【免费下载链接】SDRPlusPlus Cross-Platform SDR Software 项目地址: https://gitcode.com/GitHub_Trending/sd/SDRPlusPlus 你是否对无线电世界充满好奇,想要探索从广播电台到卫星信号的各…

作者头像 李华