如何查看Linux命令历史记录?

使用 history 命令(最常用)

作用:直接查看当前用户的历史命令记录。
操作步骤:

  1. 打开终端,输入:
    history
  2. 显示结果示例:
    1  cd ~/Documents
    2  ls -l
    3  sudo apt update
    ...(按时间倒序列出所有记录)

    高级用法:

  • 显示最近10条记录:history 10
  • 清除当前会话记录:history -c(重启后恢复)
  • 执行历史命令:!编号(如 !3 重新执行第3条命令)

注意:

  • 记录默认保存数量由 HISTSIZE 变量控制(通常1000~5000条),可通过 echo $HISTSIZE 查看。
  • 仅限当前用户查看自己的记录。

直接查看历史文件(持久化存储)

作用:查看系统永久保存的命令记录文件。
文件路径:

  • Bash shell:~/.bash_history(当前用户家目录下)
  • Zsh shell:~/.zsh_history
  • Root用户:/root/.bash_history

操作步骤:

cat ~/.bash_history       # 查看所有记录
tail -n 20 ~/.bash_history # 查看最近20条

关键特性:

  • 文件在用户退出终端时更新,实时操作需结合 history 命令。
  • 若记录缺失,检查 ~/.bashrc 是否包含 HISTFILE 和 HISTSIZE 配置。

实时监控命令执行(调试场景)

方法:

  1. 使用 script 命令全程录制:
    script -a command_log.txt  # 开始录制(-a表示追加)
    exit                       # 结束录制
    cat command_log.txt        # 查看记录
  2. 通过 PROMPT_COMMAND 实时记录(需配置):
    在 ~/.bashrc 中添加:

    export PROMPT_COMMAND='history -a > /dev/null'

    执行 source ~/.bashrc 生效,使命令实时写入历史文件。


查看系统级日志(需管理员权限)

作用:审计所有用户的 sudo 命令或登录行为。
日志路径:

  • /var/log/auth.log(Debian/Ubuntu)
  • /var/log/secure(CentOS/RHEL)

操作示例:

sudo grep 'sudo.*COMMAND' /var/log/auth.log  # 过滤sudo命令
sudo tail -f /var/log/secure                # 实时监控登录与提权操作
```  示例**:  
```log
Aug 1 10:00:00 server sudo: user : TTY=pts/0 ; COMMAND=/usr/bin/apt update

其他实用技巧

  1. 反向搜索历史命令:
    按 Ctrl + R 输入关键词,实时搜索历史记录(支持上下键切换)。
  2. 按时间查看历史:
    在 ~/.bashrc 添加 HISTTIMEFORMAT="%F %T ",执行 source ~/.bashrc,后续 history 显示执行时间。
  3. 隔离敏感命令:
    命令前加空格(如 mysql -u root -p)可跳过记录(需配置 HISTCONTROL=ignorespace)。

安全与隐私建议

  1. 权限管理:
    • 普通用户无法查看他人的 ~/.bash_history 或系统日志(需 sudo)。
    • 敏感操作建议使用 ssh 密钥替代密码。
  2. 记录保护:
    • 定期备份历史文件。
    • 清除记录:cat /dev/null > ~/.bash_history(谨慎操作)。
  3. 合规性:
    企业环境中,使用审计工具(如 auditd)满足安全合规要求。

引用说明参考 Linux 官方文档(Bash手册)、man 手册页(man history、man bash)及常见运维实践,不同Shell(如Zsh、Fish)或发行版细节可能略有差异,建议结合具体环境验证。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9008.html

赞 (0)
酷番叔酷番叔
上一篇 2025年7月28日 09:47
下一篇 2025年7月28日 10:01

相关推荐

  • 经营类网站备案需要什么条件和材料?,经营类网站备案流程

    经营类网站备案的核心不在于“提交材料”这一动作,而在于理解各省通信管理局对“经营性互联网信息服务”的审核尺度差异,只要你的网站涉及付费交易、广告推广、会员充值或在线服务收费,就必须在备案时明确业务性质,并在通过ICP备案后,根据实际运营情况判断是否需要额外办理《增值电信业务经营许可证》,若将两者混为一谈,极易导……

    2026年8月21日
    21200
  • java服务器端开发技术_基于Java开发

    Java仍是企业级服务器端开发的首选技术栈在当前的服务器端开发领域,Java凭借其成熟的生态体系、极强的稳定性、出色的并发处理能力以及跨平台特性,依然是构建高可用、高并发企业级应用的中坚力量,无论是传统金融、电商系统,还是云计算、微服务架构,Java服务器端技术都提供了从底层到上层的一整套可验证、可扩展的解决方……

    2026年8月27日
    9000
  • 建立网站准备工作流程复杂吗?网站类业务接入流程详解

    网站建设成败的关键在于前期准备与业务接入流程的规范化建立网站并成功接入业务,绝非简单的技术堆砌,而是一套需要严谨规划、分步执行的专业流程,准备工作越充分,接入过程越顺畅,后期维护成本越低,无论是企业官网还是复杂业务系统,遵循“先规划、后部署、再优化”的金字塔原则,能有效规避域名解析失败、备案驳回、服务器配置不当……

    2026年8月20日
    7200
  • Windows如何安全保存Python命令?

    保存为Python脚本文件(.py)适用场景:重复执行固定代码(如数据分析、自动化操作),步骤:打开文本编辑器(如记事本、VS Code),输入Python代码: print("Hello, World!")# 示例:保存当前目录文件列表到txtimport oswith open(&quo……

    2025年7月7日
    28800
  • 怎么用命令打开程序错误

    在通过命令行(如Windows的CMD、PowerShell或Linux的终端)打开程序时,用户常会遇到各种错误提示,这些错误可能源于路径问题、权限不足、依赖缺失或语法错误等,掌握常见错误的排查方法,能快速定位并解决问题,提高命令行操作效率,以下从常见错误类型、具体原因及解决步骤展开说明,并结合不同操作系统的差……

    2025年8月27日
    29200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信