cat

一、简介

1.concatenate   /kən'kætɪneɪt/  拼接

2.cat不会改变原文件的任何数据,只是根据用户提供的选项,在stdout中生成一个修改过的输出。

 

二、技巧

1.stdin ——> 文件(拼接数据)

[root@localhost 1]# echo "I Love U,too" | cat - test.txt 
I Love U,too
I Love U!
[root@localhost 1]# cat test.txt 
I Love U!         

说明:

  (1)cat不会改变原文件的任何数据

  (2)本例中,-被作为stdin文本的文件名

2.文件 ——> stdout(读取文件)

[root@localhost 1]# cat file1 file2 file3
1`
2`
3`

说明:

  (1)可打印多个文件内容 

3.连续的空白行 ——> 一行空白行(压缩)

[root@localhost 1]# cat file1
1`



2`
[root@localhost 1]# cat -s file1
1`

2`

说明:

  (1)cat -s将连续的空白行压缩成一行空白输出(consecutive)

4.显示制表符和行号

[root@localhost 1]# cat -T file1
1`^I
hello world!
[root@localhost 1]# cat -n file1
     1    1`    
     2    hello world!

说明:

  (1)cat -T将制表符tab记为^I

  (2)cat -n在输出的每一行内容之前加上行号

5.创建文件

[root@localhost 1]# ll
total 0
[root@localhost 1]# cat “i am handsome” > newfile.txt
[root@localhost 1]# ll
total 4
-rw-r--r-- 1 root root 14 Apr  6 18:23 newfile.txt

说明

  (1)cat在打开输入文件之前,会先创建新的输出文件,且可以重定向至该文件。

6.清空文件

[root@localhost 1]# echo 'i love u' > newfile.txt 
[root@localhost 1]# cat newfile.txt > newfile.txt 
cat: newfile.txt: input file is output file
[root@localhost 1]# ll
total 0
-rw-r--r-- 1 root root 0 Apr  6 18:28 newfile.txt

说明:

  (1)cat不允许使用输入文件作为重定向输出文件(有报错)此时会清空文件所有内容!!!

[root@localhost 1]# echo 'i love u' > newfile.txt 
[root@localhost 1]# cat newfile.txt | cat -n > newfile.txt 
[root@localhost 1]# ll
total 0
-rw-r--r-- 1 root root 0 Apr  6 18:30 newfile.txt

说明:

  (1)cat利用管道符可以执行输入文件作为重定向输出文件(无报错)此时会清空文件所有内容!!!

7.查看文件信息

 7.1查看系统的发行版本

[root@localhost linux]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.5 (Maipo)

7.2查看登陆的欢迎信息

[root@localhost linux]# cat /etc/issue
\S
Kernel \r on an \m

 7.3查看当前支持的shell

[root@localhost linux]# cat /etc/shells 
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

 7.4查看某个进程的环境变量

[root@localhost linux]# ps -aux     #查看所有程序的PID
[root@localhost linux]# pgrep httpd   #查看某个程序的PID
9416
9420
9421
9422
9423
9424
[root@localhost linux]# cat /proc/9416/environ                #格式就是cat /proc/$UID/environ,查看某个进程的环境变量
LANG=CPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/binNOTIFY_SOCKET=/run/systemd/notify[root@localhost linux]# 
[root@localhost linux]# cat /proc/9416/environ | tr '\0' '\n'      #将输出格式变的易读
LANG=C
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
NOTIFY_SOCKET=/run/systemd/notify

 

posted @ 2020-06-07 13:38  3月の狮子  阅读(326)  评论(0编辑  收藏  举报