Linux系统之cat命令

来源:

  • http://blog.csdn.net/jackalfly/article/details/7556848
  • http://man.linuxde.net/cat
  • http://blog.csdn.net/pi9nc/article/details/18257593

 

cat命令

 

  1、滚屏显示文件,大文件会滚的很快,Ctrl+S暂停滚屏,Ctrl+Q继续滚屏,Ctrl+C中断滚屏。

 1 [super@SuPer ~]$ cat 1.sh
 2 #!/bin/sh
 3 #author:
 4 #date:
 5 #describe:
 6 #modify:
 7 #versions:
 8 #
 9 echo 'Hello,shell!'
10 [super@SuPer ~]$ 
显示一个文件
 1 [super@SuPer ~]$ cat 1.sh 2.sh
 2 #!/bin/sh
 3 #author:
 4 #date:
 5 #describe:
 6 #modify:
 7 #versions:
 8 #
 9 echo 'Hello,shell!'
10 #!/bin/sh
11 set -x
12 echo -n "The system is Linux?"
13 echo answer Y or N.
14 read answer
15 #
16 if [ -f $answer ]
17 then
18     echo "No input anything."
19     exit
20 fi
21 if [ $answer = Y ]
22 then
23     echo "Yes,This is Linux System."
24 else
25     echo "No,This is Windows System."
26 fi
27 [super@SuPer ~]$ 
显示两个或两个以上文件

 

  2、创建一个新的文件,需要注意会进入文件编辑状态,此时的输入会分行保存,每按一次Enter键保存一次,Ctrl+C结束当前任务。

1 [super@SuPer ~]$ cat > 1.txt
2 AAAA
3 SSSS
4 DDDD^C
5 [super@SuPer ~]$ cat 1.txt
6 AAAA
7 SSSS
8 [super@SuPer ~]$ 
基础创建方式
1 [super@SuPer ~]$ cat << 1 > 2.txt
2 > BBBB
3 > DDDD
4 > 1
5 [super@SuPer ~]$ cat 2.txt
6 BBBB
7 DDDD
8 [super@SuPer ~]$ 
带EOF结束符
  • EOF:end of file,表示文本结束符,可以用任何字符代替,编辑时在一行中只有该字符回车保存则结束文本编辑。
 1 [super@SuPer ~]$ cat > 1.txt << EOF
 2 > AAAA
 3 > BBB
 4 > EOF
 5 [super@SuPer ~]$ cat 1.txt
 6 AAAA
 7 BBB
 8 [super@SuPer ~]$ cat > 1.txt << EOF
 9 > CCCC
10 > DDD
11 > EOF
12 [super@SuPer ~]$ cat 1.txt
13 CCCC
14 DDD
15 [super@SuPer ~]$ 
覆盖写法">"
 1 [super@SuPer ~]$ cat > 1.txt << EOF
 2 > sss
 3 > sss
 4 > EOF
 5 [super@SuPer ~]$ cat 1.txt 
 6 sss
 7 sss
 8 [super@SuPer ~]$ cat >> 1.txt << EOF
 9 > aaa
10 > vvv
11 > EOF
12 [super@SuPer ~]$ cat 1.txt
13 sss
14 sss
15 aaa
16 vvv
17 [super@SuPer ~]$
追加写法">>"
 1 [super@SuPer ~]$ cat 1.txt
 2 sss
 3 sss
 4 aaa
 5 vvv
 6 [super@SuPer ~]$ cat >> 1.txt
 7 s^Hdsds
 8 dsd[super@SuPer ~]$ cat 1.txt
 9 sss
10 sss
11 aaa
12 vvv
13 dsds
14 dsd[super@SuPer ~]$ 
Ctrl+D等于输入EOF
 1 [super@SuPer ~]$ cat 1.txt
 2 sss
 3 sss
 4 aaa
 5 vvv
 6 dsds
 7 dsdDDD
 8 [super@SuPer ~]$ cat >> 1.txt
 9 EEE
10 [super@SuPer ~]$ cat 1.txt
11 sss
12 sss
13 aaa
14 vvv
15 dsds
16 dsdDDD
17 EEE
18 [super@SuPer ~]$ 
回车后Ctrl+D,注意Ctrl+D只能在非脚本文件下使用

 

  3、文件合并

 1 [super@SuPer ~]$ cat > 1.txt
 2 AAA
 3 [super@SuPer ~]$ cat > 2.txt
 4 BBB
 5 [super@SuPer ~]$ cat 1.txt
 6 AAA
 7 [super@SuPer ~]$ cat 2.txt
 8 BBB
 9 [super@SuPer ~]$ cat -n 1.txt >> 2.txt
10 [super@SuPer ~]$ cat 1.txt
11 AAA
12 [super@SuPer ~]$ cat 2.txt
13 BBB
14      1  AAA
15 [super@SuPer ~]$ 
把文件1加序号追加文件2中
 1 [super@SuPer ~]$ cat 1.txt
 2 AAA
 3 [super@SuPer ~]$ cat 2.txt
 4 BBB
 5      1  AAA
 6 [super@SuPer ~]$ cat 1.txt 2.txt > 3.txt
 7 [super@SuPer ~]$ cat 3.txt
 8 AAA
 9 BBB
10      1  AAA
11 [super@SuPer ~]$ 
把文件1和文件2合并到一个新文件中
1 [super@SuPer ~]$ cat 3.txt
2 AAA
3 BBB
4      1  AAA
5 [super@SuPer ~]$ cat /dev/null > 3.txt 
6 [super@SuPer ~]$ cat 3.txt 
7 [super@SuPer ~]$ 
清空文本
  • /dev/null:在类UNIX系统中,称空设备,是一个特殊的设备文件,俗称位桶(bit bucket)或黑洞(black hole)。它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF。常用作丢弃不需要的输出流,或作为用于输入流的空文件,通常由重定向完成。
1 [super@SuPer txt]$ ll
2 总用量 4
3 -rw-rw-r-- 1 super super  0 10月  8 09:58 1.txt
4 -rw-rw-r-- 1 super super 15 10月  8 09:40 2.txt
5 -rw-rw-r-- 1 super super  0 10月  8 09:43 3.txt
6 [super@SuPer txt]$ cat 4.txt 1>/dev/null 
7 cat: 4.txt: 没有那个文件或目录
8 [super@SuPer txt]$ cat 4.txt 2>/dev/null  
9 [super@SuPer txt]$ 
cat配合/dev/null使用
  • 默认重定向的1就是标准输出,2是标准错误输出。使用2可以做到只判断该命令是否运行正常。

 

【注】目前没有发现cat编辑下有修改文本的功能,还需要使用vi再编辑。

posted @ 2017-10-08 10:12  Super芃QAQ  阅读(1602)  评论(0编辑  收藏  举报