I/O重定向

1 I/O重定向

与UNIX“一切都是文件”的思想一致,类似于ls的程序实际上把它们的运行结果发送到了一个称为标准输出(standard output,通常表示为stdout)的特殊文件中,它们的状态信息则发送到了另一个称为标准错误(standard error,stderr)的文件中,默认情况下,标准输出和标砖错误都将被链接到屏幕上,并且不会被保存在磁盘文件中。

标准输入(standard input,表示为 stdin),默认连接到键盘。

简单来说,标准输入、标准输出以及标准错误 指的就是 Linux 默认的输入输出形式,即从键盘输入,运行结果在显示屏显示。

当我们要将输入的形式变更,或者将输出的结果保存在别的文件或其他外设中时,就要用到重定向了。

 

标准文件描述符

标准输入(stdin,文件描述符 0): 这是程序默认从中读取输入的地方。从键盘输入时,标准输入就是键盘。在I/O重定向中,可以将标准输入重定向到文件,使程序从文件而不是键盘读取输入。

标准输出(stdout,文件描述符 1): 这是程序默认将输出发送到的地方。在终端上看到程序的输出时,那就是标准输出。通过I/O重定向,可以将标准输出重定向到文件,使程序的输出被写入文件而不是显示在屏幕上。

标准错误(stderr,文件描述符 2): 这是程序默认将错误消息发送到的地方。与标准输出类似,通过I/O重定向,可以将标准错误重定向到文件,以便将错误消息保存到文件中而不是在屏幕上显示。

 

1.1 输出重定向

输出重定向分为正确输出与错误输出。
正确输出:1>、1>> 等价于 >、 >>,1 可省略。
错误输出:2>、2>>。
其中,“>”表示覆盖,“>>”表示追加

 

覆盖

 

追加

 

错误输出重定向

 

同时重定向输出和错误信息到相同位置,可以使用 2>&1 符号:

将输出和错误信息都重定向到同一个文件中,并且输出和错误信息保持顺序,可以使用 &> 符号:

正确和错误信息重定向到不同位置:

 

1.2 输入重定向

输入重定向是一种将文件内容作为命令的输入的机制。可以使用输入重定向符号 “<” 来实现。通过输入重定向可以将文件的内容作为命令的标准输入,而不是从键盘输入。

 例如:统计文件行数

 

1.3 Subshell

子Shell(subshell)是指在当前Shell进程中创建一个新的Shell进程,该新进程可以独立于父进程执行命令。子Shell通常在子进程中执行一系列命令,而这些命令的影响不会传递到父Shell中。

子Shell的创建通常通过使用括号来实现。

 

posted @   Lc---  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示