Shell

哪個 2 字母 POSIX 命令與所有其他命令不同?

  • January 29, 2015

我接受了實習面試,我得到了和這個一樣的問題:http ://www.glassdoor.com/Interview/Which-2-letter-POSIX-command-is-different-from-all-the-others- QTN_498236.htm

答案是正確的,它是cd(正如面試官告訴我的那樣)。我對此感到非常困惑。為什麼cd不一樣?我跟面試官說不一樣,因為它可能不是由“shell”實現的,但我當時不知道我在說什麼。

這當然是一個主觀問題,有許多似是而非的答案。

的一個特點cd是它必須由 shell 本身實現:它不能是外部命令(在單獨的程序中執行的命令)。cd更改 shell 程序的工作目錄,只有 shell 本身可以做到這一點。

這是一個糟糕的問題,因為cd不是唯一這樣的命令。bg, fc,fg在同一條船上。cd在其他人之前存在,這是使其獨一無二的一種方式。

另一個可能的答案是dd,它的選項語法完全不同於任何其他命令(它是從 IBM 借來的)。

當然,您可以為許多其他命令設置參數,例如rm(唯一一個純破壞性的 2 字母命令)、su(唯一一個絕對必須是 setuid rootat的兩個字母命令)、(唯一一個通常是 setgid),sh(它是 shell 本身,這使得它與其他特殊用途的命令不同),ps(在 unice 之間變化最大的兩個字母命令)等。

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