相关疑难解决方法(0)

了解 /dev 及其子目录和文件

$ ls -l /dev/stdin /dev/fd/0
lrwx------ 1 tim tim 64 2011-08-07 09:53 /dev/fd/0 -> /dev/pts/2
lrwxrwxrwx 1 root root 15 2011-08-06 08:14 /dev/stdin -> /proc/self/fd/0
$ ls -l /dev/pts/2 /proc/self/fd/0
crw--w---- 1 tim tty  136, 2 2011-08-07 09:54 /dev/pts/2
lrwx------ 1 tim tim     64 2011-08-07 09:54 /proc/self/fd/0 -> /dev/pts/2
Run Code Online (Sandbox Code Playgroud)
  1. 我想知道是否所有文件/dev及其子目录下的所有文件都是设备的文件描述符?
  2. 为什么彼此之间有这么多链接?例如,/dev/fd/0/dev/stdin/proc/self/fd/0都是指向 的链接/dev/pts/2
  3. 如果lin lrwx------mean link,cincrw--w---- 是什么意思?

linux file-descriptors devices

66
推荐指数
3
解决办法
6万
查看次数

连接 STDOUT 和 STDIN 是什么意思?

我在看一本书,上面写着:

每个进程至少有三个可用的通信通道:“标准输入”(STDIN)、“标准输出”(STDOUT)和“标准错误”(STDERR)。

大多数命令接受来自 STDIN 的输入并将其输出写入 STDOUT。他们将错误消息写入 STDERR。此约定允许您像构建块一样将命令串在一起以创建复合管道。

Shell 将符号<>和解释>>为将命令的输入或输出重新路由到文件或从文件重新路由的指令。

要将一个命令的 STDOUT 连接到另一个命令的 STDIN,请使用| 通常称为管道的符号。

ps -ef | grep httpd
Run Code Online (Sandbox Code Playgroud)

所以基本上这就是说标准输入是一个允许用户写入文件的命令,而标准输出是一个命令让 bash shell 将输出写入 shell,而标准错误就像输出一样,但它只是当文件系统出现错误时调用。然后我们到了连接 STDOUT 和 STDIN 的部分,我迷路了。

shell pipe io-redirection stdout stdin

10
推荐指数
2
解决办法
7219
查看次数

一个命令怎么会有多个输出?

这个答案中,在最底部,Gilles 提到一个命令可以有多个输出或输入。

是的,有cat foo bar | something, 用于将foobar作为输入,还有tee用于输出;但这似乎并不是他真正要说的。

一个程序怎么会有多个输入或输出?

io-redirection stdout stdin

6
推荐指数
1
解决办法
2123
查看次数

标签 统计

io-redirection ×2

stdin ×2

stdout ×2

devices ×1

file-descriptors ×1

linux ×1

pipe ×1

shell ×1