1.4 查看文件、搜索与日志
1. 最常见的几个命令
| 命令 | 全称 | 主要作用 |
|---|---|---|
cat | concatenate | 直接输出文件内容,适合小文件 |
less | less | 分页查看文件,适合大文件 |
head | head | 查看文件开头几行 |
tail | tail | 查看文件最后几行,或持续追踪新输出 |
grep | global regular expression print | 按关键词搜索文本内容 |
例如:
bash
cat INCAR # 直接输出整个文件内容
head OUTCAR # 查看前 10 行
tail OUTCAR # 查看后 10 行
head -n 20 OUTCAR # 查看前 20 行
tail -n 20 OUTCAR # 查看后 20 行
less OUTCAR # 翻页查看大文件
grep "NELM" OUTCAR # 搜索包含 NELM 的行
grep -i error job.out # 忽略大小写搜索 error
grep -n "warning" OUTCAR # 显示匹配行的行号
grep -r "keyword" results/ # 递归搜索目录中的文件简单理解:
- 小文件用
cat - 大文件优先用
less - 看文件开头用
head - 看文件结尾和最新输出用
tail - 想按关键词找内容,用
grep
2. less 比 cat 更适合大文件
cat 很直接,但文件一大就会一下子刷满屏幕。
所以看日志、输出文件、长文本时,通常更推荐:
bash
less OUTCAR # 分页查看大文件在 less 里你先知道这几个就够了:
space:向下翻一页b:向上翻一页/keyword:在文件里向下搜索关键词n:跳到下一个匹配q:退出
这也是为什么很多时候 less + /keyword 会比直接 cat 更高效。
3. 看日志时的基本思路
看输出文件时,最慢的做法通常是从头读到尾。
更实用的顺序一般是:
- 先看开头是否正常
- 再看最后几十行有没有异常结束
- 再按关键词搜索报错或警告
- 最后再回头看相关上下文
例如:
bash
head -n 50 OUTCAR # 先看开头是否正常
tail -n 50 OUTCAR # 再看最后几十行
grep -i error OUTCAR # 搜索 error
grep -i warning OUTCAR # 搜索 warning
less OUTCAR # 需要时再翻页细看这个顺序的核心不是把文件完整读完,而是先快速判断:
- 程序有没有正常启动
- 程序停在了哪里
- 有没有明显的报错关键词
4. grep 是最基础的文本搜索器
你可以先把 grep 理解成“按关键词找文本”的工具。
最常见的用法是:
bash
grep "pattern" file # 在文件中搜索字符串
grep -i error job.out # 忽略大小写搜索 error
grep -n warning OUTCAR # 显示匹配行号
grep -r keyword results/ # 递归搜索目录中的文件这里先记住几个最常用参数:
-i:忽略大小写-n:显示行号-r:递归搜索目录
以后你看到很长的输出文件,不要默认从头读到尾,先想一件事:
能不能先
grep一下关键词?
5. tail -f 适合边跑边看
如果任务还在运行,不想反复打开文件,可以用:
bash
tail -f job.out # 实时追踪日志新输出它会一直停在那里,把新写进文件的内容持续显示出来。
这个命令很适合:
- 看作业是不是还在正常往下跑
- 看程序是不是卡住了
- 看有没有新的报错出现
退出时按 Ctrl + C 即可。