✨ 复制成功!

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

📋 已复制到剪贴板:

命令的肺腑之言

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

命令是个小精灵,吃喝拉撒,看起来好不爽快,但实际上都是人来安排好的,都强加了人的意愿。

程序=算法+数据结构。算法有五大特性:输入、输出、有穷性、确定性、可行性。所有的一切都被安排好了,无论输入什么,还是输出什么,包括其中执行的步骤和规则,都是按照人的意愿来的,都是人强加给的。只有“错误”,才是小精灵发自内心的肺腑之言,让人深感意外,茫然失措,不得不停下脚步,倾听其心声。

本来,错误和正常的输出一样,都是打印到终端的,也就是说,命令的执行结果无需做任何的设置,都会输出在当前窗口。但是,人们往往更喜欢听赞歌,不想听忠告,而是划分成三六九等,选择性地倾听。

将正常的输出归入1类,表示为1>,将错误归入2类,表示为2>,然后选择性的倾听:cmd 1> stdout.txt 2>stderr.txt。更有甚者,杜绝一切忠言逆耳:cmd 2>/dev/null

我们从小都知道符号<和>,知道它们分别表示小于和大于。长大之后,我们还知道它们在html语言中用来表示标签,例如

,它们两个看似简单,但是深入挖掘的话,还有很有学问的。最常见的情况莫过于冲突的发生,因为在html源码里面,直接写<和>,往往与标签中的符号发生冲突,像这种情况:<p> a<b </p>,页面出现的效果不是a<b,而是a,因为<b </p>被当做一个标签(注意:红色的字符被忽视了),要想正确的显示,应该这么写:<p> a&lt;b </p>,其中&lt;属于实体编码。其底层的实现过程这样的:

如今符号<>出现在shell里面,这个时候它们已经被赋予了新的含义,而且常常需要与文件描述符相结合,通常的写法是这样的:command 0<file1 1>file2 2>file3

文件描述符是内核为了高效管理已被打开的文件所创建的索引,用于指向被打开的文件,所有执行I/O操作的系统调用都通过文件描述符。程序刚刚启动时,第一个打开的文件是0,第二个是1,以此类推。stdin,标准输入,默认设备是键盘,文件编号为0。stdout,标准输出,默认设备是显示器,文件编号为1。 stderr,标准错误,默认设备是显示器,文件编号为2。

从大于小于号转换成重定向符号,并且处处与文件描述符相结合,这是一种思维的转换,更是一种习惯的养成。看似简单的<和>里面也有这么多的条条框框,学习之路充满着坑坑洼洼,需要十分的小心和警惕。

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

📌 面试天下网:一款便捷的大模型学习口袋书,让富士康流水线的打工人也能摸到改命逆天的机会!
📌 网站公告:【悬赏 200 元/篇】寻找“大模型面试战场”的一手回忆录

评论专区

评论加载中...