命令列:為什麼人們還在為它們煩惱?

命令列已經有50年的歷史了,但它還沒有過時。基於文字的終端仍然是完成許多工的最佳方式,即使在圖形桌面和觸控式螢幕裝置的時代也是如此。...

命令列已經有50年的歷史了,但它還沒有過時。基於文字的終端仍然是完成許多工的最佳方式,即使在圖形桌面和觸控式螢幕裝置的時代也是如此。

事實上,隨著微軟建立了一個功能強大的新Windows終端應用程式,命令列正變得比以往任何時候都更受尊重。windows10的PowerShell環境非常強大,但微軟仍然特意為windows10添加了對基本上完整的Linux命令列環境的支援。

命令列曾經是唯一的選擇

有一次,如果你想和電腦互動,你可以打字。就是這樣。沒有別的了。這聽起來可能是限制性的和過時的,但作為不得不使用穿孔卡片或穿孔紙帶的進步,打字是激進的和變革性的。從帶著紙卷的電傳打字機到帶陰極射線管(CRT)螢幕的終端,是人機互動的又一次重大轉變。

這一步為互動式shell真正進入自己的領域鋪平了道路。現在你可以向電腦傳送指令,並很快在螢幕上顯示響應。當你等待打印出來的紙從電傳打字機中發出咔嗒咔嗒的聲音時,再也沒有咔嗒咔嗒的聲音了。

很公平,但那是過去,這是現在。計算機是一種完全不同的遊戲。除了使用沒有安裝圖形桌面環境的計算機,或透過SSH透過低頻寬連線使用遠端計算機,或控制無頭或嵌入式系統等明顯的鎖定情況外,為什麼要在圖形桌面上使用命令列?

行話解釋

命令列、終端視窗和shell等術語幾乎可以互換使用。那是不正確的行話。他們都很不一樣。他們是有關係的,但他們不是一回事。

終端視窗是圖形桌面環境中執行電傳終端模擬的視窗。

shell是在終端視窗中執行的程式。它接受您的輸入,並根據您鍵入的內容,嘗試解釋和執行指令本身,將它們傳遞給構成作業系統的其他一些實用程式,或者查詢與您鍵入的內容匹配的指令碼或程式。

相關:Bash、Zsh和其他Linux shell之間有什麼區別?

命令列是您鍵入的位置。它是shell在等待您輸入某些指令時顯示的提示。術語“命令列”也用於指代您鍵入的內容的實際內容。例如,如果您與其他計算機使用者談論您在執行程式時遇到的困難,他們可能會問您:“您使用了什麼命令列?“他們不是問你在用什麼shell,而是想知道你鍵入了什麼命令。

總之,它們結合起來形成了命令列介面(CLI)。

為什麼要在2019年使用命令列?

CLI對於那些不熟悉它的人來說似乎是倒退和混亂的。在現代作業系統中,這種過時的、怪誕的電腦使用方式肯定沒有立足之地?幾十年前,當windows、圖示和鼠標出現,以及帶有圖形使用者介面(gui)的圖形桌面環境出現時,我們不是放棄了這一切嗎?

是的,GUI已經存在了幾十年。微軟Windows的第一個版本早在1985年就釋出了,隨著1990年Windows3.0的釋出,它已經成為PC桌面的標準。

X視窗系統,用於Unix和Linux,於1984年推出。這將圖形桌面環境帶到了Unix及其許多衍生產品、克隆產品和新產品中。

但是Unix的釋出將這些事件提前了十多年。因為沒有其他選擇,一切都必須透過命令列實現。所有的人機互動,所有的配置,電腦的每一次使用都必須能夠透過簡陋的鍵盤來完成。

因此,事實上,CLI可以做任何事情。GUI仍然不能完成CLI所能做的一切。甚至對於它可以完成的部分,CLI通常更快、更靈活、可以編寫指令碼並具有可擴充套件性。

有一個標準。

多虧了posix,它們才標準化了

POSIX基本上是類Unix作業系統的標準,所有不是Windows的作業系統。甚至Windows也有針對Linux的Windows子系統(WSL),在任何相容POSIX(或接近相容的)作業系統上開啟一個終端視窗,你就會發現自己在一個shell中。即使shell或發行版提供了自己的擴充套件和增強,只要它們提供了POSIX的核心功能,您就可以直接使用它。你的指令碼就會執行。

命令列是最小的公分母。學習如何使用它,無論Linux發行版和圖形桌面環境如何,您都可以執行所需的所有任務。不同的桌面有自己的做事方式。不同的Linux發行版捆綁了各種實用程式和程式。

但是開啟一扇候機樓的窗戶,你會有賓至如歸的感覺。

命令設計為協同工作

每一個Linux命令都被設計用來做一件特定的事情,並且做得很好。基本的設計理念是透過新增另一個實用程式來新增更多的功能,該實用程式可以透過管道或連結與現有的實用程式連線在一起,以實現預期的結果。

這非常有用,以至於微軟特意為windows10添加了對完整Linux命令列的支援!

例如,其他命令使用sort命令按字母順序對文字進行排序。無需將排序功能構建到其他每個Linux命令中。一般來說,GUI應用程式不允許這種型別的協作互通。

看下面的例子。這將使用ls命令列出當前目錄中的檔案。結果透過管道傳輸到sort命令,並在第五列資料(即檔案大小)上排序。排序後的列表透過管道傳輸到head命令中,預設情況下,head命令列出其輸入的前10行。

ls -l | sort -nk5,5 | head

命令列:為什麼人們還在為它們煩惱?

我們得到了當前目錄中最小檔案的整潔列表。

命令列:為什麼人們還在為它們煩惱?

透過使用tail而不是head更改一個命令,我們可以得到當前目錄中十個最大檔案的列表。

ls -l | sort -nk5,5 | tail

命令列:為什麼人們還在為它們煩惱?

這給了我們十大檔案的列表,正如預期的那樣。

命令列:為什麼人們還在為它們煩惱?

命令的輸出可以重定向並捕獲到檔案中。可以分別捕獲常規輸出(stdin)和錯誤訊息(stderr)。

相關:Linux上的stdin、stdout和stderr是什麼?

命令可以包含環境變數。以下命令將列出主目錄的內容:

ls $HOME

命令列:為什麼人們還在為它們煩惱?

這在目錄樹中的任何位置都有效。

命令列:為什麼人們還在為它們煩惱?

如果所有這些輸入的想法仍然困擾著你,那麼像製表符完成這樣的技術可以減少你必須要做的輸入量。

指令碼支援自動化和可重複性

人類容易出錯。

指令碼允許您對一組指令進行標準化,這些指令在每次執行指令碼時都將以相同的方式執行。這為系統維護帶來了一致性。安全檢查可以內建到指令碼中,允許指令碼確定是否應該繼續。這就不需要使用者有足夠的知識來自己做決定。

因為您可以在Linux和其他類似Unix的系統上使用cron來自動化任務,所以可以簡化長的、複雜的和重複的任務,或者至少一次解決問題,然後在將來實現自動化。

PowerShell指令碼在Windows上提供了類似的功能,您可以將它們安排為從任務排程器執行。為什麼每次設定計算機時都要單擊50個不同的選項,而您卻可以執行一個可以自動更改所有內容的命令?

兩全其美

作為一個超級使用者,要充分利用Linux或任何作業系統,您確實需要使用CLI和GUI。

GUI在使用應用程式方面是無與倫比的。即使是死硬的命令列倡導者也不得不時不時地走出終端視窗,使用辦公效率套件、開發環境和圖形操作程式。

命令列上癮者並不討厭GUI。他們只喜歡將CLI用於適當任務的好處。對於管理來說,CLI可以輕而易舉地獲勝。您可以使用CLI對一個檔案、一個目錄、一組檔案和目錄進行更改,或者進行完全全域性更改。當受影響物件的數量增加時,試圖用GUI實現這一點通常需要冗長且重複的鍵盤和滑鼠操作。

命令列提供了最高的保真度。您可以使用每個命令的每個選項。很多Linux命令都有很多選項。舉一個例子,考慮lsof命令。看看它的手冊頁,然後考慮如何將其包裝到GUI中。

在一個有效的GUI中,有太多的選項要呈現給使用者。這將是壓倒性的,沒有吸引力,笨重的使用。這與GUI的目標完全相反。

當然是馬。不要回避那匹馬。它通常是更快更敏捷的馬。贏得你的馬刺,你永遠不會後悔。

  • 發表於 2021-04-03 05:30
  • 閱讀 ( 45 )
  • 分類:網際網路

你可能感興趣的文章

為什麼幾乎沒有人把linux稱為“gnu/linux”

...C的工具)、Emacs(文字編輯器)、Bash和各種仍在使用的命令列實用程式。 ...

  • 發佈於 2021-03-13 20:45
  • 閲讀 ( 45 )

如何用一個命令修復損壞的windows系統檔案

...描並修復損壞的Windows檔案。要使用它,請開啟一個管理命令提示符,方法是在“開始”選單中鍵入cmd,然後右鍵單擊它並選擇“以管理員身份執行”。鍵入以下命令以執行SFC: ...

  • 發佈於 2021-03-14 05:22
  • 閲讀 ( 55 )

如何在Windows10中使工作列透明

... 對你有用嗎?你個人為什麼希望工作列不可見?還有其他漂亮的windows10實用程式值得一提嗎?請在下面的評論中告訴我們! ...

  • 發佈於 2021-03-15 22:16
  • 閲讀 ( 44 )

如何在android和termux上使用linux命令列

...利用Android隱藏的Linux基礎設施。Termux應用程式提供了一個命令列環境,允許您在Android裝置上安裝誠實善良的Linux應用程式。下面是如何使用Termux應用程式。 ...

  • 發佈於 2021-03-18 07:26
  • 閲讀 ( 58 )

netflix獲得了《宋飛傳》的版權

...宋飛正傳》是有史以來**的最好的情景喜劇之一,這就是為什麼那麼多流媒體服務希望《宋飛正傳》出現在他們的平臺上。Netflix還沒有透露版權費,但我們確實知道Hulu在2015年為該劇支付了1.6億美元。 ...

  • 發佈於 2021-03-19 10:28
  • 閲讀 ( 55 )

什麼是beos,為什麼人們喜歡它?

...附帶了一個web瀏覽器,並具有類似UNIX的元素,包括對Bash命令列介面的支援,儘管它不是基於UNIX的。它還支援虛擬桌面以提高生產效率,這一功能在大多數現代作業系統的BeOS級別上仍然沒有實現。 為什麼beos失敗了? 憑藉其備...

  • 發佈於 2021-04-01 10:49
  • 閲讀 ( 43 )

如何在linux上建立手冊頁

... 在舊的Unix笑話中有一個核心真理,“你需要知道的唯一命令是man。”手冊頁包含了豐富的知識,當你想了解一個命令時,應該首先開啟手冊頁。 為您編寫的實用程式或命令提供一個手冊頁,可以將其從一段有用的程式碼提升到...

  • 發佈於 2021-04-01 21:08
  • 閲讀 ( 44 )

如何在linux上使用tmux(以及為什麼它比screen更好)

linuxtmux命令是一個終端多路複用器,類似於screen。它的倡導者很多,聲勢浩大,所以我們決定將兩者進行比較。是tmux真的更好,還是隻是喜歡你所知道的? tmux與螢幕 tmux和GNU螢幕命令都是終端多路複用器。它們允許您在一個終...

  • 發佈於 2021-04-02 05:16
  • 閲讀 ( 38 )

如何在linux上執行和控制後臺程序

...使用Bash的作業控制函式和訊號,使您能夠更靈活地執行命令。我們教你怎麼做。 所有關於流程 每當一個程式在Linux或類似Unix的作業系統中執行時,就會啟動一個程序。“程序”是計算機記憶體中執行程式的內部表示形式的名...

  • 發佈於 2021-04-03 03:30
  • 閲讀 ( 50 )

如何解決Windows10的所有煩惱

...裝不需要的應用程式,請右鍵單擊它並選擇“解除安裝”命令。該應用程式將消失,直到你下次安裝新電腦。 不幸的是,沒有辦法阻止windows10在沒有請求的情況下安裝這些應用程式。 扔掉**商的臃腫 雖然微軟對Windows使用者的...

  • 發佈於 2021-04-05 07:06
  • 閲讀 ( 46 )
蘇語凡
蘇語凡

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦