11_Linux基础_数据流重定向

这篇博客详细介绍了Linux中的数据流重定向,包括标准输入、输出和错误的重定向,如何定向到/dev/null,以及创建和关闭文件描述符的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录
1. 标准输入、标准输出、标准错误
2.标准输出重定向
3.标准输入重定向
4.标准错误重定向
5.重定向到/dev/null
6.创建文件描述符
7.关闭文件描述符

1. 标准输入、标准输出、标准错误

1)标准输入(stdin):代码为0,使用0<或0<<,其中代码0可以省略
2)标准输出(stdout):代码为1,使用1>或1>>,其中代码1可以省略
3)标准错误输出(stderr):代码为2,使用2>或2>>

默认情况下>和>>分别表示1>或1>>,<和<<与0<和0<<等价。
在这里插入图片描述
文件描述符:文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于 UNIX、Linux 这样的操作系统。

2.标准输出重定向

cat 命令是默认使用终端的标准输入作为命令的输入和标准输出作为命令的输出
若参数为文本,则是将文件输出到标准输出即终端屏幕。
在这里插入图片描述
等价于

cat file 1 > file2

file 的内容是 hello world! 。把标准输出重定向到file2,若不存在file2,则新创建。

>> 和 > 的区别就是:
>> 是以追加的方式添加
> 是清空原来的内容。

3.标准输入重定向

cat < file		//标准输入重定向为file文件
等价于
cat 0 < file

在这里插入图片描述

cat >file3 < file 	//标准输入重定向为file文件,标准输出重定向为file3文件

在这里插入图片描述

4.标准错误重定向

ls -qw 2 > errorfile		//把标准错误信息重定向到errorfile文件

//把标准输出和标准错误重定向到一个文件
写法1, cmd > out_file 2>&1
写法2, cmd &> out_file

5.重定向到/dev/null

在 Linux 中有一个被称为“黑洞”的设备文件,所有导入它的数据都将被“吞噬”。

在类 UNIX 系统中,/dev/null,或称空设备,是一个特殊的设备文件,它通常被用于丢弃不需要的输出流,或作为用于输入流的空文件,这些操作通常由重定向完成。读取它则会立即得到一个EOF。

在这里插入图片描述
将输出和错误输出都定向到/dev/null。

6.创建文件描述符

在 Shell 中有9个文件描述符。上面我们使用了也是它默认提供的0,1,2号文件描述符。另外我们还可以使用3-8的文件描述符,只是它们默认没有打开而已。你可以使用下面命令查看当前 Shell 进程中打开的文件描述符:

cd /dev/fd
ls -Al			//查看打开的文件描述符
$ zsh
$ exec 3>somefile
# 先进入目录,再查看,否则你可能不能得到正确的结果,然后再回到上一次的目录
$ cd /dev/fd/;ls -Al;cd -
# 注意下面的命令>与&之间不应该有空格,如果有空格则会出错
$ echo "this is test" >&3
$ cat somefile
$ exit

在这里插入图片描述

7.关闭文件描述符

exec 3>&-			//关闭3号文件描述符
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值