一次认识一个Linux命令【系列】:cat命令(& tac命令)

准备知识

1、计算机-标准输入、输出设备

输入设备(InputDevice)是人或外部与计算机进行交互的一种装置,用于把原始数据和处理这些数的程序输入到计算机中。常见的有:键盘,鼠标,摄像头,扫描仪,光笔,手写输入板,游戏杆,语音输入装置等。
计算机的输入设备按功能可分为下列几类:
字符输入设备:键盘;
光学阅读设备:光学标记阅读机,光学字符阅读机;
图形输入设备:鼠标器、操纵杆、光笔;
图像输入设备:摄像机、扫描仪、传真机; 模拟输入设备:语言模数转换识别系统。

既是输入设备又是输出设备:存储设备有内存储器和外存储器,软盘、硬盘、光盘、U盘、移动硬盘等是外存储器,内存储器又分为RAM和ROM,RAM为随机存储器,ROM是只读存储器,内存条是RAM,ROM指的是主板上的存储BIOS的芯片。

其中,键盘 是最常见的标准输入设备。

输出设备(Output Device)是计算机硬件系统的终端设备,用于接收计算机数据的输出显示、打印、声音、控制外围设备操作等。也是把各种计算结果数据或信息以数字、字符、图像、声音等形式表现出来。常见的输出设备有显示器、打印机、绘图仪、影像输出系统、语音输出系统、磁记录设备等。

其中,显示器 是最常见的标准输出设备。

2、理解标准输入(流)、标准输出(流)的概念:

描述符缩写
标准输入0stdin
标准输出1stdout
标准错误2stderr

基于终端的程序往往从一个源读取信息,向一个目的地写入信息:

  • 程序读取的源被称为标准输入(stdin),通常与终端键盘连接
  • 程序写入的目的地被称为标准输出(stdout),通常与终端显示器相连

使用bash Shell时,可以用>>>重定向标准输出,用<重定向标准输入

三种类型的程序

  • 图形程序
  • 屏幕程序
  • 终端程序

linux中标准输入,标准输出,标准错误输出及管道的使用:举例形象生动、内容写得很好。


正题:cat 命令

cat [OPTION] [--help] [-version] fileName,用于连接(concatenate,缩写)文件并打印到标准输出设备上。

cat几大功能:

  • 一次显示整个文件:cat fileName
  • 从键盘创建一个文件。只能创建新文件,不能编辑已有文件。cat > fileName
  • 向已存在的文件中追加内容。cat >> fileName >>EOF
  • 将几个文件合并为一个新文件。cat file1 file2 > file
[root@master mr_wc]# cat --help
Usage: cat [OPTION]... [FILE]...
Concatenate FILE(s), or standard input, to standard output.

  -A, --show-all           equivalent to -vET
  -b, --number-nonblank    number nonempty output lines, overrides -n
  -e                       equivalent to -vE
  -E, --show-ends          display $ at end of each line
  -n, --number             number all output lines
  -s, --squeeze-blank      suppress repeated empty output lines
  -t                       equivalent to -vT
  -T, --show-tabs          display TAB characters as ^I
  -u                       (ignored)
  -v, --show-nonprinting   use ^ and M- notation, except for LFD and TAB
      --help     display this help and exit
      --version  output version information and exit

With no FILE, or when FILE is -, read standard input.

Examples:
  cat f - g  Output f's contents, then standard input, then g's contents.
  cat        Copy standard input to standard output.

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils 'cat invocation'

参数说明:

连接文件(FILE),或标准输入,到标准输出。可选项:

  • -A 显示所有,等价于-vET
  • -b-n相似,只不过对于空白行不编号
  • -e等价于-vE
  • -E在每行结束处显示$
  • -n从1开始对所有输出的行数编号
  • -s当遇到有连续两行以上的空白行,就代换为一行的空白行。即 隐藏重复的空行
  • -t等价于-vT
  • -T将TAB字符显示为 ^
  • -u忽略(ignore)
  • -v显示非打印字符。使用^M-符号,除了LFD和TAB之外

非打印字符,指在计算机中有一些字符是确确实实存在,但是它们不能够显示或者打印出来。
以ASCII码表为例,ascii码值在0-31的为控制字符,无法显示和打印。比如回车符,更多参考ASCII非打印字符

实例:

关于在cat命令中使用EOFend of file),表示文本结束符。在catEOF没有特殊含义,也可以使用FOEOOOEEE等等(不限于这3个字符 以及大写字符),作用是:避免使用多行echo命令的方式,来实现多行输出的结果。

  • cat <<EOF >fileName,以EOF作为输入结束(即 退出编辑状态),和ctrl+d作用一样,EOF只是一个标识。
[root@master mr_wc]# cat <<EOF >test_cat.sh
> #!/bin/bash
> #you can write shell script follow.
> EOF
[root@master mr_wc]# cat test_cat.sh
#!/bin/bash
#you can write shell script follow.

补充:

1)有关管道符|的作用:命令A|命令B,即 命令A的标准输出 作为命令B的标准输入(注意,不能作为命令B的 参数(或选项),得区分参数、输入两者的含义)。

  • 命令A 有标准输出
  • 命令B 接受标准输入

在这里插入图片描述
参考linux里有关管道符的疑惑

管道符|与重定向的区别:

  • 管道会触发两个子进程来执行|两边的程序;
  • 重定向是在一个进程中执行的。

2)tac,功能是将文件从最后一行开始倒过来将内容数据输出到屏幕上。

[root@master mr_wc]# tac test_cat.sh
#you can write shell script follow.
#!/bin/bash

3)Linux ctrl +c d z的区别

  • ctrl+c:常用于终止正在运行的程序
  • ctrl+d:表示一个特殊的二进制值,表示EOF
  • ctrl+z:常用于挂起一个进程

参考:
linux 进程 ctrl-c,ctrl-z,ctrl-d
linux 信号 SIGINT SIGTERM SIGKILL区别

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值