在Linux服务器管理中,日志文件就像“监控摄像头”,记录着系统和应用的运行状态。当服务器出现问题时,我们常常需要查看日志来定位原因。今天就来聊聊几个新手必须掌握的日志文件查看命令,简单易学,快速上手!

1. tail:快速看文件末尾(最常用!)

用途:查看文件的最后几行内容,适合看最新的日志(比如系统报错、应用访问记录)。
基本语法tail [选项] 文件名

常用参数:

  • -n 数字:指定显示最后数字行(默认10行),比如tail -n 20显示20行。
  • -f实时监控文件变化!比如网站突然访问变慢,用tail -f /var/log/nginx/access.log可以实时看到最新访问记录,像“直播”一样更新。
  • -q:不显示文件名(多文件同时查看时用)。

示例:

# 1. 显示/etc/passwd文件最后5行(默认10行,这里指定5行)
tail -n 5 /etc/passwd  

# 2. 实时监控日志文件(比如服务器启动日志)
tail -f /var/log/syslog  

# 3. 显示最后100行(默认就是10行,这里明确写出来更清晰)
tail -n 100 /var/log/error.log  

2. head:快速看文件开头

用途:查看文件的前几行内容,适合看日志的“初始部分”(比如系统刚启动时的日志)。
基本语法head [选项] 文件名

常用参数:

  • -n 数字:指定显示前数字行(默认10行)。

示例:

# 显示系统启动日志(dmesg)的前3行
head -n 3 /var/log/dmesg  

# 显示应用启动日志的前5行
head -n 5 /var/log/myapp.log  

3. cat:快速查看小文件全部内容

用途:直接输出文件的全部内容,适合小文件(比如配置文件、简短日志)。大文件不推荐用cat,会直接刷屏。
基本语法cat 文件名

常用参数:

  • -n:显示行号(方便定位具体内容)。
  • -b:显示非空行的行号(忽略空行)。

示例:

# 直接显示认证日志全部内容
cat /var/log/auth.log  

# 显示行号的配置文件(比如/etc/fstab)
cat -n /etc/fstab  

4. less:大文件“慢慢看”(比more更灵活)

用途:分页显示文件内容,支持上下翻页、搜索,适合大日志文件(比如几个G的系统日志)。
基本语法less 文件名

常用操作:

  • /:下一行/上一行。
  • 空格:下一页;按b:上一页。
  • /关键词:搜索关键词(比如/error找“error”),按n跳到下一个匹配,N回到上一个。
  • q:退出。

示例:

# 查看大日志文件(比如系统服务日志)
less /var/log/messages  

# 打开文件后直接搜索“warning”(不区分大小写:less +/warning 文件名)
less +/warning /var/log/syslog  

5. grep:按关键词“过滤”日志(必学!)

用途:搜索文件中包含指定关键词的行,常和tail/cat组合使用(比如先tail取最后100行,再grep过滤错误)。
基本语法grep [选项] 关键词 文件名

常用参数:

  • -n:显示匹配行的行号。
  • -i:忽略大小写(比如找“error”也能匹配“Error”)。
  • -v反向过滤(排除关键词的行,比如排除正常日志,只看错误)。
  • -f:从文件中读取关键词列表。

示例:

# 找日志中所有“error”关键词(显示行号)
grep -n "error" /var/log/nginx/error.log  

# 忽略大小写找“warning”(比如系统警告)
grep -i "warning" /var/log/syslog  

# 实时过滤404错误(先tail -f实时看日志,再过滤404)
tail -f /var/log/nginx/access.log | grep "404"  

# 排除“INFO”关键词的行(只看非INFO的日志)
grep -v "INFO" /var/log/myapp.log  

新手小技巧:组合命令“效率翻倍”

  • 实时查看最新错误tail -n 100 /var/log/syslog | grep -i "error"(先取最后100行,再过滤错误)。
  • 大文件快速定位末尾less +G 日志文件+G直接跳到文件最后一行,不用翻半天)。
  • 搜索最近24小时的问题grep "error" /var/log/syslog | grep $(date -d '1 day ago' +%Y-%m-%d)(结合日期过滤,定位时间范围)。

总结

以上命令基本覆盖了新手日常查看日志的90%场景:
- 实时监控:tail -f
- 快速定位末尾:tail -n
- 过滤关键词:grep
- 大文件分页:less

多练几次,比如拿自己的服务器日志(或本地测试文件)试试看,很快就能上手!如果遇到权限问题,记得用sudo提权哦~

小夜