cat 命令学习笔记:
# 一个参考的例子
part 1: 查看cat 命令的帮助:
$man cat
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
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
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$
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
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
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$
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
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$
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
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
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
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
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
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
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
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
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
$ 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 > filename 0#!7
#只能创建新文件,不能编辑已有文件. :z)
3. 将几个文件合并为一个文件。 $cat file1 file2 > file"t?=
2. 从键盘创建一个文件。$ cat > filename 0#!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 ”