实验楼--第十二章_数据流与重定向

> >> < << :基础重定向

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
管道是两个进程之间通信用的,而重定向是需要有文件作为中间连接。更直白一点:

管道两段直连进程,重定向有一端必定是文件(可能是隐含的,先经过文件中转)


&:操作文件描述符

在这里插入图片描述
在这里插入图片描述
自己的领悟,感觉可能有错:
在这里插入图片描述
不过也是好理解,因为自己写代码有时候也会用到

python xxx.py > record.log 2>&1

其实就是因为运行python进程会有stdout和stderror同时显示在terminal,而 > 应该确实只能把stdout的内容重定向到文件,stderror需要用2>&1额外指定

###
果然,后面的实验支持了我的猜想:
在这里插入图片描述
这里 1 指的就是stdout,这和我猜的 stdin\stdout\stderror分别对应0\1\2 是一样的


tee: 多重重定向:

在这里插入图片描述


exec: 永久重定向

在这里插入图片描述

# 先开启一个子 Shell
zsh
# 使用exec替换当前进程的重定向,将标准输出重定向到一个文件
exec 1>somefile
# 后面你执行的命令的输出都将被重定向到文件中,直到你退出当前子shell,或取消exec的重定向(后面将告诉你怎么做)
ls
exit
cat somefile

在这里插入图片描述
在这里插入图片描述
很好理解,因为我们之前学过 - 本来就是上一层目录的意思,这里就是上一次重定向文件的描述符


/dev/null: 黑洞文件

在这里插入图片描述
我们可以利用 /dev/null 屏蔽命令的输出:

cat Documents/test.c 1>/dev/null 2>&1

上面这样的操作将使你得不到任何输出结果。


xargs: 分割参数列表

在这里插入图片描述
这个命令在有些时候十分有用,特别是当用来处理产生大量输出结果的命令如 find,locate 和 grep 的结果,详细用法请参看 man 文档。

cut -d: -f1 < /etc/passwd | sort | xargs echo

上面这个命令用于将 /etc/passwd 文件按 : 分割取第一个字段排序后,使用 echo 命令生成一个列表。

其实说白了就是把很多一行行的东西(如上述cut的stdout,ternimal一个page塞不下)变成参数列表,一列显示:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值