1.Linux系统的输入输出
输入stdin(标准输入流)是指系统外接向系统中传递的信息,输入编号为0
传递数据的方式:键盘、鼠标、输入命令
输出分为标准正确输出(stdout)和标准错误输出(stderr)
stdout在命令顺利执行完成后产生的字符串,输出编号为 1
stderr在命令执行失败完成后产生的字符串,输出编号为 2
默认这两种输出都会被系统定向到字符设备中 /dev/pts
2.控制输入输出的符号
符号 | 用途 |
---|---|
> | 重定向正确输出 |
2> | 重定向错误输出 |
&> | 重定向输出所有 |
以下实验在普通用户模式下完成
(1)找到实验所需要的文件
屏幕上展示所有输出(正确和错误)
(2)重定向正确输出到westos.true
(3)重定向错误输出到westos.f
(4)重定向所有输出到westos.all
(5)重定向输出到文件中时,目的文件内容会被覆盖
- 追加
符号 | 用途 |
---|---|
>> | 追加正确输出到文件最后 |
2>> | 追加错误输出到文件最后 |
&>> | 追加所有输出到文件最后 |
追加不会覆盖源文件内容
(1)追加正确输出到westos并查看结果,文件内容未被覆盖
(2)追加错误输出到westos并查看结果
(3)追加所有输出到westos并查看结果
3.管道(" | ")
管道是把上一条命令的输出变成后一条命令的输入;
管道只识别正确的信息也无判断能力,只会让正确的信息通过;
通过管道的输出将会变成输入,如果下一条命令是需要复制上一条命令的输出,用" tee "命令执行
相关符号 | 用途 |
---|---|
2>&1 | 将编号为2的输出转换为1 |
tee | 复制输出到指定位置 |
(1)管道将上一条命令的正确输出变为下一条命令的输入,结果为2
(2)编号为2的输出被"2>&1"转换为1,最终结果为16
(3)保存一份输出到文件"file"再统计行数,并查看file
注意:当使用tee命令时,其所在位置只会保存上一条命令的输出
4.输入重定向( " < " )
用符号从文件中获取输入==
我们改密码时需要按着步骤一步一步来执行,这属于交互型模式输入;用vim编辑一个".sh"脚本文件," bash "命令对脚本进行调用
输入重定向是指不使用系统提供的标准输入端口,而进行重新的指定
因为passwd命令执行时需要输入密码,可以用多行输入解决此问题," << EOF "多行录入起始,当起始字符再次出现表示录入结束
"bash"执行"westos.sh"文件会显示时间并且密码更新成功
单行输入重定向"<"
注意: 输入重定向需要在root(超级用户)下完成
5.man命令的用法
man ——level ——target==
man | man命令本身 |
---|---|
level | man级别 |
target | man的对象 |
- man 对象本身
man的级别
1 | 查看命令用法 |
---|---|
2 | 系统呼叫接口(系统调用) |
3 | 函数库调用 |
4 | 系统特殊文件 |
5 | 系统配置文件 |
6 | 游戏 |
7 | 特殊包 |
8 | 系统管理命令 |
9 | 内核规则 |
注意:
command --help | 查看命令的基本用法 |
---|---|
[内容] | 在执行时可加可不加 |
" … " | 加入的内容个数任意 |
<内容> | 在执行操作时必须加入的 |
man passwd ##查看passwd命令的基本用法
man -5 passwd ## 查看/etc/passwd文件
man -k passwd ## 查看passwd在系统中有多少个级别的man