Process

應用程序、程序、程序、作業、任務、服務、守護程序、腳本、命令之間有什麼區別?

  • July 11, 2021

有人可以清楚地提供這些術語之間的差異和/或等價嗎?我總是把事情搞混,在閱讀文件時總是迷失方向……


有用的先前答案:

Ubuntu 社區:

tl;博士總結:這些術語都沒有一個通用的定義。


  • 應用:這個詞的定義並不普遍,它的定義取決於上下文、社區,有時甚至是使用它的人。
  • 程序:這個詞的定義並不普遍,它的定義取決於上下文、社區,有時甚至是使用它的人。
  • 過程:這個詞的定義並不普遍,它的定義取決於上下文、社區,有時甚至是使用它的人。
  • 工作:這個詞的定義並不普遍,它的定義取決於上下文、社區,有時甚至是使用它的人。
  • 任務:這個詞的定義並不普遍,它的定義取決於上下文、社區,有時甚至是使用它的人。
  • 服務:這個詞的定義並不普遍,它的定義取決於上下文、社區,有時甚至是使用它的人。
  • daemon:這個詞的定義並不普遍,它的定義取決於上下文、社區,有時甚至是使用它的人。
  • script:這個詞的定義並不普遍,它的定義取決於上下文、社區,有時甚至是使用它的人。
  • command:這個詞的定義並不普遍,它的定義取決於上下文、社區,有時甚至是使用它的人。

(我想你開始看到這裡的模式了。)

在所有這些情況下,您都必須詢問使用該術語的人來定義它。唯一可以告訴您某個特定人如何使用該術語的人就是那個特定的人。

如果您正在閱讀官方標准文件,則該標準中使用的術語通常會明確定義,在這種情況下,僅在此特定標准文件中,術語的含義與標准文件所說的完全相同

讓我們僅作為一個例子來看看其中一個術語command,並且讓我們進一步將自己限制在Single Unix Specification version 4, 2018 Edition、Volumes XBD (Base Definitions)XCU (Shell & Utilities)

在 XBD Chapter 3 Definitions , Clause 3.104 Commands中,術語Command定義如下:

3.104 命令

用於執行特定任務的 shell 指令。

筆記:

Shell 命令在 XCU Shell 命令中有詳細定義。

(順便說一下,請注意定義本身如何使用術語task,這也是您詢問的術語之一,但實際上並未在 SUSv4 中定義。)

因此,SUSv4 似乎將術語命令定義為“對 shell 執行特定任務的指令”。XCU Chapter 2 Shell Command Language , Clause 2.9 Shell Commands中也有一個更詳細定義的連結:

2.9 外殼命令

$$ … $$ 命令是以下之一:

  • 簡單命令(參見簡單命令)
  • 管道(請參閱管道)
  • 列出複合列表(見列表)
  • 複合命令(參見複合命令)
  • 函式定義(見函式定義命令)

$$ … $$

並在2.9.1簡單命令2.9.2管道2.9.3列表2.9.4複合命令2.9.5函式定義命令中進一步定義每一個。

太好了,那麼,這是否意味著我們現在知道命令是什麼了?好吧,不完全是,因為如果我們閱讀XCU 第 4 章實用程序中的ed實用程序規範,我們會發現它以不同的方式使用術語命令:

描述

ed實用程序是一個面向行的文本編輯器,它使用兩種模式:命令模式輸入模式。在命令模式下,輸入字元應被解釋為命令,而在輸入模式下,它們應被解釋為文本。請參閱擴展說明部分。

$$ … $$ 擴展描述

ed實用程序應在其正在編輯的文件的副本上執行;在給出w(寫入)命令之前,對副本所做的更改不會對文件產生影響。文本的副本稱為緩衝區

命令ed具有簡單而規則的結構:零個、一個或兩個地址,後跟一個單字元命令,可能後跟該命令的參數。這些地址指定緩衝區中的一個或多個行。每個需要地址的命令都有預設地址,因此通常可以省略地址。如果指定了**-p**選項,則提示字元串應在讀取每個命令之前寫入標準輸出。

然後繼續進一步定義命令的結構,以及存在的各種命令。

因此,即使在同一個規範中,我們已經找到了術語命令的兩種不同定義。一個是明確給出的“對 shell 執行特定任務的指令”。另一個隱含地作為“ed實用程序執行特定任務的指令”。

但它變得更加有趣。如果我們查看awk實用程序的規範,我們會發現,就像 shell 一樣,就像ed實用程序一樣,我們可以提供“執行特定任務的指令”,因此我們可以假設這也稱為命令。然而,事實並非如此:

描述

awk實用程序應執行以awk專門用於文本數據操作的程式語言編寫的程序。

$$ … $$

因此,被稱為命令的相同概念在中ed稱為程序awk巧合的是,這是您詢問的另一個術語,但可能不是您認為的定義!

find實用程序中,我們再次有一個類似的概念,但這裡它既不稱為命令也不稱為程序,而是由基本元素運算符組成的表達式

pax實用程序中,我們再次有“告訴實用程序做什麼的東西”,但在這裡它被稱為模式,然而它與chmod實用程序所謂的模式完全不同。

如您所見,即使我們將自己限制在非常狹窄的上下文中(僅限於 2018 年版的單一 Unix 規範第 4 版,實際上只有四卷中的兩卷)並且只有其中一個術語,我們也可以已經找到由同一個術語描述的多個不同概念,以及描述相同概念(或非常相似、密切相關的概念)的不同術語。

引用自:https://unix.stackexchange.com/questions/657857