cat
输出文件的内容,如果不指定,则输出标准输入的内容
格式如下
cat [选项] [文件...]
选项如下
选项 | 说明 |
---|---|
-A, --show-all | 等价于 -vET |
-b, --number-nonblank | 对非空输出行编号 |
-e | 等价于 -vE |
-E, --show-ends | 在每行结束处显示$ |
-n, --number | 对输出的所有行编号 |
-s, --squeeze-blank | 合并两行以上的空白行为一行 |
-t | 与 -vT 等价 |
-T, --show-tabs | 将跳格字符显示为 ^I |
-u | (被忽略) |
-v, --show-nonprinting | 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外 |
tac
tac命令用于将文件已行为单位的反序输出,即第一行最后显示,最后一行先显示
格式如下
tac [选项] [文件...]
nl
计算文件中行号并和内容一起输出,行号的显示比cat -n
更丰富
格式如下
nl [选项] [文件...]
选项如下
选项 | 说明 |
---|---|
-b a | 表示不论是否为空行,也同样列出行号(类似 cat -n) |
-b t | 如果有空行,空的那一行不要列出行号(默认值) |
-n ln | 行号在萤幕的最左方显示; |
-n rn | 行号在自己栏位的最右方显示,且不加 0 |
-n rz | 行号在自己栏位的最右方显示,且加 0 |
-w | 行号栏位的占用的位数 |
-p | 在逻辑定界符处不重新开始计算 |
more
按页显示文件内容
格式如下
more [选项] <文件...>
选项如下
选项 | 说明 |
---|---|
+n | 从笫n行开始显示 |
-n | 定义屏幕大小为n行 |
+/PATTERN | 在每个档案显示前搜寻该模式(pattern),然后从该字串前两行之后开始显示 |
-c | 从顶部清屏,然后显示 |
-d | 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能 |
-l | 忽略Ctrl+l(换页)字符 |
-p | 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似 |
-s | 把连续的多个空行显示为一行 |
-u | 把文件内容中的下画线去掉 |
操作如下(Ctrl代表Control)
选项 | 说明 |
---|---|
h | ? | 查看使用帮助 |
Enter | 向下n行,需要定义,默认为1行 |
Space | 向下滚动一屏 |
Ctrl + d | 向下滚动半屏 |
Ctrl + f | 向下滚动一屏 |
Ctrl + b | 向上滚动一屏 |
= | 输出当前行的行号 |
:f | 输出文件名和当前行的行号 |
V | 调用编辑器,默认为vi |
!COMMAND | 调用Shell,并执行命令 |
q | 退出more |
less
按页显示文件内容,比more更强大
格式如下
less [选项] <命令>
选项如下
选项 | 说明 |
---|---|
-g | 只标识最后搜索的关键词 |
-i | 忽略搜索时搜索串中小写部分的大小写 |
-I | 忽略搜索时的大小写 |
-m | 显示类似more命令的百分比 |
-N | 显示每行的行号 |
-Q | 不使用警告音 |
-s | 显示连续空行为一行 |
-S | 行过长时间将超出部分舍弃 |
-x n | 将“tab”键显示为规定的数字空格 |
操作如下(Ctrl代表Control)
选项 | 说明 |
---|---|
/PATTERN | 向下搜索模式匹配 |
?PATTERN | 向上搜索模式匹配 |
&PATTERN | 只显示匹配的行 |
n | 下一个搜索(方向与 / 或 ? 有关) |
N | 上一个搜索(方向与 / 或 ? 有关) |
g | 移动到顶部 |
G | 移动到底部 |
f | 向下滚动一页 |
b | 向上滚动一页 |
d | 向下滚动半页 |
u | 向上滚动半页 |
e | 向下滚动一行 |
y | 向上滚动一行 |
j | 向下滚动一行 |
k | 向上滚动一行 |
Enter | 向下滚动一行 |
Space | 向下滚动一页 |
[pagedown] | 向下滚动一页 |
[pageup] | 向上滚动一页 |
,, | (两次逗号)回到上一次的位置 |
h | 显示帮助界面 |
q | 退出less命令 |
f -> forward | b -> backward | d -> down | u-> up
head
查看文件的开头部分
格式如下
head [选项] <文件...>
选项如下
选项 | 说明 |
---|---|
-c, --bytes=[-]K | 每个文件显示K字节,如果K前有短横杠,则从末尾开始 |
-n, --lines=[-]K | 每个文件显示K行,如果K前有短横杠,则从末尾开始 |
-q, --quiet, --silent | 隐藏文件名 |
-v, --verbose | 显示文件名 |
tail
查看文件的结尾部分
格式如下
tail [选项] <文件...>
选项如下
选项 | 说明 |
---|---|
-c, --bytes=[+]K | 每个文件显示K字节,如果K前有加号,则从开头开始 |
-n, --lines=[+]K | 每个文件显示K行,如果K前有加号,则从开头开始 |
-q, --quiet, --silent | 隐藏文件名 |
-v, --verbose | 显示文件名 |
-f | 监听并输出文件变化的部分 |
-F | 和-f --retry 一样的效果 |
--retry | 当文件切割后,重新打开文件 |
-s, --sleep-interval=N | 文件的监听频率 |
diff
比较文件之间的差异,格式的说明参照读懂diff
格式如下
diff [选项] <文件> <文件>
选项如下
选项 | 说明 |
---|---|
- | 指定要显示多少行文本,此参数必须与-c或-u参数一并使用 |
-a, --text | diff预设只会逐行比较文本文件 |
-b, --ignore-space-change | 不检查空格字符的不同 |
-B, --ignore-blank-lines | 不检查空白行 |
-c | 显示全部内文,并标出不同之处 |
-C, --context | 与执行"- -c"选项相同 |
-d, --minimal | 使用不同的演算法,以较小的单位来做比较 |
-D, ifdef | 此参数的输出格式可用于前置处理器巨集 |
-e, --ed | 此参数的输出格式可用于ed的script文件 |
-f, -forward-ed | 输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处 |
-H, --speed-large-files | 比较大文件时,可加快速度 |
-l, --ignore-matching-lines | 若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异 |
-i, --ignore-case | 不检查大小写的不同 |
-l, --paginate | 将结果交由pr程序来分页 |
-n, --rcs | 将比较结果以RCS的格式来显示 |
-N, --new-file | 在比较目录时,若文件A仅出现在某个目录中,预设会显示:Only in目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较 |
-p | 若比较的文件为C语言的程序码文件时,显示差异所在的函数名称 |
-P, --unidirectional-new-file | 与-N类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较 |
-q, --brief | 仅显示有无差异,不显示详细的信息 |
-r, --recursive | 比较子目录中的文件 |
-s, --report-identical-files | 若没有发现任何差异,仍然显示信息。 |
-S, --starting-file | 在比较目录时从指定的文件开始比较 |
-t, -expand-tabs | 在输出时将tab字符展开 |
-T, --initial-tab | 在每行前面加上tab字符以便对齐 |
-u, -U, --unified | 以合并的方式来显示文件内容的不同 |
-v, --version | 显示版本信息 |
-w, --ignore-all-space | 忽略全部的空格字符 |
-W, --width | 在使用-y参数时,指定栏宽 |
-x, --exclude | 排除指定的文件或目录 |
-X, --exclude-from | 排除文件中指定的文件和目录 |
-y, --side-by-side | 以并列的方式显示文件的异同之处 |
--help | 显示帮助 |
--left-column | 在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容 |
--suppress-common-lines | 在使用-y参数时,仅显示不同之处 |
参考
每天一个linux命令 cat 命令
每天一个linux命令 nl命令
每天一个linux命令 more命令
每天一个linux命令 less 命令
每天一个linux命令 head 命令
每天一个linux命令 tail 命令
每天一个linux命令 diff 命令
读懂diff
What is the difference between "tail -f" and "tail -F"