如何查看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 是否包含 HISTFILEHISTSIZE 配置。

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

方法

  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 historyman bash)及常见运维实践,不同Shell(如Zsh、Fish)或发行版细节可能略有差异,建议结合具体环境验证。

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

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

相关推荐

  • 奥地利商标注册官网入口怎么找?

    奥地利商标注册是企业在奥地利及欧盟市场保护品牌资产的重要法律途径,通过官方渠道进行商标注册,能够确保企业独占使用权,防止他人恶意侵权,同时为品牌扩张奠定法律基础,本文将详细介绍奥地利商标注册的官方平台、流程要求、注意事项及相关操作指南,帮助企业高效完成商标布局,奥地利商标注册官方网站概述奥地利商标注册的核心官方……

    2025年12月7日
    8600
  • cmdow命令怎么执行

    dow命令执行需在命令提示符下输入“cmdow”及相应参数,如指定

    2025年8月9日
    9400
  • 安全匿名代理服务器如何实现匿名与安全的双重保障?

    安全匿名代理服务器是一种介于用户终端与目标服务器之间的中间层网络服务,其核心功能是通过转发网络请求并隐藏用户真实IP地址,同时利用加密技术保障数据传输的机密性与完整性,从而实现“匿名性”与“安全性”的双重目标,与普通代理服务器仅简单转发流量不同,安全匿名代理在数据保护、身份隐藏和访问控制等方面具备更专业的机制……

    2025年11月4日
    10000
  • Python命令行退出有哪些通用方法?

    标准退出方法(推荐)输入退出命令在Python命令行中直接输入以下任一命令后按回车:exit()或quit()效果:立即关闭Python解释器,返回系统终端(如CMD、PowerShell或Terminal),显示系统提示符(如 C:\> 或 ),快捷键退出(高效)Windows系统:Ctrl + Z……

    2025年8月8日
    13500
  • 远程连接MySQL失败?命令行一键解决

    远程连接前的准备工作确保MySQL允许远程访问默认情况下,MySQL仅允许本地连接(localhost),需修改配置:– 登录MySQL本地服务器mysql -u root -p– 创建远程访问用户(推荐替代直接开放root)CREATE USER 'remote_user'@&#39……

    2025年7月15日
    15900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信