Linux运维基础之cat命令详解

Linux运维基础之cat命令详解

cat 命令是 “连接”(concatenate)的缩写,是 Linux 中常用的工具,可让用户查看、创建和集中文件,或重定向其输出。在本篇文章中,我们将探讨新老 Linux 用户如何利用 cat 命令完成各种任务。

cat 命令的一般语法如下:

$ cat [OPTION] [FILE]...

1. 使用 cat 创建新文件并添加内容

cat > filename

例子:

命令 cat > vegetables.txt 接收标准输入,并将其重定向到名为 “vegetables.txt” 的文件。执行该命令时,终端不会显示任何输出,而是等待你从键盘输入文本。

你输入的任何内容都将被写入 “vegetables.txt”。要完成并保存文件,你需要按 CTRL-D(或在使用某些终端应用程序的 Windows 系统上按 CTRL-Z)。

下面是一个如何使用它的示例:

$ cat > vegetables.txt
Carrot
Broccoli
Spinach
^D

此时,将创建一个名为 “vegetables.txt” 的文件,内容如下:

Carrot
Broccoli
Spinach

2. 用 cat 显示文件内容

cat filename

例子:

假设该文件包含一个常见蔬菜列表;执行 cat vegetables.txt 命令将在终端中显示该文件的内容。

Carrots
Broccoli
Spinach
Tomatoes
Cucumbers
Peppers
Onions
Potatoes
Kale
Lettuce

3. 用 cat 显示多个文件的内容

cat filename_1 filename_2

例子:

假设文件 fruits.txt 和 vegetables.txt 的内容分别如下:

Apple
Banana
Cherry
Carrot
Lettuce
Tomato

命令 cat fruits.txt vegetables.txt 将产生结果:

Apple
Banana
Cherry
Carrot
Lettuce
Tomato

4. 用 cat 行号显示内容

cat -n filename

例子:

如果 fruits.txt 的内容与上例相同:

Apple
Banana
Cherry

然后,命令 cat -n fruits.txt 就会生成:

1	Apple
2	Banana
3	Cherry

5. 使用 cat 复制、替换或复制文件内容

cat filename new_filename

例子:

命令 cat fruits.txt > new_fruits.txt 将把 fruits.txt 中的内容写入一个名为 new_fruits.txt 的新文件。假设命令执行成功,终端不会显示任何输出。

如果 fruits.txt 的内容与之前的相同:

Apple
Banana
Cherry

运行该命令后, new_fruits.txt 的内容将是

Apple
Banana
Cherry

6. 使用 cat 将多个文件的内容合并为一个文件

cat filename_1 filename_2 > filename_3

例子:

命令 cat fruits.txt vegetable.txt > grocery.txt 将连接 fruits.txtvegetable.txt 的内容,然后将输出重定向到名为 grocery.txt 的文件。如果其中一个输入文件不存在,终端将显示一条错误信息,但你不会在终端中看到连接后的内容,因为它们被重定向到了 grocery.txt

假设 fruits.txt 包含:

Apple
Banana
Cherry

vegetable.txt 包含:

Carrot
Lettuce
Tomato

运行该命令后,终端不会显示任何输出(除非出现错误),但文件 grocery.txt 将包含以下内容

Apple
Banana
Cherry
Carrot
Lettuce
Tomato

如果 vegetable.txt 拼写错误或不存在,你会在终端中看到类似的错误:

cat: vegetable.txt: No such file or directory

更多 Linux 命令

下面罗列了最常见的一些 Linux 命令,您可以根据自己的需要查阅对应命令的详细解析:

目录操作 rmdir · cd · pwd · exa · ls
文件操作 cat · cp · dd · less · touch · ln · rename · more · head
文件系统操作 chown · mkfs · locate
网络 ping · curl · wget · iptables · mtr
搜索和文本处理 find · grep · sed · whatis · ripgrep · fd · tldr
系统信息和管理 env · history · top · who · htop · glances · lsof
用户和会话管理 screen · su · sudo · open

此外,我们还整理 Linux 命令行大全,以帮助大家全面深入地学习 Linux。

评论留言