目录
输入输出的定义
字符设备
字符设备就是显示字符到屏幕上的设备文件
stdin
标准输入,编号为0,键盘,鼠标,打字机
stdout
标准正确输出,编号为1
stderr
标准错误输出,编号为2
如何管理输入
输入就是外界传递到程序中的信息
1)、 < #输入重定向
tr 'a-z' 'A-Z' < test #将test文件中的小写字符全部更新为大写字母
2)、 << #多行录入
tr 'a-z' 'A-Z' << EOF(任意字符)
xxxxx
xxxxxx
EOF #当首字母再次出现时表示录入结束
管道和输入重定向的结果相同,但处理内容和执行速度不同
*输入重定向与管道的区别:
管道处理的是pig/fd/0\1\2中的输出(内存中的数据)
输入重定向处理的是真实的文件内容(硬盘中的数据)
多行录入
bash/sh test执行文件内容中的命令
如何管理系统输出
1)、输出重定向
> #重定向正确输出
2> #重定向错误输出
&> #重定向所有输出
find /etc/ -name passwd > westos.out
find /etc/ -name passwd 2> westos.err
find /etc/ -name passwd &> westos.all
#重定向管理输出后会覆盖原文件内容
2)、追加
>> #追加正确输出
2>> #追加错误输出
&>> #追加所有输出
find /etc/ -name passwd >> westos.out
find /etc/ -name passwd 2>> westos.err
find /etc/ -name passwd &>> westos.all
#追加和重定向功能类似,但不会覆盖原文件内容
3)、 管道 “ | ”
把前一条命令的输出便为输入传递到下一条命令进行操作
在teminal中,输出默认保存在/proc/目录下
如何找到所有的输出文件:
1、打开一个shell,找到该shell所对应的pid
2、打开该pid对应的进程文件夹并打开
3、在pid/fd/目录下,即可找到相对应的输出文件(错误输出,正确输出,所有的输出)
该实验需要在普通用户登陆下进行:
寻找正确输出时会显示错误输出的内容
寻找错误输出时会显示正确输出的内容
> 重定向会重写文件内容
>> 追加则会在原文件的基础上添加新的内容
管道:输出了几个地方就会将内容缓存几份
ls /bin/ | wc -l
#有几个管道,最先输出的内容就会缓存几份
ls /bin/ | tee westos | wc -l
tee
表示写入标准输入中的内容并输出到标准输出中
注意:管道只处理正确的输出
2&>1表示把编号为2的输入转换为编号为1的输出中
tee #表示复制输出到指定位置
管道在一次命令中可以使用多次
命令行获得帮助
whatis rm #查看命令的基本用途
#当查看中出现rm:nothing appropriate表示:
1、要查看的内容没有帮助
2、系统帮助数据未更新,需要使用超级用户用"mandb"进行命令的更新
rm --help #查看命令的基本用法
[] #内容可加可不加
... #内容个数任意
<> #必须在命令执行时加入的元素
man -k passwd #passwd关键字有多少级别的man
#man命令用法详解,man是manual的缩写
man的级别:
1 #命令
2 #系统调用
3 #函数库调用
4 #特殊文件(设备文件等)
5 #文件
6 #游戏
7 #特殊的包
8 #系统管理命令
9 #内核信息规则
man rm #进入到rm命令的帮助
q #退出
/关键字 #搜索关键字,n向下匹配,N向上匹配
G #快速移动到man的最后
g #快速移动到man的开始
实例演练:
1、假设不清楚命令cal的作用
解:
2、想知道2021-02-13是这一年的第几天
思路:首先寻找与第几天有关的参数,-j解释中的“day-of-year”大致符合题意,再将参数2021-02-13带入