cat
concatenate and print files,连接和打印至标准输出。
bash
# 单文件输出
cat README.md
# 多文件输出
cat README.md README1.md
那你知道在 cat 时实际做了什么吗?
library:open/read
我们在打开一个文件,读取内容时,在操作系统底层实际上做了两步操作。
- open:
open("package.json"),并返回文件描述符,即file descriptor,简写fd,一个非负整数,通过文件描述符可用来读写文件。 - read:
read(3),通过fd读取文件内容,其中的 3 为文件描述符。
less
更高级更强大的查看文件内容工具,可使用 vim 命令控制上下移动以及关键词搜索。
附加参数:
-N:显示行号-Q:不使用警告音
按键:
Q:退出- ...
bash
less README.md
# 显示行号
less -N README.md
head
读取文件或者标准输入的前N行或者前N个字节。
bash
# 输出文件前10行内容
head -10 README.md
head --lines 10 README.md
# 输出文件前10个字节
head -c 10 README.md
tail
读取文件或者标准输入最后N行或者N个字节。
bash
tail -10 README.md
但是它与 head 最大不同的一点是:--follow,简写为 -f。它可以实时打印文件中最新内容。
在调试日志时非常有用:日志一行一行追加到文件中,而 tail -f 可以实时打印追加的内容。
bash
tail -f log.json
# 如果为了做实验,可再打开一个窗口通过 >> 重定向追加内容至 log.json,具体查看下一章
echo test >> log.json
