Linux中的输入输出
1.1 Linux系统中输入输出的定义
1,输入:stdin[标准输入流],系统外界向系统传递信。
方式:键盘 • 鼠标 • 输入命令
2,输出:
(1)stdout[标准正确输出], 在命令顺利执行完成后产生的字符串 ,stdout在Linux中的输出编号为1
(2)stderr[标准错误输出] , 在命令失败执行完成后产生的字符串 ,stderr在Linux中的输出编号为2
3,字符设备:字符设备是指在I/O传输过程中以字符为单位进行传输的设备,例如键盘,打印机
字符设备是内存中开启的虚拟设备并不真实存在
1.2 Linux系统重定向输出
符号 | 用途 |
---|---|
> | 正确重定向输出 |
2> | 错误重定向输出 |
&> | 全部重定向输出 |
# find /etc -name passwd >westos.out
# find /etc -name passwd 2>westos.out
# find /etc -name passwd &>westos.out
# > westos.out 清空westos.out内容
# history >westos.out
# echo haha > westos.out 把haha重定向正确输出到westos.out
注意:重定向会覆盖源文件内容
实验:
1.3 linux追加定向输出
追加符号 | 用途 |
---|---|
>> | 追加正确输出 |
2>> | 追加错误输出 |
&>> | 追加全部输出 |
# find /etc -name passwd >>westos.out
# find /etc -name passwd 2>>westos.out
# find /etc -name passwd &>>westos.out
注意:追加定向输出不会覆盖源文件内容,追加动作会把内容放在末尾。
实验
1.4 linux管道符 |
1.管道定义:把输出变成后一条命令的输入,管道符只处理正确输出。
2.管道的相关符号
| :管道符
2>&1:把错误输出接入正确输出,可以通过管道符。
tee:复制输出到指定位置
#ls /bin |wc -l 统计bin文件个数,ls /bin输出目录中所有文件,输出经过管道符后变成 wc -l 输入, 统计行数。
#ls /bin |wc -l |wc -l 结果为1 ,因为第一次统计行数再一次作为输出,继续统计输出行数,结果为1.
# find/etc -name passwd | wc -l 默认只有正确输出才可以通过管道符
# find/etc -name passwd 2>&1| wc -l 如果需要错误输出也通过管道符,可以用2>&1,把错误输出接入正确输出。
# # find/etc -name passwd 2>&1| tee file |wc -l 复制输出的内容到指定文件中,然后统计file行数
注意:如果不需要输出在屏幕上,可以把输出指出指向/dev/null垃圾箱
实验
1.5 linux输入重定向
1.定义:用符号从文件中获取输入
2.输入重定向符号:< 和
command << [输入标识]
内容 … …
[输入标识]
命令<文件 | 将文件作为命令的标准输入 |
---|---|
命令<<分界符 | 多行录入,将文件多行内容作为标准输入,直到遇见分界符 |
命令<文件1>文件2 | 将文件1作为标准输入,结果作为标准输出到文件2 |
eg1 # tr 'a-z' 'A-Z' < file 把file中的内容小写换成大写
eg2 #vim westos.sh
passwd << EOF
123456
123456
EOF
#sh westos.sh
eg3 # tr 'a-z' 'A-Z' < file1 >file2
1.6 linux的帮助手册
# whatis command 查看命令用途
#command --help 查看命令用法
#man -k command 查看命令在系统中有多少级别的man
#man 5 passwd 查看帮助
注意:1.#man
中常用的是级别1和5,1是系统命令,5是系统配置文件
2.[options…]代表可加可不加的参数(…代表可以加多个),<>表示必须加的参数。
3.“NAME”部分是该命令名字和解释“SYNOPSIS”是摘要[OPTIONS…]
告诉如何使用“PESCRIPTION”是具体使用。