跳到主要内容

查看文件内容

less​

比 more 强大的文件查看器

  • -b - <缓冲区大小> 设置缓冲区的大小
  • -e - 当文件显示结束后,自动离开
  • -f - 强迫打开特殊文件,例如外围设备代号 、 目录和二进制文件
  • -g - 只标志最后搜索的关键词
  • -i - 忽略搜索时的大小写
  • -m - 显示类似 more 命令的百分比
  • -N - 显示每行的行号
  • -o - <文件名> 将 less 输出的内容在指定文件中保存起来
  • -Q - 不使用警告音
  • -s - 显示连续空行为一行
  • -S - 行过长时间将超出部分舍弃
  • -x - <数字> 将“ tab ”键显示为规定的数字空格
  • /字符串 - 向下搜索“字符串”的功能
  • ?字符串 - 向上搜索“字符串”的功能
  • -n - 重复前一个搜索(与 / 或 ? 有关)
  • -N - 反向重复前一个搜索(与 / 或 ? 有关)
  • -b - 向后翻一页
  • -d - 向后翻半页
  • -h - 显示帮助界面
  • -Q - 退出 less 命令
  • -u - 向前滚动半页
  • -y - 向前滚动一行
  • 空格键 - 滚动一行
  • 回车键 - 滚动一页
  • [pagedown] - 向下翻动一页
  • [pageup] - 向上翻动一页

nl​

计算文件中的行号

  • -b - 指定行号指定的方式,主要有两种:
    • -b a - 表示不论是否为空行,也同样列出行号(类似 cat -n)
    • -b t - 如果有空行,空的那一行不要列出行号(默认值)
  • -n - 列出行号表示的方法,主要有三种:
    • -n ln - 行号在萤幕的最左方显示
    • -n rn - 行号在自己栏位的最右方显示,且不加 0
    • -n rz - 行号在自己栏位的最右方显示,且加 0
  • -w - 行号栏位的占用的位数
  • -p - 在逻辑定界符处不重新开始计算

more​

一页一页显示文件

  • +n - 从笫 n 行开始显示
  • -n - 定义屏幕大小为 n 行
  • +/pattern - 在每个档案显示前搜寻该字串 (pattern),然后从该字串前两行之后开始显示
  • -c - 从顶部清屏,然后显示
  • -d - 提示 “Press space to continue , 'q' to quit (按空格键继续,按 q 键退出)”,禁用响铃功能
  • -l - 忽略 Ctrl + l (换页)字符
  • -p - 通过清除窗口而不是滚屏来对文件进行换页,与 -c 选项相似
  • -s - 把连续的多个空行显示为一行
  • -u - 把文件内容中的下画线去掉

展示开头的文件

  • -q - 隐藏文件名
  • -v - 显示文件名
  • -c <字节> - 显示字节数
  • -n <行数> - 显示的行数

tail​

指定点开始将文件写到标准输出

  • -f - 循环读取
  • -q - 不显示处理信息
  • -v - 显示详细的处理信息
  • -c <数目> - 显示的字节数
  • -n <行数> - 显示行数
  • --pid=PID 与 -f 合用,表示在进程 ID、PID 死掉之后结束
  • -q 、--quiet 、 --silent 从不输出给出文件名的首部
  • -s、 --sleep-interval=S 与 -f 合用,表示在每次反复的间隔休眠 S 秒

cp​

复制

  • -a 、 --archive -等于 -dR 、 --preserve=all , --backup[=CONTROL] 为每个已存在的目标文件创建备份
  • -b - 类似 --backup 但不接受参数 --copy-contents 在递归处理是复制特殊文件内容
  • -d - 等于 --no-dereference --preserve=links
  • -f 、 --force - 如果目标文件无法打开则将其移除并重试(当 -n 选项 存在时则不需再选此项)
  • -i 、 --interactive - 覆盖前询问(使前面的 -n 选项失效)
  • -H - 跟随源文件中的命令行符号链接
  • -l 、 --link - 链接文件而不复制
  • -L 、 --dereference - 总是跟随符号链接
  • -n 、 --no-clobber - 不要覆盖已存在的文件(使前面的 -i 选项失效)
  • -P 、 --no-dereference - 不跟随源文件中的符号链接
  • -p - 等于 --preserve= 模式,所有权,时间戳
  • -preserve[=属性列表] - 保持指定的属性(默认:模式,所有权,时间戳),
  • -R、-r、 --recursive 复制目录及目录内的所有项目

查看大文件制定内容​

先找日志文件,再看日志内容。大文件尤其要避免直接使用 cat、 vim 全量打开。

先定位日志文件​

bash
# 按文件名找
find /var/log -name "*.log" -mtime -7

# 按大小找大日志
find /var/log -type f -size +100M -exec ls -lh {} \;

如果日志被轮换过,可能还有 app.log.1、 app.log.gz 这类文件。

查看大日志:优先使用 tail/less​

bash
# 看最后 200 行
tail -n 200 app.log

# 实时跟踪日志
tail -f app.log

# 日志轮换后继续跟踪
tail -F app.log

# 分页查看大文件,支持搜索
less app.log

按关键字查找​

bash
# 搜索关键字
grep "ERROR" app.log

# 忽略大小写
grep -i "error" app.log

# 显示行号
grep -n "ERROR" app.log

# 显示匹配行前后 5 行
grep -C 5 "ERROR" app.log

# 统计匹配字数
grep -c "ERROR" app.log

常用组合命令​

bash
# 实时查看错误日志
tail -f app.log | grep --line-buffered "ERROR"

# 只看最近的 1000 行里的错误
tail -n 1000 app.log | grep "ERROR"

# 按时间段截取
sed -n '/2026-10-24 10:00/,2026-10-24 10:30/p' app.log

# 查压缩日志
zgrep "ERROR" app.log.gz