I/O重定向

文件描述符在Linux中是进行I/O重定向的基础,它们是数字标识,用于跟踪系统中的文件。I/O重定向允许我们将命令的输出重定向到文件或其他命令,例如标准输出(stdout)和标准错误输出(stderr)。这在需要保存输出、消除不必要的显示或分离错误信息时非常有用。重定向操作包括使用>、>>、2>、2>>等符号将输出导向特定文件。
摘要由CSDN通过智能技术生成

文件描述符

在我们开始学习重定向之前,我们先来了解一下文件描述符(fd:file descriptor)

一切皆文件,大家应该都听过这句话吧,linux的哲学思想。当我们对这些文件进行处理的时候,系统对会对每个打开的文件分配一个文件描述符。
文件描述符是一个数字。不同数字代表不同的含义,默认情况下,系统占用了3个,分别是0标准输入(stdin),1标准输出(stdout), 2标准错误(stderr), 另外3-9是保留的标识符,可以把这些标识符指定成标准输入,输出或者错误作为临时连接。通常这样可以解决很多复杂的重定向请求。

我们可以在/proc/1/fd目录下查看文件通配符,如下:
[root@centos7 ~]# ll /proc/1/fd
total 0
lrwx——. 1 root root 64 Jul 22 08:00 0 -> /dev/null
lrwx——. 1 root root 64 Jul 22 08:00 1 -> /dev/null
lr-x——. 1 root root 64 Jul 22 11:49 10 -> anon_inode:inotify
lr-x——. 1 root root 64 Jul 22 11:49 11 -> /proc/swaps

I/O重定向是什么呢?

简单的来讲,I/O重定向就是一个过程,将命令、程序或脚本的输出,作为输入发送到另外一个程序、文件、或命令。

我们在Linux执行命令,它的过程如下图:

  • 我们先通过键盘或者文件,进行指令输入
  • 指令执行完成后,如果正确,会把结果输出到屏幕(因为默认标准输出到屏幕)
  • 指令执行完成后,如果错误,会把结果输出到屏幕(因为默认标准输出到屏幕)

为何要使用输出重定向呢?

1.当屏幕输出信息较为重要,而我们也需要将信息存下来时

2.当 执行脚本时,我们不希望看到一些命令的输出结果,可以将它输出到/dev/null(俗称黑洞)丢掉

3.当执行命令时,需要把错误与正确讯息分别输出时

标准输出和标准错误输出

标准输出(stdout):代码为 1 ,使用 > 或 >>

示例

1.查看命令执行结果的默认输出

[root@centos7 app]# ls  # 我们可以看到默认输出是屏幕
a.txt  b.txt  c.txt  d.txt

2.将命令的执行结果输出到文件中

[root@centos7 app]# ls > output.txt # 将ls命令的执行结果重定向到output.txt中
[root@centos7 app]# cat output.txt  # 查看output.txt,ls命令的执行结果已经被重定向到output.txt                              
a.txt
b.txt
c.txt
d.txt
output
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值