# 查看文件
显示或查找文件里符合条件的字符串。
# CAT 命令
cat 命令可以用来显示文件中的内容。
# 命令格式
cat【选项】 【文件名】
# 常用选项介绍
| 选项 | 描述 |
|---|---|
| -n 或 --number | 由 1 开始对所有输出的行数编号 |
| -b 或 --number-nonblank | 和 -n 相似,只不过对于空白行不编号 |
| -s 或 --squeeze-blank | 当遇到有连续两行以上的空白行,就代换为一行的空白行 |
# 实例
把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:
cat -n textfile1 > textfile2
cat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入:
# OUTFILE 指输出的镜像文件名
cat /dev/fd0 > OUTFILE
# MORE
类似 cat,不过会以一页一页的形式显示,更方便使用者逐页阅读。
最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,按 q 退出。
另外,按 v 调用 vi 编辑器,而且还有搜寻字串的功能。
# 语法
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
# 常用参数
| 选项 | 描述 |
|---|---|
| -num | 一次显示 num 行 |
| +num | 从第 num 行开始显示 |
| -s | 当遇到有连续两行以上的空白行,就代换为一行的空白行 |
| -f | 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上) |
| +/pattern | 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示 |
# 实例
从第 20 行开始显示 testfile 之文档内容,一次显示 30 行。
more +20 -30 testfile
# LESS
more 仅能向前移动,却不能向后移动。使用 less 可以随意浏览文件,并且在查看之前不会加载整个文件。
# 语法
less [参数] 文件
# 常用参数
| 选项 | 描述 |
|---|---|
| -N | 显示每行的行号 |
| -m | 显示类似 more 命令的百分比 |
| -s | 显示连续空行为一行 |
| -i | 忽略搜索时的大小写 |
| -g | 只标志最后搜索的关键词 |
| -f | 强迫打开特殊文件,例如外围设备代号、目录和二进制文件 |
# 常用操作
| 选项 | 描述 |
|---|---|
| / 字符串 | 向下搜索"字符串"的功能 |
| ? 字符串 | 向上搜索"字符串"的功能 |
| n | 重复前一个搜索(与 / 或 ? 有关) |
| N | 反向重复前一个搜索(与 / 或 ? 有关) |
| 回车键 | 滚动一行 |
| y | 向前滚动一行 |
| d | 向后翻半页 |
| b | 向上翻一页 |
| 空格键 | 向下翻一页 |
| Q | 退出 less 命令 |
# 其他命令
| 选项 | 描述 |
|---|---|
| v | 使用配置的编辑器编辑当前文件 |
| &pattern | 仅显示匹配模式的行,而不是整个文件 |
| ma | 使用 a 标记文本的当前位置 |
| 'a | 导航到标记 a 处 |
# 实例
查看 log2019.log 文件。
less log2019.log
# GREP
用于查找文件里符合条件的字符串。
grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。
若不指定任何文件名称,或是所给予的文件名为 "-",则 grep 指令会从标准输入设备读取数据。
# 语法
grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
# 常用参数
| 名称 | 描述 |
|---|---|
| -i 或 --ignore-case | 忽略字符大小写的差别 |
| -c 或 --count | 计算符合样式的列数 |
| -x --line-regexp | 只显示全列符合的列 |
| -n 或 --line-number | 在显示符合样式的那一行之前,标示出该行的列数编号 |
| -r 或 --recursive | 此参数的效果和指定 "-d recurse" 参数相同 |
| -v 或 --revert-match | 显示不包含匹配文本的所有行 |
# 实例
在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行的内容。
grep test *file