linux cat 命令学习

本文详细介绍了cat命令的基本用法、参数及应用实例,包括查看帮助、常用参数解释、文件合并与追加、清空文件、主要功能等,并与vim命令进行了对比,旨在提供一个全面且易于理解的cat命令学习资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cat 命令学习笔记:

# 一个参考的例子


part 1: 查看cat 命令的帮助:

$man cat

CAT(1) User Commands CAT(1)


NAME
cat - concatenate files and print on the standard output
...


part 2: cat 命令常用参数的用法举例:

以下参数基于一个 完整的例子:
# filename: test.py
import pymongo

conn = pymongo.Connection(host=["10.64.77.246:27017","10.64.77.205:27017","10.64.77.206:27017"])
db = conn.test
for u in db.users.find():
print u


param 1:

-A, --show-all
equivalent to -vET
# 一组合命令参数, 相当于 vET

$ cat -A test.py
import pymongo$
$
conn = pymongo.Connection(host=["10.64.77.246:27017","10.64.77.205:27017","10.64.77.206:27017"])$
db = conn.test$
for u in db.users.find():$
print u$


param 2:

-b, --number-nonblank
number nonempty output lines
# 所有非空行显示行号

$ cat -b test.py
1 import pymongo

2 conn = pymongo.Connection(host=["10.64.77.246:27017","10.64.77.205:27017","10.64.77.206:27017"])
3 db = conn.test
4 for u in db.users.find():
5 print u


param 3:

-e equivalent to -vE
# 一组合命令参数, 相当于 vE

$ cat -e test.py
import pymongo$
$
conn = pymongo.Connection(host=["10.64.77.246:27017","10.64.77.205:27017","10.64.77.206:27017"])$
db = conn.test$
for u in db.users.find():$
print u$


param 4:

-E, --show-ends
display $ at end of each line
# 在每行末尾显示$符号

$ cat -E test.py
import pymongo$
$
conn = pymongo.Connection(host=["10.64.77.246:27017","10.64.77.205:27017","10.64.77.206:27017"])$
db = conn.test$
for u in db.users.find():$
print u$

param 5:

-n, --number
number all output lines
# 显示所有行的行号

$ cat -n test2.py
1 import pymongo
2
3 conn = pymongo.Connection(host=["10.64.77.246:27017","10.64.77.205:27017","10.64.77.206:27017"])
4 db = conn.test
5 for u in db.users.find():
6 print u

param 6:

-s, --squeeze-blank
suppress repeated empty output lines
# 压缩重复出现的空行,即如果文件中有两个空行,使用 -s 参数后之后显示一个空行。 举例: 在 test.py 中 import pymongo 后再添加一个空行,打印的结果仍然如下

$ cat -s test.py
import pymongo

conn = pymongo.Connection(host=["10.64.77.246:27017","10.64.77.205:27017","10.64.77.206:27017"])
db = conn.test
for u in db.users.find():
print u


patam 7:

-t equivalent to -vT
# 一组合命令参数, 相当于 vET

param 8:

-T, --show-tabs
display TAB characters as ^I
# 将文档中使用 table 键的地方都用^I 做标记, 使用了多个table, 就有多个 ^I (其实,个人觉得这个很有用,尤其在 table 和 space 混合使用出现问题的时候,方便查看table键的使用) 举例:在 "conn = xxxxx" , 和 ”print u “所在行首分别插入两个和一个table, 结果如下


$ cat -t test2.py
import pymongo

^I^Iconn = pymongo.Connection(host=["10.64.77.246:27017","10.64.77.205:27017","10.64.77.206:27017"])
db = conn.test
for u in db.users.find():
^Iprint u


param 9:

-u (ignored)
# 不知道这个东东是什么意思,忽略所有的参数原样输出? 还是压根就忽略这个参数?真的不知道 # todo

$ cat -u test.py
import pymongo

conn = pymongo.Connection(host=["10.64.77.246:27017","10.64.77.205:27017","10.64.77.206:27017"])$
db = conn.test$
for u in db.users.find():
print u


param 10:

-v, --show-nonprinting
use ^ and M- notation, except for LFD and TAB


# 在ue 中编辑生成的文件, 会有^M, 使用 cat -v, 可以将这些符号显示出来。 其实他们就是一些换行符号。 在vi里^M由Ctrl +v +m组合生成。 举例: 在UltraEditor 编辑一个文件ue_test, 移到 ubuntu , 输出效果如下:

$ cat -v ue_test
hi,UE:^M
this is just for test ^M.^M
you will be transfered to jia-svn.^M
^M
-- jiaxiaolei^M


part 3: cat 命令操作举例

instance 1:

cat -n filename1 > filename2 把 filename1 的档案内容加上行号后输入 filename2 这个文件里
举例:
$ cat -n test.py > test_2.py
$ cat test_2.py
1 import pymongo
2
3 conn = pymongo.Connection(host=["10.64.77.246:27017","10.64.77.205:27017","10.64.77.206:27017"])
4 db = conn.test
5 for u in db.users.find():
6 print u

instance 2:
cat -b filename1 fileanme2 >> filename3 把 filename1 和 filename2 的档案内容加上行号(空白行不加)之后将内容附加到 filename3 里。

举例:


$ cat -b test.py test_2.py >> test_3.py
$ cat test_3.py
1 import pymongo
2 conn = pymongo.Connection(host=["10.64.77.246:27017","10.64.77.205:27017","10.64.77.206:27017"])
3 db = conn.test
4 for u in db.users.find():
5 print u
6 1 import pymongo
7 2
8 3 conn = pymongo.Connection(host=["10.64.77.246:27017","10.64.77.205:27017","10.64.77.206:27017"])
9 4 db = conn.test
10 5 for u in db.users.find():
11 6 print u

instance 3:

cat /dev/null > /etc/test.txt 清空/etc/test.txt档案内容
清空文件的内容,/dev/null 为系统提供的一个空的文件(原理上是把一个空的文件输出重定向到一个非空文件。如果自己新建一个空文件 a.txt ,在console 模式下执行 $cat a.txt > filename, 也可以将filename 置空)

$ cat /dev/null > test_3.py
$ cat test_3.py
$

part 4: cat 的主要 功能:go

1. 一次显示整个文件。$ cat filename~,y6;e
2. 从键盘创建一个文件。$ cat>filename0#!7
#只能创建新文件,不能编辑已有文件.:z)
3. 将几个文件合并为一个文件。 $cat file1 file2> file"t?=

part 5: cat 命令和vim命令的主要 区别:
vim 是一个强大的文件编辑工具。核心在”编辑”。既然是编辑, 显示文件内容自然是必须的,所以 vim filename 也可以查看文件内容;
cat 客观来说,是一个“显示”命令,把文件内容串接然后显示在屏幕中

具体来说,就是只要是一文件(linux 中一切皆是文件),不管其内容为何, cat 都可以把它显示在 屏幕上。 而vim 却没有这么“单纯”,它会用自己的一套标准去判断。比如:

$ sudo vim /dev/disk/by-id/ata-VBOX_HARDDISK_VBf25c3a20-b91d6dcf
这样的情况, vim 是无法查看的, 提示 “"/dev/disk/by-id/ata-VBOX_HARDDISK_VBf25c3a20-b91d6dcf" is not a file ”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值