学会识别文件后,下一步是读取它们的内容。cat 命令可以显示文件并连接其内容;它的名称是“concatenate”(连接)的缩写。
命令行 · 第 7 课
cat 命令
学习使用 cat 命令安全地显示、连接和重定向文件内容。
查看文件内容
cat 命令最基本的用法是直接在终端显示单个文件的内容。
$ cat myfile.txt
该命令会把整个文件写入标准输出,此处也就是终端。这很适合短文本,但长文件可能会滚动得太快。
哪个命令会在终端中显示 myfile.txt 的全部内容?
连接文件
顾名思义,cat 可以将多个文件连接起来并显示它们的合并输出。它按照提供的顺序读取文件并依次打印。
$ cat dogfile birdfile
该命令会先显示 dogfile,再显示 birdfile。
要将合并的输出保存到新文件中,可以使用重定向:
$ cat dogfile birdfile > animals
shell 会在运行 cat 前创建或清空 animals,再把合并后的输出发送到其中。不要把任何输入文件用作这个目标,否则它可能在 cat 读取前就被清空。
哪个命令会把 part1 后接 part2 的内容写入新建或替换的 whole?
把终端输入写入文件
你也可以使用 cat 和输出重定向操作符(>)来创建新文件。这是直接从终端写入文本到文件的快捷方式。
$ cat > newfile.txt
运行命令后输入所需文本。按 Ctrl+D 发送文件结束信号并返回 shell。请注意,如果 newfile.txt 已存在,> 会清空其原有内容。
如果想追加内容而不是覆盖,使用 >>。
$ cat >> notes.txt
你想在现有 notes.txt 末尾继续输入文本。哪个命令会开始这一操作而不清空文件?
格式化输出
cat 命令有多个选项可以改变其行为。
-n:为所有输出行编号,从 1 开始。-b:只为非空输出行编号。-s:将多个空行压缩为一行空行。-A:显示不可打印字符、制表符和行尾符。
示例:
$ cat -n script.sh
$ cat -b notes.txt
$ cat -s messy.txt
哪个命令只给 notes.txt 输出中的非空行编号?
为长文件选择查看器
cat 适合短文件。对于长文件,使用 less,这样你可以滚动、搜索并退出,而不会让终端内容泛滥。
$ less /var/log/syslog
哪个命令更适合交互式阅读很长的日志文件?
要练习显示和连接文件内容,可以尝试以下动手实验:
- Linux cat 命令:文件连接 - 学习
cat命令用于查看、连接和操作文本文件,提升命令行处理文本文件的效率。 - 在 Linux 中查看日志和配置文件 - 练习使用
cat等命令高效查看和浏览文本文件,包括系统日志和配置文件,以提取关键信息。
课程已完成
你已完成 cat 命令
现在,你可以使用 cat 显示和合并文件内容,并安全选择重定向方式。
显示短文件的完整内容。
按指定顺序连接文件。
有意识地替换目标或向目标追加内容。
为输出行编号或简化输出。
在适合交互式阅读时选择
less。