Command

低級命令和高級命令是什麼意思?

  • May 9, 2017

我讀過,useraddand之間的區別adduseruseradd低級命令和adduser高級命令,同樣,and 之間的區別netstat也是ss低級ss命令netstat和高級命令,同樣還有許多其他命令(apt:high-level,apt-get:low-level)做同樣的工作,但他們說的區別是一個是低級命令,另一個是高級命令。低級別和高級別的真正含義是什麼?抽象?

這是一種與抽象量有關的模糊概念。

低級命令最接近原始數據、核心介面等。好處是當使用一個時,你有很多控制權。這在發生故障或您需要做一些奇怪的事情時很有用。低級命令的輸出通常也更容易用腳本解析(很多時候,這就是它們的目的)。缺點是,你必須知道你在做什麼。這些工具幾乎不包含任何知識——這一切都需要在你的腦海中(或者你面前的筆記……)。

高級命令抽像出許多細節,將知識放入工具中。這通常使它們更易於使用。缺點是有時他們不能做你想做的事,因為你想要一些奇怪的東西。或者當出現問題時,很難弄清楚它為什麼不起作用。

這不是二分法,而是真正的連續體。可以說有一個最低級別的工具,您只需從核心中轉儲原始數據,但您幾乎總是可以添加更多抽象。

例如,ps(在 Linux 上)從/proc. 的輸出ps l $$很簡單,任何有能力的系統管理員都容易理解。但是嘗試cat /proc/$$/stat

$ cat /proc/$$/stat
11026 (bash) S 11024 11026 11026 34843 12425 4194304 3972 3748 0 2 12 2 3 1 20 0 1 0 69581565 25628672 2101 18446744073709551615 4194304 5242068 140731668323552 0 0 0 65536 3670020 1266777851 0 0 0 17 2 0 0 3 0 0 7341384 7388228 9216000 140731668326960 140731668326965 140731668326965 140731668328430 0

該目錄中還有許多其他文件,其中一些具有更好的(但仍然是低級)格式。但很明顯,它ps裡麵包含了很多知識——它知道(一些)這些欄位的含義,如何很好地顯示它們等等,這是ps一個比. 從同一來源獲取數據,但仍然是更高級別的抽象。但有時你必須去——那裡有很多(等等)沒有暴露的資訊。cat``/proc/*pid*/``top``/proc/*pid*/``ps

不過,這有點模糊。不同的人會不同意某些命令在連續統一體中的位置。

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