linux cat 命令学习

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  >  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 ”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值