✨ 复制成功!

以文会友,打造好学人设!

📋 已复制到剪贴板:

命令王国的习俗

创建时间:2022-04-25 更新时间:2022-04-25 阅读次数:1152 次

对人而言,需要吃喝拉撒,对命令而言,也是如此。以echo shelltalk为例。首先,我们敲击键盘,拼出“shelltalk”,然后回车一下,echo命令从键盘读到数据,这就是输入,它来源于键盘发出的信号;接着,echo命令开始执行;最后,echo命令在屏幕上打印出“shelltalk”,这就是输出,命令的输出场所就是屏幕。

[root@localhost ~]# echo shelltalk
[root@localhost ~]# shelltalk

在人类社会,吃喝要用碗筷,拉撒要上厕所,这是一种约定成俗的规定。在命令世界里,也有这样的规定,这就是:标准输入、标准输出、标准错误。正因为有如此规定,所以我们感觉很自然,不需要做什么设置,就能很顺畅的实现输入和输出。

不按规定做事,在世俗社会,这就叫奇葩,在命令世界里,这叫重定向。重定向,全称是:重新指定I/O设备的方向。从名字上就可以获知,重定向包括两层含义。第一层含义:指定设备;第二层含义:指定方向。

在Linux世界,一切皆是文件,常常用文件符来表示识别设备。所以,重定向的标识符为:文件符+箭头方向,两者之间不能加空格,如下所示:

command  0<file1  1>file2  2>file3

将 file1 作为 command 的输入,将 command 的处理结果输出到 file2,将 command 的错误信息输出到 file3。

按照世俗规则办事,我们不需要多做一点工作,因为系统已经为我们都设置好了,如下所示:

类型 设备文件 文件符 默认设备
标准输入 /dev/stdin 0 键盘
标准输出 /dev/stdout 1 显示器
标准错误 /dev/stderr 2 显示器

不与凡花争奇艳,要想不落俗套,做与众不同之路,在内心里面更要牢记各种符号规则,如下所示:

类型 操作符 用途
重定向输入 0< 输入源来自指定的文件
重定向输出 1> 输出到指定的文件(覆盖)
重定向输出 1>> 与> 类似,它是追加
重定向错误 2> 输出错误信息到指定的文件
重定向错误 2>> 与上面类似,它是追加
混合重定向 &> 所有的输出,相当于>和2>

补充:

混合重定向:&>,输出就两种:标准输出和错误输出,&表示1和2。还有一种写法:cmd 2>&1 file。不过,后者不如前者好记忆。

本教程共16节,当前为第10节!
本教程最新修订时间为:2026-08-21 21:27:37

📌 面试天下网:一款服务于上班族的口袋书,让大家在地铁里/公交上可以学习大模型技术!
📌 网站公告:【悬赏 200 元/篇】寻找“大模型面试战场”的一手回忆录

评论专区

评论加载中...