Linux中的输入输出

输入
stdin[标准输入流]
输入是指系统外接向系统传递的信息
系统外接向系统中传递数据的方式如下
1.键盘
2.鼠标
3.输入命令
输出

输出 standout[标准正确输入] stderr[标准错误输出]
在命令顺利执行完成后的字符串 在命令失败执行完成后产生的字符串
在linux中的输出信号为1 stderr在linux中的输出信号为2

字符设备
字符设备是指在I/O传输过程中以字符为单位进行传输的设备,例如键盘,打印机等
字符设备是内存中开启的虚拟设备并真实存在
“品品Linux中的输入输出”_第1张图片

重定向输出find /etc/ -name passwd

注意:必须在普通用户下

1> 2> &>
正确输出 错误输出 全部输出

小应用:>westos 清空文件

2 find /etc/ -name passwd 追加: 不覆盖原文件
“品品Linux中的输入输出”

find /etc/ -name passwd > westos.out 正确输出存放到westos.out
“品品Linux中的输入输出”_第2张图片

“品品Linux中的输入输出”_第3张图片

“品品Linux中的输入输出”
“品品Linux中的输入输出”_第4张图片

追加

追加正确/错误/所有

“品品Linux中的输入输出”_第5张图片
“品品Linux中的输入输出”_第6张图片
“品品Linux中的输入输出”_第7张图片
“品品Linux中的输入输出”_第8张图片
“品品Linux中的输入输出”_第9张图片
“品品Linux中的输入输出”_第10张图片

“品品Linux中的输入输出”_第11张图片

管道

管道定义:把输出变成最后一条命令的输入

符号 用途
2>&1 将编号为1的输出转换为2
lee 复制输出到指定位置
’ 管道符

例题:显示历史3~5行输出
“品品Linux中的输入输出”_第12张图片

[student@workstation Desktop]$ ls /bin | wc -l  ##统计/bin有多少文件
1612
[student@workstation Desktop]$ find /etc/ -name passwd | wc -l  ##默认只有正确输出可以通过管道
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/sssd’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
2
[student@workstation Desktop]$ find /etc/ -name passwd 2>&1 | wc -l    ##将错误输出定向到正确输出存放位置
16
[student@workstation Desktop]$ find /etc/ -name passwd | tee file | wc -l  #复制输出到file文件再通过管道统计
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/sssd’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
find: ‘/etc/lvm/archive’: Permission-

**输入重定向

以修改密码为例

“品品Linux中的输入输出”_第13张图片
“品品Linux中的输入输出”_第14张图片

输入重定向符号


command << [输入标识]
内容
...
...
[输入标识]

比较方便,不用输入密码,直接在vim下编辑
1。vim下编辑westos.sh 文件。直接输入passwd,在修改密码时需要输入密码
2.用输入重定向符号,直接编辑较为方便
“品品Linux中的输入输出”
“品品Linux中的输入输出”_第15张图片

-