為什麼linux命令比dos多很多?

網上查資料得知linux命令很多,據說最少的發行版也有200多個命令,但是dos命令只有85個(cmd.exe)。為什麼dos命令能夠做到如此精簡?有沒有人試圖精簡linux命令。

據我所知,linux之中光查找命令就有五個:whereis,which,find,locate,type。沒有人想過合併這幾項命令么?


其實dos那個不叫精簡,而是叫做功能單調貧乏

起碼也拿powershell來比吧


命令這種玩意難道不是加個path就可以變多的嗎←_←


Windows很早就進化出桌面, 所以提供的命令比較少.

Linux一直用於伺服器和嵌入式領域, 桌面方面一路吃翔, 沒有命令渾身難受.

如某人的回答所說, 真要比命令數, PowerShell秒殺也的確是分分鐘的事.


不要混淆程序和命令……

行吧,我給你寫個程序幫你合併一下

現在新增一個fuck命令,包含所有你說的命令,增加一個fuck參數,用起來是這樣的

fuck --fuck [whereis,which,find,locate,type]

怎麼樣?還喜歡嗎……

如果不考慮兼容,那現在只有一個命令了……

不要覺得fuck參數多了一個,去看看這些命令的參數列表和說明,都能嚇死你


說明你不知道他們是在什麼條件下做什麼事情的啊,嗯哼?

locate 是有索引的

find 是有過濾無索引的

which 是告訴你這個命令會變成哪個程序的

whereis 是對程序及其附屬物的

諸如此類,做的事情都不一樣,需要的準備基礎也不一樣,你一句查找只能說明你沒搞清你要幹什麼。

還有內置命令就能說明 DOS 命令數量了?bash 內置命令也不多啊,倒是按照一個腳本處理器就好好搞腳本的思想沒把複製鏈接刪除移動文件之類的放裡面,這些東西按照需求等級有一套套專門的程序集。


dos除了cmd.exe意外還有外部命令,比如xcopy。

還有dos在80年代末就定型了,事實上微軟的命令行一直在發展,比如win7後來出現的robocopy


沒啥必要合併啊。你以為200很多嗎?你有沒有考慮過那個flag? 換一個flag就有可能實現一個新的命令。如果你喜歡完全可以把所有的命令合成一個命令,然後用各種flag去調用。知道Git嗎?它就是這麼做的,Git只有一個命令,那就是Git。然後有十幾個flag...


因為dos到了差不多大量需要命令的時候,出現了一個win命令,從此就不再增加dos命令了。想當年初中老師還教過我們如何在dos下面使用win命令,想想真是復古啊。



Busybox:明明可以只有一個命令的……


因為gnu/linux的程序員任性!在圖形界面還沒有大面積普及的時候,軟體世界是屬於unix的,但是att和美國司法部門的法律糾紛造成了很多程序員沒有辦法任性的使用unix,於是出現了一系列的類unix系統,stallman的gnu項目是其中之一,這個項目下面有內核和工具,包括著名的gcc,但是gnu項目下的內核失敗了,芬蘭學生linus的linux項目把內核做成了,於是任性的unix程序員們轉向了linux,包括gnu項目下的gcc和你現在見到的絕大多數工具。人們都記住了linux,不爽的stallman說linux只是一個內核,其他的東西都是我大gnu項目下的(雖然這些工具都是仿造unix做的),linux不應該叫linux,應該叫Gnu/Linux。任性的unix程序員默默同意,在提到linux的時候會加上gnu前綴。於是,你見到的linux下的命令行工具基本上都是這群任性的老unix程序員的作品。

至於windows下的命令工具,是在圖形化時代開始前的dos系統遺留下的一些工具,而dos從出現到應用都是面對個人市場的,怎麼簡單怎麼來,誰給我付錢我我給寫,更多的是一種商業的運作,微軟的程序員更偏重於市場化運作,這跟一個百花齊放的任性老程序員圈子是不一樣的。

* 關於gun/linux的部分內容選自《Unix編程與藝術》


Dos外部命令也不少,比Linux /bin下面的多哦


不為什麼,任性!


從鳥哥開始看吧,linux還是很有意思的,靈活性不是windows陣營可以比擬的。

雖然由於工作的原因,目前已經轉投windows陣營很久了,但是仍然懷念linux


這是一個極其愚蠢的問題…


推薦你本關於linux的書,認真看。耐住寂寞,才能守得住繁華。認真是一種態度。


推薦閱讀:

「QT不適合開發高並發的網路應用」 是真的嗎?如果不是,應該如何設計;如果是,應該如何化解?
為什麼有些大公司技術弱爆了?

TAG:操作系統 | Linux | Linux系統管理 | 軟體架構 | 命令行控制 |