Linux系统里如何查看命令执行历史记录和系统操作记录?

在Linux系统中,“记录”涵盖范围广泛,包括用户执行的命令历史、系统运行日志、用户登录活动、进程运行状态以及网络连接信息等,查看这些记录是系统管理和故障排查的基础操作,不同类型的记录需通过特定命令或工具进行查看,以下从常见记录类型出发,详细介绍查看方法及常用命令。

linux如何查看记录

命令历史记录

命令历史记录了用户在终端中执行过的命令,默认保存在用户主目录的.bash_history文件中(使用bash shell时),通过history命令可查看历史命令列表,常用选项如下:

  • history n:显示最近n条命令,如history 10查看最近10条。
  • !n:执行历史命令中第n条命令,如!5执行第5条。
  • history -c:清空当前会话的历史命令(仅影响内存,不删除文件)。
  • history -a:将当前会话的历史命令追加到.bash_history文件。

环境变量HISTSIZE控制历史命令保存条数(默认1000),HISTTIMEFORMAT可显示命令执行时间,如设置export HISTTIMEFORMAT="%F %T "后,history会显示“时间 命令编号 命令内容”。

系统日志记录

系统日志记录了内核、服务、应用程序的运行状态,通常存储在/var/log目录下,不同Linux发行版日志文件名略有差异:

日志类型 常见文件路径
系统通用日志 /var/log/syslog (Ubuntu) 系统服务、内核消息、应用程序日志
系统通用日志 /var/log/messages (CentOS) 同上(CentOS/RHEL系列)
认证日志 /var/log/auth.log (Ubuntu) 用户登录、sudo操作、SSH连接记录
认证日志 /var/log/secure (CentOS) 同上(CentOS/RHEL系列)
内核日志 /var/log/kern.log 内核错误、驱动加载信息
应用日志(如Nginx) /var/log/nginx/access.log Nginx访问请求日志

查看日志常用命令:

  • cat:查看全部内容,如cat /var/log/syslog
  • less:分页查看(支持上下翻页、搜索),如less /var/log/messages
  • tail:查看末尾内容,tail -f可实时跟踪日志更新(如tail -f /var/log/auth.log实时查看登录日志)。
  • grep:过滤关键字,如grep "error" /var/log/syslog查找包含“error”的日志行。

用户登录记录

用户登录记录包括当前在线用户和历史登录信息,常用命令如下:

linux如何查看记录

  • who:显示当前登录用户、终端、登录时间和IP,如who输出“user pts/0 2023-10-01 10:00 (192.168.1.100)”。
  • w:比who更详细,显示用户当前执行的进程及系统负载,如w会列出“USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT”。
  • last:查看历史登录记录(读取/var/log/wtmp文件),显示用户名、终端、登录时间、IP和退出时间,如last -n 10显示最近10条登录记录。
  • lastb:查看失败的登录尝试(读取/var/log/btmp文件),用于排查异常登录。
  • lastlog:显示每个用户的最后一次登录时间(读取/var/log/lastlog文件),如lastlog -u username查看指定用户。

进程记录

进程记录指当前系统运行的进程信息,用于监控进程状态、资源占用等:

  • ps:静态查看进程,常用选项aux(显示所有进程详细信息,包括CPU、内存占用),如ps aux | grep nginx过滤Nginx相关进程。
  • top/htop:动态实时查看进程(htoptop更友好,支持颜色、鼠标操作),默认按CPU占用排序,可按P(CPU)、M(内存)切换排序字段。
  • pgrep:根据进程名查找进程ID(PID),如pgrep -f "nginx"查找包含“nginx”的进程PID。

网络连接记录

网络连接记录查看端口监听、连接状态等信息,用于排查端口占用、异常连接:

  • netstat:传统网络工具,常用选项-tuln(显示监听的TCP/UDP端口)、-an(显示所有连接,不解析域名),如netstat -tuln | grep ":80"查看80端口监听状态。
  • ss:新替代netstat的工具(更高效),选项与netstat类似,如ss -tuln | grep ":80"
  • lsof:查看端口占用进程,如lsof -i :80显示占用80端口的进程PID、名称等。

相关问答FAQs

Q1:如何永久保存命令历史记录,避免终端关闭后丢失?
A:通过修改shell配置文件(如.bashrc.bash_profile)实现,编辑文件(vim ~/.bashrc),添加以下配置:

export HISTSIZE=10000          # 设置历史命令保存条数  
export HISTFILESIZE=20000      # 设置历史文件大小  
export HISTCONTROL=ignoredups  # 忽略重复命令  
export HISTTIMEFORMAT="%F %T " # 显示命令执行时间  
shopt -s histappend           # 追加历史记录,而非覆盖  

保存后执行source ~/.bashrc生效,此后命令历史会永久保存到.bash_history文件。

Q2:如何查看系统日志中最近1小时内包含“error”关键字的日志?
A:结合grepdate命令实现,首先通过date获取1小时前的时间格式,再用grep过滤日志,例如查看/var/log/syslog中的错误日志:

linux如何查看记录

grep "$(date -d '1 hour ago' '+%b %d %H:%M').*error" /var/log/syslog  

或使用journalctl(systemd系统,适用于Ubuntu 16.04+、CentOS 7+):

journalctl --since "1 hour ago" --priority=err  

其中--since指定时间范围,--priority=err过滤错误级别日志(可选优先级:emerg、alert、crit、err、warning、notice、info、debug)。

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

(0)
酷番叔酷番叔
上一篇 2025年10月4日 05:15
下一篇 2025年10月4日 05:28

相关推荐

  • Linux如何查看端口是否被占用?

    在Linux系统中,端口是网络通信的入口,每个端口对应一个服务或进程,当服务启动失败、网络连接异常或需要排查安全问题时,查看端口是否被占用是常见的操作,本文将详细介绍Linux系统中查看端口占用的多种方法,包括常用命令、参数解析及实际应用场景,帮助用户高效掌握端口状态排查技巧,使用netstat命令查看端口占用……

    2025年9月29日
    12000
  • Linux如何查看U盘设备路径?

    为什么需要查看U盘位置?挂载/卸载:Linux不会自动挂载U盘,需手动指定位置,格式化/分区:操作前需确认设备路径,避免误选硬盘,故障排查:检查U盘是否被系统识别,查看U盘位置的4种方法使用 lsblk 命令(推荐)原理:列出所有块设备(硬盘、U盘、分区),清晰显示层级关系,步骤:lsblk输出示例:NAME……

    2025年8月4日
    12800
  • 如何正确配置LVM?

    分区基础概念在红帽企业Linux 6(RHEL 6)安装过程中,磁盘分区是构建稳定系统环境的关键步骤,合理的分区方案能提升系统安全性、简化维护并优化性能,以下为详细操作指南:必需的分区/boot 分区作用:存放内核与启动文件大小:≥500MB(推荐1GB)格式:ext4注意:BIOS系统需置于MBR磁盘前2TB……

    2025年7月19日
    15100
  • Linux下如何快速跳转目录?命令与实用技巧解析

    在Linux操作系统中,目录跳转是最基础且高频的操作之一,无论是日常文件管理还是系统维护,都离不开对目录的灵活切换,Linux中目录跳转的核心命令是cd(Change Directory),其功能强大且用法多样,结合路径表示方法、命令选项、快捷键及高级技巧,可以大幅提升操作效率,本文将详细解析Linux目录跳转……

    2025年10月5日
    10300
  • 如何在Ubuntu/Debian安装字体管理工具?

    在Linux环境下添加字体可以通过多种方法实现,以下为详细步骤(适用于主流发行版如Ubuntu、Fedora、Debian等),操作前请确保字体文件(.ttf/.otf)来源合法且安全:图形界面安装(推荐桌面用户)下载字体文件从可信来源(如Google Fonts、字体厂商官网)下载.ttf或.otf格式的字体……

    2025年8月4日
    10800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信