跳至内容
深圳市捷比信实业有限公司 · 产品选型与采购咨询联系业务人员
抗浪涌电阻捷比信 · 专业器件主题站

Linux的标准输入和标准输出

让我向您展示一个非常熟悉的示例:[root @ testLinux〜]#ifconfig-查看有关网卡的信息。由此可以看出,运行ifconfig命令时,操作系统将通过显示屏输出与网卡相关的信息。现在,我们将返回并了解上图中从键盘到终端处理程序的过程。我们从键盘输入该命令,然后将其提供给它。在操作系统内核执行之后,将输出这样的过程,因此我们在这里将键盘称为标准输入,而在监视器上显示的输出结果称为标准输出,并且然后查看下一个命令[root @ testLinux〜]#cat / etc / cmss的输出结果。由于此文件夹不存在,系统输出错误的输出,因此我们将此输出称为标准错误输出。由于linux系统的特性,所有设备均由文件表示,因此上图中的键盘(标签1)用作标准输入设备,由linux中的/ dev / stdin文件表示,而标准输出设备(标签3)用于显示/ dev / stdout文件表示,标准错误输出设备(标签4)由/ dev / stderr文件表示。 1)标准输入(STDIN),文件位置:/ dev / stdin,文件描述符为02)标准输出(STDOUT),文件位置:/ dev / stdout,文件描述符表示为13)标准错误(STDERR),文件位置:/ dev / stderr文件描述符表示为2那么,这里的文件描述符是什么?我们知道操作系统运行命令或软件,并且操作系统将为该命令或软件分配一个进程,以便区分不同的进程操作系统。使用进程号来表示,您如何知道这些进程的文件?手术了吗?因此,使用文件描述符来指示操作系统将操作哪些文件。以下是一个示例。例如:在后台[root @ testLinux network-scripts]#tail -f / etc / sysconfig / network-scripts / ifcfg-ens33中运行此命令查看与该命令对应的进程号:通过以下方式查看与该命令对应的进程: ps命令的编号为7280。接下来,检查由进程[root @ testLinux network-scripts]操作的文件#cd / proc / 7280 / fd此目录下的相应文件是由进程编号7280操作的文件。 0,1,2,3 ...这样的数字表示这些数字也是只是链接文件的文件。此处的数字有一个特殊的名称,称为文件描述符。从这里可以得出结论,操作系统内核分配进程的路径是这样的,在/ proc / process number / fd /,fd下是由命令或程序操作的文件。让我们看一下由进程号7349操作的文件。从图中可以看到,由进程操作的磁盘文件是/ etc / passwd。还有三个文件0、1和2,因此可以在这里得出的结论是,与该过程的文件操作无关,这三个文件(标准输入,标准输出和标准错误输出)都是必需的。它们分别代表键盘和显示屏。这是一个不可理解的要点:标准输出和标准错误输出。默认设备还引用显示,只是为了用不同的文件表示形式来区分它。