linux下的输入输出管理、重定向

1、输入输出的定义
输入:就是通过我们的键盘,鼠标和其他硬件在系统中录入的字符。
输出:就是系统接收到我们想要实现的功能字符后,经过进程的处理产生的字符(输出会有两种出现,编号为1 的正确输出以及编号为2的错误输出,这两种输出都会被系统默认定向到字符设备中)。
2、非交互式多行录入
例如,修改密码时执行以下操作
vim C_pass.sh
passwd
sh C_pass.sh
是不能自动运行的,属于交互式;而执行
passwd <<END
redhat
redhat
END
sh C_pass.sh
可以自动运行,避免交互。

 

3、输出管理

(1)重定向

a、>   重定向正确输出 (正确输出在file.right中,错误输出在shell中)

b、2>   重定向错误输出(错误输出在file.error中,正确输出在shell中)

c、&>   重定向所有输出(所有输出在file.all中) 

注:重定向会覆盖原文件内容!!!

如上图所示操作,使用vim test命令,在test文件中写入hello world内容,执行find /etc/ -name passwd > test后,cat test查看文件内容,原文件内容被find /etc/ -name passwd > test所产生的正确输出所覆盖。

d、2>&1   把错误输出的编号由2转换为1

(2)追加:保持原文件内容不变的情况下把输出追加到文件之后

>>   追加正确输出
2>>   追加错误输出
&>>   追加所有输出

如上图所示操作,使用vim test命令,在test文件中写入hello world内容,执行find /etc/ -name passwd >> test后,cat test查看文件内容,原文件内容后追加find /etc/ -name passwd > test所产生的正确输出,原文件内容依旧存在。

(3)管道:把上一条程序的输出变成下一个程序的输入,用于组合多条命令
例如:ls /bin | wc -l 即查看/bin的行数
注:通过管道后输出会变成输入,因此输出是无法保存在文件中的。
ls /bin | tee file | wc -l 即将输出复制到file中,同时查看/bin的行数,其中tee 作用是复制输出到指定位置
执行cat file命令,可以查看已经保存了的输出。

 

例题:1.显示当前时间 , 显示格式为 hh:mm:ss, 并保存到文件 time.txt文件中。

2.显示 /etc/passwd 文件的第 15-18 行内容。

3.显示 /bin 中文件包含大写字母的文件 , 保存到bin_westos_file.txt 文件中,并统计个数显示到屏幕。

4.在 student 用户下查找 /etc 下 passwd 文件,屏蔽错误输出。

5.在 student 用户下查找 /etc 下 passwd 文件,正确输出保存到 /tmp/westos.out 错误输出保存到 /tmp/westos.err。

其中,/dev/null存放系统垃圾数据。

6.在 student 用户下查找 /etc 下 passwd 文件,显示命令输出并保存输出到 /tmp/westos.all 中

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值