Unix/文件和进程快速入门
外观
在 Unix 中,所有东西都是文件或进程。在 Unix 中,文件只是数据流的目的地或来源。因此,例如,打印机是一个文件,屏幕也是一个文件。
进程是当前正在运行的程序。因此,进程可能与文件相关联。文件存储执行该进程以运行的指令。
另一种看待它的方式是,文件是可以通过名称引用的数据集合。文件由用户直接创建(使用文本编辑器、运行编译器等)或间接创建(通过运行某些程序 - 例如处理文本输入文件以生成格式化的文件以供打印)。
文件示例包括
- 文本文档;
- 用 C++ 或 Java 等编程语言编写的程序;
- jpeg 图片;
- 目录:目录可以被认为是 Windows 文件夹的模拟。目录是包含指向其他文件的链接的文件。
有两个文件名称比较模糊,即stdin和stdout。这些名称指的是数据的默认来源和目的地。考虑由命令ls启动的进程。该进程的默认输出是当前工作目录中文件的列表,然后显示在屏幕上。这说明了默认输出stdout,它只是屏幕。相反,标准输入是键盘 - 因此也称为 stdin。
在 Shell 编程中,通常需要阻止 Unix 命令的错误消息显示在屏幕上。相反,它们要么被抑制,要么被发送到文件。这是通过将错误消息重定向到文件名或/dev/null(空设备或目的地)来实现的。要使用这些流(stdin、stdout、stderr)在 shell 中,我们使用数值描述符而不是名称来引用它们。
流名称 | 描述符 |
---|---|
stdin | 0 |
stdout | 1 |
stderr | 2 |
回顾:命令有效地从文件获取输入,并将输出定向到文件。默认情况下,输出文件是屏幕,输入文件是键盘。