Linux: /dev/fd/详解

本文探讨了Linux系统中/dev/fd的用途,它与标准输入、输出和错误的关系。通过实例展示了如何查看和理解这些文件描述符,并提到了它们在命令行操作中的应用,例如在使用tee命令时的作用。同时,文章还提到了通过观察/dev/fd/3来获取系统开机时间的方法。

早上在使用htop查看系统情况时,发现了占用率最高的命令如下:

java -jar test.jar /dev/fd/63 2/dev/fd/62

但我运行时输入的命令是这样的:

java -jar test.jar >(tee -a stdout.log) 2>(tee -a stderr.log >&2)

可以参考我的这篇文章:Linux下使用tee既在屏幕上显示输出,又把输出写进文件

这就涉及到了/dev/fd/的内容了。


/dev/fd是Linux的一个特性,其中/dev/fd/0是指标准输入(STDIN),/dev/fd/1是指标准输出(STDOUT)/dev/fd/2是指错误输出(STDERR),每个进程都有自己的/dev/fd/

更多内容参考这个网站:ls - Something’s special about /dev/fd/3


在终端中对/dev/fd/进行ls:

-> # ls -l /dev/fd
lrwxrwxrwx 1 root root 13 Nov 22  2018 /dev/fd -> /proc/self/fd

根据我的观察,这里的时间是Linux系统开机的时间,我的这台机器已经188天没关机了。

然后继续进行查看:

-> # ls -l /proc/self/fd
total 0
lrwx------ 1 root root 64 May 29 15:37 0 -> /dev/pts/0
lrwx------ 1 root root 64 May 29 15:37 1 -> /dev/pts/0
lrwx------ 1 root root 64 May 29 15:37 2 -> /dev/pts/0
lr-x------ 1 root root 64 May 29 15:37 3 -> /proc/20125/fd

这里可以看出STDIN,STDOUT,STDERR都指向了终端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值