查看文件内容
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- 把文件内容中的下画线去掉
head
展示开头的文件
-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