RedHat Linux 中如何管理命令输入和输出
Linux中: Stdin表示标准输入
输出分为两种“Stdout表示正确输出,Linux中表示为1
Stderr表示错误输出,Linux中表示为2
如何在系统中看到这两种输出结果位置
su - student 先切换到普通用户 ,输入ps’查看当前shell的进程号,
cd命令切换到该进程下,例图中进程为2826,cd /proc/2826/fd 进入,ls -l 列出结果可看到0、1、2,0是当前shell的输入,1是正确输出,2是错误的输出。

重定向输出
| > | 表示重定向正确输出 |
|---|---|
| 2> | 表示重定向错误输出 |
| &> | 表示重定向所有输出 |
用法:我们使用find /etc/ -name passwd 命令 来查找passwd看看结果,很显然出现的结果有正确有错误:如图

然后我们使用 > 符号保存正确的输出到文件aaa.out中:

可以看到正错误输出被展示出来,正确输出储存到aaa.out中。
使用 2> 保存错误输出到aaa.err中:
可以看到正确输出被展示出来,错误输出储存到aaa.err中。
使用 &> 符号将正确和错误储存到aaa.out中:

可以发现这次的输出覆盖了之前保存的内容,如何使保存的内容可以呢?我们可以使用追加符号来追加保存的输出内容
| >> | 追加正确输出 |
|---|---|
| 2>> | 追加错误输出 |
| &>> | 追加全部输出 |
例: >> 追加正确输出符号的使用方法展示如图

ps:以上实验环境皆为普通用户中进行
重新定向输入“<”“<<”
符号<,表示输入,
例:创建文件aaa,在其中写入随机内容
使用tr ‘a-z’ ‘A-Z’ < aaa ,更改aaa文件内全部小写字符为大写:

符号<< , 可用作多行录入我们在aaa中写入两行命令:date、passwd ,用bash aaa来执行,可以发现passwd命令弹出需要我们来再次手动输入密码来完成操作:

下来我们使用<<来实行多行录入:

ps: EOF是一个行业规范符号,表示输入的起始和结束。
管道符说明
“ | ” 叠加两个命令
例:针对 /proc 目录同时使用ls 和 cat -l 统计 /proc 中文件数

结合>输出符使用:

发现管道 | 会过滤错误结果,统计正确结果,如何使所有结果统计呢,使用 2>&1 ,把2中错的结果放到1中一起统计:

还有就是我们可以统计结果并把结果再保存出来:

本文详细介绍了在RedHat Linux环境中,如何管理和重定向命令的输入与输出。包括标准输入(stdin)、标准输出(stdout)和错误输出(stderr)的概念,以及如何使用>、2>、&>等符号进行正确和错误输出的重定向,并展示了如何通过追加符号>>、2>>、&>>来追加输出内容。此外,还介绍了重新定向输入的使用方法和管道符的功能。
557

被折叠的 条评论
为什么被折叠?



