系统的输入与输出

本文介绍了Linux系统中关于输入和输出的管理,包括简单的输入符号如<和<<,以及如何进行输出重定向(>,2>,&>)和追加(>>,2>>,&>>)。还详细阐述了输入重定向的实现方式,并解释了管道(|)的作用,如何通过管道和tee指令处理和保存输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统的输入与输出

简单的输入符号
1.<
<可以进行单行的输入。
例:在westos文件里输入大写的WESTOS,通过**<显示为小写westos**,但不对原文件进行修改

首先,通过vim对westos文件输入WESTOS

接下来输入"tr ‘A-Z’ ‘a-z’ < westos"即可显示
2.<<+任意字符
<<可以进行多行的输入。

例:通过<<对当前用户登录密码修改为123

①创建一个test.sh文件,并且使用vim对其进行编辑(vim可以直接创建)
在这里插入图片描述

②在其中输入

“passwd<<EOF

123 录入第一行

123 录入第二行

EOF”

之后退出并保存
在这里插入图片描述
  ③再输入“sh test.sh”即可完成修改
注:使用<<时,前后的”<<“后面的字符应保持一致
在这里插入图片描述
管理输入输出的符号
1.输出重定向
 > 正确输出的重定向

2> 错误输出的重定向

&> 所有输出的重定向

注:默认正确为编号1,错误为编号2。且重定向会覆盖原文件的内容。
注:由于root用户下权限的原因,没有错误输出,因此以下实验在非root用户下进行
例:

①定向正确输出到file(此时会显示错误输出)

需执行命令:

[student@localhost Desktop]$ find /etc/ -name passwd > file

在这里插入图片描述
  ②定向错误输出到file(此时会显示正确输出)

[student@localhost Desktop]$ find /etc/ -name passwd 2> file1

在这里插入图片描述
  ③定向所有输出到file2

[student@localhost Desktop]$ find /etc/ -name passwd &> file2

在这里插入图片描述
  ④当定向输出空白时即为清空file

[student@localhost Desktop]$  > file

在这里插入图片描述
2.输出追加

>> 在文件中追加正确输出

2>> 在文件中追加错误输出

&>> 在文件中追加所有输出

注:追加不会覆盖原文件内容
例:

①追加正确输出到file1(此时会显示错误输出)

需执行命令:

[student@localhost Desktop]$ find /etc/ -name passwd >> file1

在这里插入图片描述
  ②追加错误输出到file(此时会显示正确输出)

[student@localhost Desktop]$ find /etc/ -name passwd 2>> file

在这里插入图片描述
  ③追加所有输出到file2

[student@localhost Desktop]$ find /etc/ -name passwd &>> file2

在这里插入图片描述
输入重定向
通过<与<<EOF可以实现输入的重定向

管道
管道,即“|”,管道的作用是把前一条指令的输出变成后一条指令的输入。

注:
1.管道只允许正确输出通过
2.通过管道的输出就直接变成了输入,而输入则需要被第二条指令处理
3.如果需要保存前一条指令的输出,则需要复制一分输出,需要用到“tee”指令

例:

①利用管道统计输出的行数(此时会显示错误输出,并且在最后会显示正确输入的行数,因为错误输出不能通过管道)

需执行命令:

[student@localhost Desktop]$ find /etc/ -name passwd | wc -l

在这里插入图片描述
  ②利用管道统计输出的行数(此时会显示总行数,因为错误输出的编号为2,而通过“2>&1”可以将编号变为1)

需执行命令:

[student@localhost Desktop]$ find /etc/ -name passwd 2>&1 | wc -l

在这里插入图片描述
  ③利用管道统计输出的行数,并且通过tee将前一条指令的输出保存到file中

需执行命令:

[student@localhost Desktop]$ find /etc/ -name passwd 2>&1 | tee file | wc -l

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值