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的创建通常通过使用括号来实现。
标签:输出,Shell,重定向,文件,标准,输入 From: https://www.cnblogs.com/Lc-1/p/17860551.html