使用命令行真的比使用可視化界面好嗎?

為什麼好多人都喜歡使用命令行呢? 可視化界面不是計算機史上的進步嗎?


使用命令行真的比使用可視化界面好嗎?

看情況,但是具體到IT領域,很多種情況下敲代碼比可視化強得多。以下詳談

首先,命令行肯定不是絕對的好啊。對於普羅大眾而言,顯然可視化才是必須的。

比如遊戲,文檔編輯,數據分析,尤其是對於「不需要培訓」的普通用戶來說GUI必須是剛需……GUI是計算機普及的一大革命浪潮。喬總怎麼會錯呢。只是世事無絕對,命令行有命令行的好。

那麼什麼情況下應該用命令行呢?命令行的優點有哪些呢?

1. 效率,效率,效率,還是tmd效率

1『 把某個目錄下的所有*.raw文件複製到另一個文件夾,如果當前目錄下魚龍混雜,你怎麼處理呢?

用命令行調用 robocopy / rsync,加特定參數就可以很方便得進行處理,這邊複製完了,那邊文件還沒挑完呢。

2』 通用的代碼,我可以把指令寫成腳本,下次直接執行就好了。但是GUI你要一遍一遍地重複,沒有任何可以繼承沉澱下來的東西

3『 在Linux下命令行可以操作系統的幾乎任何組件,Windows略差,但最近進步也很明顯。反之圖形界面的話,你需要任務管理器管理進程,用「服務」工具管理服務,用計劃任務管理定時任務。要順利完成部署任務,你要同時開多少軟體呢?翻來覆去得點來點去你不煩么?另外,下次部署你又要重做一遍,請參考上一小條。

4『 一個不帶界面的Linux發行版,連伺服器資料庫應用程序等等,全部載入到內存可能只有一兩百兆。一個入門級的VPS就搞定了。但,如果加上GUI,隨便一個GUI都要100M到500M之間,伺服器主業是用來服務用戶的,不是服務運維的。你可以用命令行做到同樣的事,多浪費幾倍的資源,用戶卻得不到任何顯著地好處,這種事企業是不會做的。

5』 etc.

2. 穩定-&>可移植性強

命令行一個命令可以複製粘貼,分享給天底下所有的運維開發,對於繼續進行操作的程序猿而言,查一條指令,可比扒翻幾篇教程容易多了。GUI軟體則不然,以萬惡的微軟舉例,每一代Office界面都不同吧?菜單都有區別吧?上一代的教程未必適用於下一個版本吧?

3. 滑鼠不適合快速操作,與其來回切換滑鼠鍵盤,不如始終使用鍵盤。

要提高操作效率,很多情況下都會強調要背快捷鍵。鍵盤的可輸入信息比滑鼠高太多了。而且鍵盤操作更簡單,按下去就是按下去,容錯性很強;而滑鼠則需要點擊到特定位置,對按鈕的大小,視線與滑鼠軌跡等等都有要求,UX設計不好的軟體用滑鼠很難用。況且僅僅用滑鼠你是什麼都做不到的,但是僅用鍵盤,你可以做到大多數事情。

4. 開發省心省錢

設計UI是需要成本的,調整UI更是件費心費力的工作。而程序猿寫程序順帶開發一套命令行界面很輕鬆,UX的設計簡單很多,也不需要太多美學素養。這一點在互聯網行業更是及其重要的。給我一個shell開發測試運維壓測部署全部都能做,而在Web界面里模仿Windows界面比模仿控制台界面要難一萬倍。

你們看這些是不是已經很多了,但是其實還有一個很重要的內容沒有講到呢!那就是DevOps!用腳本批量化自動化地同時處理海量伺服器節點,部署運維,錯誤回滾,平穩降級,彈性擴容等等領域,如果沒有腳本和命令行是不可能做到的。計算機的發展趨勢就是把「人」的因素從機器集群中剝離出去,從而極大得解放生產力,獲得更穩定的業務結構。

但是命令行對新手不太友好,能否熟練應用命令行算是一個高手和新手能顯著拉開效率差距的點。


自己並不是做伺服器維護工作的,但見過公司的維護人員工作很長時間了,而因為工作的公司都是走微軟路線,所以伺服器都還是Windows為主。雖然系統管理員有時候在做維護的時候,也會把windows的cmd.exe調出來敲一通,看起來好牛的樣子,但因為Windows的設計特性,個人感覺,還是拿個滑鼠,點幾下效率會高一些,儘管前者看起來會更帥。

通常非Windows的系統管理員,習慣用命令行,並不因為帥吧,因為很多這些伺服器系統,根據不會裝個界型界面,管理員只能熟悉各種命令,久而久之,這種系統的各類命令行維護工具也會被發展得很高效很好用了,熟悉的人用起來,也會高效很多。

而我們在做開發的時候,也常用遇到這種情況。例如我們在SQL Server在寫服務的時候,通常會用use
mydb,來代替用滑鼠從伺服器列表中選擇資料庫的操作,用sp_tables 『%tbl』來查詢以』tbl』結果的表和視圖……,有時候確實挺帥的,不過是否高效,不敢說。


謝邀

命令行的好處,手不用離開鍵盤去找滑鼠 找到滑鼠還要在視圖上找按鈕

滑鼠的好處,交互自由度擴大,視圖給出的動態內容 你直接就能點,用鍵盤 還得命名 再拼寫出來

命令行一般用在 後台管理場合,還有就是mbp 用alfred 對你的手腕有好處


我就想讓照片上妹子臉上的小痘痘消失

怎麼弄命令行泥 ~~


正如樓上回答,看你用在什麼場合,對於部分搞it的,很少用滑鼠,這個時候命令絕對比桌面方便,比如一個ipconfig/ip addr 就可以查看ip,一個cp命令就可以拷貝文件,還有awk,grep,sed等處理文本都是很方便的。但是娛樂的時候,你要打遊戲,你要聊天,這個時候我想不出用命令怎麼做(除非你只玩掃雷,俄羅斯方塊,貪吃蛇之類的)。


對於本人經歷過windows 粉,到mac ox ,liux 粉。

從無知鄙視linux 操作複雜,不好用。到耐下心學shell 。

現在用電腦都是用蘋果,windows 沒必要的話,都懶得去摸它。

對於我來說,提倡命令行的原因有幾點:

1、以我16G內存的mbp來說,打開10來個命令行窗口,性能是沒有任何影響。

同時,這10來個窗口,我可以把它們排在一個顯示屏上,同時觀察。

對於我比對不同機器上的東西的時候,或者複製東西的時候,相當方便。

而如果是windows。 100像素高的東東,你能看出什麼?

2、性能考慮。 簡單的比方,1G的東西,你願意分哪怕100M給UI,為什麼不把這100M也可以讓你的網站使用呢?就是因為你懶得去背幾個命令?

3、 命令的重用性。

比如我裝一個運行環境,什麼nginx ,mysql, php ,redis 等等,如果你手動一個個裝,小則一兩個小時,多則半天一天的。

而這些東西,你做了一次以後,你把它們都寫成腳本,下次的時候,就可以無值守安裝。

哪怕是第一次安裝,你覺得去下載一個windows 安裝包,然後一個個去點下一步好呢?還是

直接敲一下命令: yum install -y mysql-server

再比如,我還可以定義別名:

alias dev="cd 開發目錄"

alias prodserver="ssh root@生產環境伺服器"

當我定義好這些東西以後,我根本不需要每次重複地點啊點的。

哥是一個極度厭惡重複沒技術含量工作的人。


我們配置winserver的安全配置時,可能一口氣要配置幾十個,再加上幾十台伺服器都要弄,圖形化界面你得點到手軟去。。。

但是用命令行模式,secedit導入一下事前編輯好的inf配置信息,然後再添加幾個註冊表項,幾十秒就能搞定一台伺服器,豈不樂哉。

檢測配置是否更新上去也一樣secedit /export一下,寫個腳本對比下文本就好,幾秒鐘就能好。

Linux上就更依賴於文本界面了,不再贅述。

而且用命令行遠程配置,比圖形化舒服多了,既不佔用帶寬,響應又快

——————————————————————————

至於日常辦公和正常用個人PC機的話,用命令行純屬裝逼,還是圖形化界面方便


打開Sqlserver資料庫服務的時候,我還是覺得命令行好用


有可視化界面,並且 能完成我想完成的事,我肯定用啊。人生苦短


試試寫一個只有GUI不支持CLI的編譯器?


誰都不比誰好,合適的地方用合適的方法。


不絕對。看使用的場合。


推薦閱讀:

正在學習嵌入式linux開發,求推薦詳細介紹makefile和鏈接腳本語法相關的書籍或者資料。?
怎麼看待 Linus 和 Richard Stallman 對 C++ 的態度?
Linux是否有類似於IIS統一管理網站的工具?
最逼近Mac OS X的Linux系統有哪些?
Linux 各個發行版與 OS X 相比哪個寫代碼更舒服?為什麼?

TAG:互聯網 | 程序員 | Linux | 計算機 |