文章目录
三、Linux中的输出与输入
3.1 输入输出定义
3.1.1 输入
Stdin —标准输入流
- 指的是系统外接向系统中传递的信息
系统外接向系统中传递数据的方式
- 键盘/鼠标/输入命令
3.1.2 输出
Stdout—标准正确输出
- 在命令顺利执行完成后产生的字符串
- stdout在linux的输出编号为1
Stderr—标准错误输出
- 在命令失败执行完成后产生的字符串
- stderr在linux中输出的编号为2
3.1.3 字符设备
- 旨在I/O传输过程中以字符为单位进行传输的设备,就好比键盘,打印机
- 内存中开启的虚拟设备并真实存在
3.2 重定向输出
3.2.1 重定向输出的方法
符号 | 用途 |
---|---|
> | 重定向正确输出 |
2> | 重定向错误输出 |
&> | 重定向所有输出 |
重定向和会覆盖源文件内容
例子:查找/etc/ 文件下的passwd 并进行重定向输出示例:
(1)原始数据:
(2)重定向正确输出 保存命名为passwd.out
把正确输出保存到psaawd.out 文件显示错误输出
(3)重定向错误输出 保存命名为passwd.err
把错误输出保存到passwd.err 文件显示正确输出
(4)重定向所有输出 保存命名为 passwd.all
把全部输出保存到passwd.all文件后没有剩余文件所以没有显示输出
再次强调重定向会覆盖源文件内容
3.3 追加
符号 | 用途 |
---|---|
>> | 追加正确输出 |
2>> | 追加错误输出 |
&>> | 追加所有输出 |
追加是在原始文件后继续写入
例子:在passwd .out/passwd.err/passwd.all 事先写入几行文字,在进行追加示例
(1)原始数据
(2)追加正确输出到passwd.out
把正确输出追加到已知文件passwd.out
(3) 追加错误输出到passwd.err
把错误输出追加到已知文件passwd .err
(4) 追加所有输出到passwd.all
把所有输出追加到passwd.all
3.4 管道
把输出变成后一条命令的输入
符号 | 用途 |
---|---|
| | 管道符 |
2>&1 | 将编号为2的输出转换为1 |
tee | 复制输出到之指定位置 |
例子:
(1)管道符— |
查找/etc/文件passwd 时 得到正确结果条数
(2)转换 ----- 2>&1
把错误的输出转换成正确输出,得到查找passwd结果的所有条数
(3)复制输出 ----- tee
把错误输出转化成正确输出,保存成passwd.all 文件,并且得到查找passwd结果的所有条数
3.5 输入重定向
用符号从文件中获取输入
3.5.1 一次输入重定向
(1) echo +文本+文件名
用echo进行一次重定向 覆盖原文件将hi写入file
(2)命令 + < + 文件名
将file文件的所有小写变成大写输出。原文件不变
3.5.2 多行输入
实现方法
command << 【输入标识】
内容
【输入标识】
例子:
在重置密码时一般要输入两次新密码,我们使用多行输入来实现一次性密码修改