管道
文件描述符、重定向
0:标准输入 -> 默认 接受来自键盘的输入
1:标准输出 -> 默认输出到终端窗口
2:标准错误 -> 默认输出到终端窗口
一、tail -f /tmp/a
1 2 3 4 5 | [root@centos7 ~] # tail -f /tmp/a a b c d |
二、新开窗口:查看tail命令的pid
[root@centos7 ~]# pidof tail 113680
三、看该进程的目录都有什么
1 [root@centos7 ~]# ls /proc/113680/fd -l
这个3就是分配的文件描述符
超级分割线
将当前终端的输出内容重定向到另一终端
一、现在虚拟机连了两个终端
二、将pts/0的输出重定向到pts/1上
三、去pts/1看下
超级分割线
重定向的一些设置
set -C 禁止将内容覆盖已有文件(在终端中执行就可以,也可以放到脚本中)
> | file 强制覆盖(很少用到)
set +C 允许覆盖
&>/dev/null 等于 >/dev/null 2>&1
另一种正确写法 2>/dev/null 1>&2
再一种正确写法:>/dev/null 2>&1
下面是错误的写法
2>&1 >/dev/null
原因:标准错误输出到标准输出的时候,标准输出还没开始,所以错误会打印到屏幕
将多条命令的输出重定向到/tmp/a.txt
使用小括号
的
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步