Linux中的输入输出

字符设备

一、在开始输入输出的解释之前,需要了解到什么是字符设备,简单来说,字符设备就是显示到字符到屏幕上的设备,分为标准输入,标准正确输出,标准错误输出,下面一一解释下。

1、标准输入 stdin
简单来说就是在命令行写下命令的过程,系统会把这些命令加载到内存中并执行
文件描述符:/dev/pts/0
常见输入设备:键盘、鼠标、打字机
在这里插入图片描述
2、标准正确输出 stdout
文件描述符 :/dev/pts/1
在这里插入图片描述
3、标准错误输出 stderra
文件描述符:/dev/pts/2
a
二、输入管理
1、< 输入重定向 把要执行的命令重定向到tr命令中
tr ‘a-z’ ‘A-Z’ < test 把test文件中的所有字母变为大写(test文件中的内容输入到tr中)
在这里插入图片描述
2、<< 多行录入
tr ‘a-z‘ ’A-Z‘ << EOF
test
test1
EOF ##EOF表示开始录入以下字符,此处的test为字符,不在表示文件,第二个EOF表示录入结束, 整个命令表示将字符输入到tr命令中并执行
在这里插入图片描述

三、输出管理
输出管理类似于输入管理,箭头的指向一般代表命令的走向
1、> 重定向正确输出
file1文件是先建立好的,,重定向正确输出后把原本该输出到屏幕上的元数据信息 打印到了/tmp/file.in中

2、**2> 重定向错误输出
在这里插入图片描述
123423这个命令是不存在的,所以会把错误信息写到/tmp/file.in中,cat后发现确实如此
在这里插入图片描述
如果是正确的命令,2> 是不起作用的,,所以可以看到ls的结果打印到了屏幕中

3、 &> "重定向所有输出**
在这里插入图片描述
重定向所有输出会把 输出的所有结果放到指定的文件中
4、追加

2>>
&>>
三种追加的用法和重定向用法类似,,不一样的就是追加不会覆盖原来文件中的内容,会把后打印的信息写到文件内容的后面

在这里插入图片描述
正确的输出内容被追加到file2的后面

在这里插入图片描述
错误的内容被追加到file2文件内容中

四、管道符 |
| :把前一条命令的正确输出传输到下一条命令中
在这里插入图片描述
正确的输出在wc -l命令下统计出了行数,错误的命令会直接报错,不能传输到wc -l 命令中

五、tee命令
tee 是一个既保存文件又让文件显示的命令,需要注意的是在使用管道线时,前一个命令的标准错误输出不会被tee读取
在这里插入图片描述在这里插入图片描述
1、tee 复制之前命令的 输出 复制到新的文件中,例如(如果前一个命令没有输出将不会保存到新文件中,但是会产生文件)
find /etc -name passwd 2> /tmp/file1.err
/etc/pam.d/passwd
/etc/passwd
[ehiiurs@localhost Desktop]$

find /etc -name passwd 2> /tmp/file1.err |tee file
/etc/pam.d/passwd
/etc/passwd
[ehiiurs@localhost Desktop]$ cat file
/etc/pam.d/passwd
/etc/passwd

[root@localhost Desktop]# lsblk |tee device.txt >/dev/null |tee devicetest.txt
[root@localhost Desktop]# cat devicetest.txt
You have new mail in /var/spool/mail/root
[root@localhost Desktop]# lsblk |tee device.txt >/dev/null
[root@localhost Desktop]# ls
devicetest.txt device.txt

2、静默输出(隐藏或禁止tee命令在屏幕上打印输出//将文件保存为一个新文件但是不打印在屏幕上)
[root@localhost Desktop]# lsblk |tee devicetest.txt >/dev/null
[root@localhost Desktop]# cat devicetest.txt
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 29G 0 part
├─centos-root 253:0 0 27G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 4.4G 0 rom /run/media/root/CentOS 7 x86_64

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值