為什麼我們比GUI更喜歡命令行?

在回顧其他文章時,我遇到了一個讓我感到很開心的小問題,其他系統(FreeBSD除外)的用戶首先面對的第一件事就是我們不使用GUI。 說實話,在我的GNU / Linux之旅的開始對我來說也很好奇。 我必須承認,隨著時間的流逝,我現在比其他任何GUI程序都更多地使用命令行,而且很多時候,我更喜歡命令行程序,而不是帶有令人眼花GUI亂的GUI的更精緻的程序。

神話

實際上,這僅是都市神話,因為與其他系統(此處將不提及其名稱)不同,它確實是在GNU / Linux中 自由 選擇。 我希望在其他系統中存在多功能性。 但是,讓我們仔細看看這個問題,否則很多事情還不清楚:

伺服器

我們都聽過這個詞 服務器, 有些人認為它們是為Google或Amazon提供支持的超級計算機,或者是您公司中的超級計算機。 但是現實是 伺服器 回應 工作模型。 我們使用此術語指的是我們擁有可供用戶使用的程序(客戶)並遞給他們一些東西。 一個基本的例子是 阿帕奇,用於 服務 互聯網上的網頁。 該程序將html發送到 客戶 要求它。

圖片服務器

但是,不僅服務器可以位於Google和許多其他公司所能實現的超級計算機中,甚至“最古老”的筆記本電腦也可以成為一台超級計算機。 服務器,尤其是當我們談論圖片時。 我們都跑了 服務器 筆記本電腦中的圖像,以便具有正常的屏幕,在這種情況下, 服務器 Y EL 顧客 他們是同一個人。 最常見的例子是 X (稱為 xorg-server 在許多發行版中)及其新的替代品 Wayland。 我們不會詳細說明組織的原因,Wayland的工作方式或這些偉大項目背後的理念,但我們要弄清楚的是,有了他們,我們才有了Web瀏覽器例如Firefox或Chrome,或許多其他程序。

窗口管理器

窗口管理器直接與圖像服務器一起工作,其工作處於“較低”級別,因為他們管理(避免冗餘)如何創建,修改和關閉窗口。 它們通常非常簡單,並且基於這些環境構建了桌面環境。 列表很大,但是我只會在這裡留下他們是 極簡軟件 這使您可以對圖像服務器進行基本控制。

桌面環境

一套更專業的軟件,不僅可以使圖像服務器運行,而且還提供自定義功能。 其中,最老和最重的是KDE和GNOME,但是我們也有較輕的環境,例如LXDE或Mate,Cinnamon等。

CLI(命令行界面)

在簡要回顧了圖像服務器的世界之後,我們現在回到我們的主題。 CLI的,表示由命令行執行的任何程序,或者 git, vim, weechat或其他任何想法。 您可以看到,我所談論的程序儘管在命令行上執行,但顯示出一種“圖形界面”,例如 weechat o vim。 對於所有沒有嘗試過的人,我推薦它們,基本上它們是我整天使用的。

為什麼CLI比GUI更好

讓我們嘗試一些簡單的事情🙂前幾天,我想製作一個補丁 Portage(Gentoo的程序包管理器)。 與任何優秀的協作項目一樣,代碼行數也超過70k。 嘗試在像NinjaIDE(Portage用Python編寫)之類的IDE中打開它,您很快就會注意到,隨著屏幕開始加載,您的計算機變得非常慢(至少我的i7做到了),這只是在嘗試打開代碼並更改為默認顏色«help»。

現在嘗試用 vim,它在幾毫秒內就加載了我,同時還放置了“漂亮”的顏色以及其他所有內容。

CLI已經很久了

這裡有些人會說這些程序是 ,我稱他們為 強大的。 如果您可以看到在建築上投入的時間 emacs, vim, gdb以及數百種其他控制台程序,您可能會注意到,代碼和功能如此之多,以至於它們實際上已經解決了需要解決的所有問題。 許多 GUI 對於在CLI中已經很健壯的程序,它們將永遠不會具有相同的功能,這僅僅是因為如果我們為每個可用的子命令製作一個選項卡,例如 git,我們會在各種選擇之間迷失自己,這會適得其反,因為這會使工作變得困難。

CLI更快

魔術始於鑰匙 Tab,這不僅是在終端機中瀏覽桌面時最好的朋友,而且在正確配置後,它還可以使長句子縮短為2個字母和一個製表符,3個字母和一個製表符,甚至一個字母和一個製表符。

但這不是唯一的優勢,我們當中那些花時間學習的人 vim o emacs 我們可以說,儘管如今的學習曲線比IDE的曲線要高一些,但最終的生產率是驚人的,但是無法想像在移動鼠標時會浪費的時間。 90%的時間將您的手放在鍵盤上不僅可以集中註意力,而且在鍵盤上打字太多的事實使您相當敏捷和高效。 現在,我們回到了前面的位置,已經在我們這里工作了這麼長時間,這些程序已經具備了人們可以想到的所有功能,這對於使用vim的我們這些人來說是很普遍的說法:

如果您使用4個以上的鍵,可能會有更好的方法。

vim簡單但功能強大,它使您能夠使用大量的按鍵和可能的組合來完成所有事情,並且永不停止學習,但是確實可以使用它而不必了解所有知識,大約10或15足以開始提高生產力。

CLI使您可以完全控制

當使用鼠標或圖像服務器上的程序執行操作時,單擊時執行的所有額外配置並不總是存在,這在終端機上不會發生,這裡您擁有它的絕對威力是否執行,具有什麼選項或程度。 隨著時間的流逝,您意識到自己需要的東西比您想像的要少,這可以幫助您以更加專注的方式來做事情。

GUI也有自己的東西

我並不是要說我們都應該一直使用CLI,這也不是理想的選擇,我自己幾乎一直都在使用GUI,寫這篇文章時我使用的是Chrome,查看我使用Email的電子郵件(儘管我也用 mutt 最近)。 我想這是所有人最大的誤解...人們認為GNU / Linux只是在終止它們,我喜歡我的桌面環境,它非常簡約,但是我喜歡這種方式🙂而且我通常只有兩個或三個程序運行,我的Chrome,我的Evolution和我的終端🙂

這些是為什麼我如此喜歡CLI以及為什麼邀請您嘗試一下的一些原因,它們以後可能像我一樣使用比GUI多的CLI來結束😉


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   匿名 他說:

    «就像任何出色的協作項目一樣,代碼行數超過70k。 這部分讓我太吵了。 在技​​術上不可能,為什麼必須將代碼壓縮到同一文件中? 將不同實體(文件/類/模塊)中的行為分開會更好嗎?
    將一項技術強加於另一項技術,而由於缺乏開發形式而拋棄了一項技術所提出的優勢,似乎並不是一個合理的理由。 無論如何,我在講話時都不知道它指的是哪個特定項目,更大的原因迫使這種工作方式

    1.    克里斯·阿德 他說:

      HOLA,

      好吧,這可能需要一些解釋,但是我所說的“好項目”意味著線的數量表示這是一個健康的社區,並且在不斷發展。 有些項目的行數要少得多,但是它們的發展卻很健康。 實話實說,portage被劃分為盡可能多的文件,但是始終有必要將部分分組在一起,例如庫或導致許多其他功能的開關。 但是,當今天將項目導入許多IDE時,這意味著您將要讀取項目中的所有文件,並嘗試放置正確的“可視”格式。

      我希望使它更清晰一點,感謝您的評論。
      問候

  2.   匿名 他說:

    使用命令行? 是的,但僅在適用時。 也就是說,當它更舒適,更快時。 例如,如果我要安裝某個程序,鍵入sudo apt install programname比打開軟件管理器,搜索它,將其標記為要安裝並按“ install”更為方便。 但是通常情況並非如此。 例如:如果我想將我最喜歡的20首歌曲從一個目錄複製到另一個目錄,那麼在從文件管理器中冷靜地查看大量列表然後拖放的同時,執行Ctrl +單擊是非常舒適的。 另一個例子:如果我想對磁盤進行分區,那麼最好通過gparted(程序執行多個命令,同時以圖形方式向您展示磁盤的狀態)對磁盤進行分區,而不是手動進行。 清單可能是無止境的。 除了增加對於給定cli應用程序可能無法實現的功能外,GUI可以(實際上通常)使工作變得容易得多

    1.    克里斯·阿德 他說:

      取決於一個人對命令行的適應程度...例如:

      find dir/musica -name "archivo" -exec grep cp {} dir/nuevo \;

      只需一點點魔術,您甚至可以製作一個函數,只需輸入歌曲名稱即可執行相同的功能:

      就像是

      mover(){
      find dir/musica -name $1 -exec grep cp {} dir/nuevo \;
      }

      準備好了! 您可以輕鬆移動所有歌曲

      mover cancion1.mp3

      🙂至於第二個,儘管在某種程度上,GUI通過避免記住和重複命令使工作變得“簡單”,但這僅在通用框架中有用,當您需要專用的,gparted或任何其他GUI較短的東西時,🙂和GUI不添加額外的功能,它們僅採用CLI(不是全部)中存在的功能並將它們分組,而不會創建它們

      問候

      1.    匿名 他說:

        無論使用以下方法實現多少流程自動化:
        移動song1.mp3

        那麼必然會有:
        移動song2.mp3
        移動song3.mp3
        .
        .
        .
        移動song20.mp3
        有很多動人的歌...
        與任何文件管理器..只需要20次單擊和拖放手勢。 我不知道,但是至少我的經理(Dolphin)允許我簡單快速地(不到5秒)按名稱,日期,大小,標籤,排名,專輯,藝術家,時長排序100首歌曲的列表等對我來說是PRODUCTIVITY,它也在命令行中添加了功能。

        至於另一個示例.. GParted:OK ..如果您需要非常專業的內容,例如在格式化時更改每個inode字節的默認值,則應轉到控制台..但是,朋友,這不是正常現象。 99%的時間,GParted將以非常簡單,非常快速的方式完全滿足我們的需求,至少對我而言,這也可以提高生產力

        問候

        1.    克里斯·阿德 他說:

          好吧,這是最簡單形式的自動化示例,正如您所說的“如果我想將我最喜歡的20首歌曲從一個目錄複製到另一個目錄”,所有這些都取決於您“冷靜”地花費的時間。訂購後查看清單,然後單擊等等,如果您的眼睛和鼠標可以克服問題,終端將允許您在一行中執行更多操作,甚至可以在處理器中執行約0.1秒(即使它很舊)。 ,好吧,我要去使用GUI🙂,並不是說我不使用它們,它們有很多有用的東西,我不會否認,但是至少我發現終端的多功能性更高,除了幫助我每天在自動化作業時練習一些編程之外。 SysAdmins中的一個非常普遍的說法是:“如果每天做一次以上相同的事情,則將其自動化;如果每天一次進行兩天以上,則將其自動化;如果您每月一次甚至一次,則將其自動化。 。”

          但是嘿,就口味和顏色而言,每個人都有自己的東西,我將自己限制為共享自己喜歡的東西🙂也許有很多人“害怕” emacs,vim或同一終端,通過這些帖子,我只是想給您一些信心和好奇心,以便您可以嘗試並決定🙂

          問候

          PS:我知道許多GUI不能解決問題的開發人員,因為他們在日常生活中需要大量的複雜性,這也許是“普通”用戶永遠不會看到的,但這並不意味著更多的“常見” ”可以使用這些工具,並獲得更多的通用收益。

          1.    匿名 他說:

            我仍然認為對於此任務(及許多其他任務),使用文件管理器比使用命令行花費的時間要少得多……但是,嘿,正如您所說的,每個人都有自己的品味和色彩。

            我不否認也不害怕終端,但是我不認為這是一個強制性的句子,因此我首先說“是的,但是在適當的時候使用命令行”。

            對於開發人員而言,一切都有,但是規模顯然可以向一側傾斜:我邀請您來看看:

            https://pypl.github.io/IDE.html

            與下注於“純文本”編輯器的開發者相比,“普通”開發者確實看到了在具有全部功能的圖形環境中工作的優勢。

    2.    你燒 他說:

      例如:如果我想將我最喜歡的20首歌曲從一個目錄複製到另一個目錄,那麼在從文件管理器中冷靜地查看大量列表然後拖放的同時,執行Ctrl +單擊是非常舒適的。

      有些命令行文件管理器比Vifm或Ranger實用或比圖形還多。 同樣,對於磁盤分區,還有帶有ecurses接口的命令行應用程序,例如cgdisk。

      1.    克里斯·阿德 他說:

        好吧,這是真的。我真的不知道為什麼這麼多人擔心終端,它實際上是一個非常強大且用途廣泛的工具,每個人都應該至少嘗試一次。

        感謝您的分享和問候。

      2.    匿名 他說:

        是的,終端文件管理器早於圖形。 至於實用性,這取決於您想要什麼。 任何圖形文件管理器都具有選項卡,收藏夾,查看模式,預覽,以1000種不同方式訂購它的可能性,連接終端,安裝插件等,等等。 這使它們比任何文本文件管理器都更加通用。

        好不一定醜陋

    3.    胖乎乎的 他說:

      僅僅是您學習了在cli中做的事,而且我保證這樣做會更容易,您所說的非常簡單,您可以使用rsync來完成,並且可以輕鬆地執行腳本。

      我建議您使用一個名為Ranger的cli文件管理器,其中包含您提到的所有內容。

      1.    哥德爾 他說:

        為了複製這 20 首歌曲,我製作了一個帶有“ls * .ogg> top20”的列表。 然後,我轉到 Vim 並選擇(刪除我不想要的)我想要的歌曲。 最後我執行“cp $ (cat top20) otrodir”,就是這樣。 這比用鼠標選擇更方便,已經選擇的19首歌曲被錯誤地取消選擇。

  3.   阿爾貝托·卡多納(Alberto Cardona) 他說:

    精彩!!
    我仍然不能決定安裝Gentoo🙁(我在BunsenLabs),我目前使用openbox並將nano用於我的Bash腳本
    但這使我想冒險進入Vim或Emacs!
    問候
    我喜歡讀您的文章

    1.    克里斯·阿德 他說:

      非常感謝Alberto🙂非常高興您喜歡我的文章,我喜歡寫這些帖子。
      我希望你振作起來,當然你會這麼做,那就是總是嘗試一些新事物new

  4.   克里斯·阿德 他說:

    好了,我完成了對最後兩個評論的回答,並且我希望主持人不接受更多有關它的意見,這無濟於事,其主意不是在評論列表中填充一系列贊成或反對一個或多個論點的論點。另一個。

    至於“多功能性”,也許有人以為只有GUI才有插件,但事實是終端插件和使用它們的人一樣多變,功能齊全,最明顯的例子是

    https://vimawesome.com/

    幾乎無窮無盡的vim插件列表使它比許多IDE更具通用性……而談到這一點,該鏈接並沒有提及該列表包括在Windows和Mac上使用IDE的人,實際上,這與Vim所說的要好得多Eclipse,因為如果我們比較在這三個平台上使用Eclipse的人數,那麼Vim不應以擁有當之無愧的第四名而感到羞恥。

    但是,再往前走……“普通”人使用某種東西並不能說明這一定是件好事,但是Windows可能比其他系統要好得多🙂也許僅僅是他們不喜歡學習使用某些東西,因為他們寧願選擇easy選項...還是因為您的公司已決定實施該標準(Eclipse是許多公司的標準,這可以解釋大量用戶……就像Android和Visual Studio一樣,這是唯一的方法使用各自的語言...而Vim是使用它的人的免費選擇)

    。 “醜陋”是一個非常主觀的術語,我可以考慮“醜陋” Qt,WebKit甚至Mac OS界面的設計……但這並不意味著其他人會這樣看,這只是一個問題習慣🙂

    問候

    1.    匿名 他說:

      我尊重不願給予答復權的願望。

      僅供參考:
      https://vim.sourceforge.io/download.php

  5.   克勞迪奧 他說:

    我完全同意Anonymous,但就我而言,我是一個簡單的用戶,沒有分析師或程序員的豐富知識。 因此,我需要一個GUI來使我失去Linux上的許多珍寶,例如今天和2017年,沒有G​​UI應用程序可以輕鬆在Linux網絡上共享文件夾,我說Linux,不要讓他們有了Samba和Windows,我說的是純Linux網絡。 為了能夠在Linux網絡中共享,您必須配置一個特定的NFS,並且僅從命令行進行配置,這會浪費時間,而且我也無法解釋為什麼擁有如此簡單的GUI如此困難,而在Windows中卻是如此。
    根據ChrisADR的說法,“我是一名年輕的軟件開發人員”,您會發現您對該主題非常了解,您是否應該開發一個GUI應用程序來簡化我剛剛解釋的內容,還是您的頭銜和吹牛? 就像醫生就不做任何手術就如何更好地發表意見一樣。 在您從“軟件開發人員”那裡發表意見之前,應先開發一個GUI應用程序,然後再使用“終端”,如果您更好還是不使用該終端,則必須將自己放在誰使用的地方Linux及其使用對象。 希望您能看到ChrisADR撰寫的文章,介紹並共享其GUI應用程序,以便在Linux網絡上共享文件。 目前沒有任何東西,除非您僅將Samba用於Windows共享。

    1.    吉列爾莫 他說:

      創建一個程序在一個下午不是一件容易的事,它至少需要花費數週的時間,而且更糟的是,然後我們需要花費數年的時間來修復錯誤,將其與新的函數庫一起進行更新,從而使以前使用的函數過時。,不同發行版的包裝,...
      也是這樣,如果您已經擁有SAMBA,並且可以在兩個GNU / Linux之間使用而不需要任何Windows,那麼為什麼要使用NFS解決方案?
      即使您在網路上看到的手冊討論的是 Linux 和 Windows,只需按照說明共用資料夾即可 desde linux 然後連接到另一個網路資料夾 desde linux 太。
      看來Ubuntu 16.04仍然可以輕鬆實現該主題: http://www.hernanprograma.es/ubuntu/como-compartir-una-carpeta-desde-ubuntu-16-04-a-traves-de-samba/