跳至内容

Unix/文件和进程快速入门

来自维基教科书,开放的书籍,开放的世界


在 Unix 中,所有东西都是文件或进程。在 Unix 中,文件只是数据流的目的地或来源。因此,例如,打印机是一个文件,屏幕也是一个文件。

进程是当前正在运行的程序。因此,进程可能与文件相关联。文件存储执行该进程以运行的指令。

另一种看待它的方式是,文件是可以通过名称引用的数据集合。文件由用户直接创建(使用文本编辑器、运行编译器等)或间接创建(通过运行某些程序 - 例如处理文本输入文件以生成格式化的文件以供打印)。

文件示例包括

  • 文本文档;
  • 用 C++ 或 Java 等编程语言编写的程序;
  • jpeg 图片;
  • 目录:目录可以被认为是 Windows 文件夹的模拟。目录是包含指向其他文件的链接的文件。

标准输入、输出和标准错误流

[编辑 | 编辑源代码]

有两个文件名称比较模糊,即stdinstdout。这些名称指的是数据的默认来源和目的地。考虑由命令ls启动的进程。该进程的默认输出是当前工作目录中文件的列表,然后显示在屏幕上。这说明了默认输出stdout,它只是屏幕。相反,标准输入是键盘 - 因此也称为 stdin。

在 Shell 编程中,通常需要阻止 Unix 命令的错误消息显示在屏幕上。相反,它们要么被抑制,要么被发送到文件。这是通过将错误消息重定向到文件名或/dev/null(空设备或目的地)来实现的。要使用这些流(stdin、stdout、stderr)在 shell 中,我们使用数值描述符而不是名称来引用它们。

流名称 描述符
stdin 0
stdout 1
stderr 2

回顾:命令有效地从文件获取输入,并将输出定向到文件。默认情况下,输出文件是屏幕,输入文件是键盘。

华夏公益教科书