人机互动的桥梁——输入与输出

系统中输入输出的管理

理解系统的输入输出

电脑的主要职责就是帮助人们解决问题,那么人们把问题告诉电脑,电脑处理并回馈答案其实就是人机交互。我们每一次敲动键盘、点击鼠标,实际上就是一种输入,而电脑上的光标变化,文字变化,就是输出的一种。

管理输入输出的符号

输出重定向

我们在使用Linux的过程中,会输入很多命令与系统进行交互,很多时候系统会给我们的命令一个输出作为回馈(例如date命令),但是有的时候,我们并不像在电脑上直接看到这个回馈,而是希望电脑把这个输出放在某个文件里,
这是我们就需要‘>’定向符这个符号了
例如date这个命令
我们现在先建立一个空文件
在这里插入图片描述
然后我们输入date命令,正常情况下电脑会给我们一个日期的回馈,但是我们如果想要电脑直接把日期输入到file这个文件里的话,可以这样
在这里插入图片描述
我们可以看到屏幕上没有任何输出,但是我们打开file这个文件
在这里插入图片描述
可以发现实际上已经把date文件的输出放在了file里
> ##重定向正确输出
2> ##重定向错误输出
&> ##重定向所有输出
正确的输出编号为1,可以省略,而错误的输出编号为2(错误输出的意思是,被电脑报错的,没有完美执行命令的输出)
注意:
重定向会覆盖原文件内容

示例:
注意:以下实验必须在普通用户下完成(因为如果是root用户的话,权限足够,不会被报错)
查看/etc下所有名字中带有passwd的文件
find /etc/ -name passwd > file ##定向正确输出到file
find /etc/ -name passwd 2> file ##定向错误输出到file
find /etc/ -name passwd &> file ##定向所有输出到file
> file ##清空file(用空的内容来覆盖原来的内容,也就是清空)
在这里插入图片描述
我们可以看到很多的报错,这是因为我们作为一个普通用户,很多目录是没有查看的权利的,所以这些报错的信息实际上就是一种错误输出

输出追加

我们使用>去导入输出会覆盖我们本来的内容,但是很多时候我们并不希望原来的内容消失,这时我们就需要>>
>> ##追加正确输出到文件最后
2>> ##追加错误输出到文件最后
&>> ##追加所有输出到文件最后
在这里插入图片描述
注意:追加不会覆盖原文件内容这样我们就成功的将输出导入文件并且原来的内容还没有丢失

Linux中的命令架构师——管道符

在Linux中|称为管道符,意思是将上一个命令的输出作为下一个命令的输入,如果需要输入到文件中,则“| tee file |”(复制一份到文件中然后继续通过管道符流向下一个命令),但是|只能允许正确的输出也就是编号为1的输出通过,所以如果想要让错误的输出通过|,需要骗过|,命令如下:
2>&1 #意思是让编号为2(错误)的输出转变成编号为1(正确的)输出,输出的内容没有改变,但是编号变了就可以通过|了
我们通过使用管道符可以在一条命令中实现很多命令的功能
我们再次建立一个空文件test,输入图中命令在这里插入图片描述
可以看到date命令所显示的日期被复制了一份放在了test里面,随后又作为wc的输入,随后wc命令输出,是1行

有的时候我们需要批量地执行输入,但是每一次输入都需要我们手动加入数据,重复的工作枯燥且没有意义(比如批量改密码),这时我们可以用<<这个符号

<<表示开始,举例:
aaaaa <<hmc
bb
cc
hmc #当遇到<<后的关键字时停止
上面写的意思是,执行aaaaa命令,随后再自动输入bb和cc(比如修改密码时需要写入旧密码和新密码),之后遇到了<<后的关键字停止
这样在对于大批量的文件命令的处理上就不必再做那些重复无意义的工作了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值