首頁 >系統教程 >Linux >Linux shell 大比拼:五種流行的命令列介面的特性和優勢

Linux shell 大比拼:五種流行的命令列介面的特性和優勢

WBOY
WBOY轉載
2024-02-11 12:50:12578瀏覽

Linux shell 是作業系統中執行其他程式的命令解釋器,也是一種完整的程式語言,具有自己的語法和結構。 Linux shell 可以讓使用者透過輸入文字指令來控制和管理系統,實現各種功能和任務。 Linux 有許多不同類型的 shell 可供選擇,它們各有優缺點,適用於不同的使用者和場景。本文將為你介紹 Linux 上最常用的五個開源 shell,它們分別是:

  • Bash shell:GNU 專案開發的 Bourne shell 的免費版本,是所有 Linux 發行版上的標準 shell,具有強大的腳本功能和可用性。
  • Zsh shell:Bourne shell 的擴展版本,具有許多新功能並支援插件和主題,是一種高度可自訂的 Linux shell。
  • Fish shell:一個現代命令列介面,具有自動建議、選項卡完成和語法突出顯示,是一種智慧且使用者友好的 Linux shell。
  • Ksh shell:AT&T 貝爾實驗室開發的 Bourne shell 的重新實現,具有命令列編輯、作業控制等功能,是一種經典且穩定的 Linux shell。
  • Tcsh shell:使用 vanilla C 語法模型的 C Shell 的增強版本,具有別名、歷史記錄、檔案名稱補全等功能,是適合 C 和 C 程式設計師的 Linux shell。

1、Bash Shell

Brian Fox 於 1988 年為 GNU 計畫開發了 Bash 作為 Bourne shell 的免費版本。 Bash 與原始版本類似,但增加了命令列編輯等功能。

因為 Bash 是標準的 GNU shell,所以它成為了所有 Linux 發行版上的標準 shell。現在大多數現代 Linux 發行版都預設提供 Bash shell。這個開源 Linux shell 在社群中以其強大的功能集和可用性而聞名。該名稱是“Bourne-Again SHell”的縮寫。

Linux shell 大比拼:五种流行的命令行界面的特点和优势

Bash 被認為如此強大的原因之一是因為它是可編寫的腳本。 shell 腳本是隔離的命令列表,以優化任何任務並具有成本效益,類似於具有明確定義標準的其他程式語言。您可以手動在 Bash 中輸入任何內容,也可以在純文字檔案中列出並讓 Bash 為您運行。

學習 Bash 對於執行自動化非常有用。它非常強大,並具有許多功能,例如:

  • 目錄操作
  • 工作管理(Job Control )
  • # 花括號擴充(brace expansion)
  • 波浪號擴充(Tilde expansion)
  • 別名
  • 命令歷史
  • 命令列編輯
  • 鍵綁定
  • 整合編程功能
  • 控制結構
  • 內建外掛程式的動態載入

Linux 核心的創建者 Linus Torvalds 說,他 1991 年在新核心上運行的前兩個程式是 Bash 和 gcc,GNU 的編譯器。

2、Zsh Shell

#Zsh(Z shell 的縮寫)是 Bourne Shell 的擴充版本,具有許多新功能並支援外掛程式和主題。它是一個高度可自訂的 Linux shell,其中包含一些非常強大的功能,例如選項卡完成、智慧歷史記錄、遠端檔案擴展等等。 Zsh 是一種專為互動使用而設計的 shell,儘管它也是一種強大的腳本語言。 Bash、Ksh 和 Tcsh 的許多實用功能都已合併到 Zsh 中並添加到它們之上。

Linux shell 大比拼:五种流行的命令行界面的特点和优势

Zsh 由 Paul Fastad 於 1990 年開發,zsh 名稱來自耶魯大學教授宗紹。它已成為 Linux 作業系統最受歡迎的 shell 之一。

一些更重要的 Zsh 函數是:

  • 指令自動完成
  • 改進的變數處理
  • 拼字更正
  • 共享命令歷史
  • 環境變數設定簡單
  • 客製化

當您使用 Linux 時,大部分使用者時間都花在終端機上。如果您想自訂您的終端並使其看起來專業,您可以使用 Oh My Zsh 來實現此目標。它是一個社群驅動的開源框架,可用於管理 Zsh 配置。 Zsh還有其他框架,如Prezto、Zgen、Antigen等。目前Oh My Zsh能夠支援150個主題和275個外掛程式。

Zsh 和 Bash 都有相似且令人印象深刻的功能,但也有自己獨特的工具。如果您正在尋找 bash 中沒有的可擴展性、更大的自訂和高級功能,zsh shell 是一個很好的選擇。此外,Zsh 是 macOS Catalina 中的預設登入 shell 和互動式 shell,取代了 Bash。

相關:https://www.linuxmi.com/ubuntu-20-04-zsh.html

#3、Fish

#Fish shell 是一個現代命令列介面,具有自動建議、選項卡完成和語法突出顯示。它是適用於 Linux 和 macOS 的智慧且使用者友好的命令列 shell。該shell 為使用者提供強大的功能和控制,而不會影響速度和效率。它旨在立即使用,無需進行大量配置。

Linux shell 大比拼:五种流行的命令行界面的特点和优势

基於歷史的Fish內嵌自動建議開箱即用。使用您的歷史記錄,Fish 提出了完成命令的下一個可能性。

這個 shell 比經典的 Bash shell 更豐富多彩。您很快就會注意到 Fish 在您鍵入時執行語法高亮顯示。這些顏色以及更多顏色可以透過執行 fish_config 來更改。這將開啟一個基於 Web 的 GUI,您可以在其中選擇顏色主題並配置外殼的外觀。

另一個很棒的功能是指令的可用性。例如,如果你輸入/usr/bin/linuxiac,它會以紅色顯示該行,表示它不是一個有效的命令,但你輸入/usr/bin/ping它看起來是正常的。

Fish shell特點:

  • 基於歷史的內嵌自動建議
  • 出色的標籤完成
  • 語法高亮
  • 直覺的通配符支援
  • 基於網路的設定
  • 健全的腳本

對於使用 zsh、bash 等其他 shell 的使用者來說,如果他們想嘗試一個新的、有利的 shell,Fish是非常強大且有用的 Linux shell。

相關:FISH:90後準備的Linux shell https://www.linuxmi.com/fish-linux-shell.html

4、Ksh shell

#Ksh(Korn shell 的縮寫)由 AT&T 貝爾實驗室的 David Korn 發明,並於 1986 年開始公共生活。它是 Bourne shell 的重新實作。 Ksh shell 的命令編輯器介面支援快速、輕鬆地修正輸入錯誤,以及輕鬆呼叫和重複使用指令歷史記錄。它不提供命令補全,但提供檔案名稱補全。 Ksh 允許開發人員在需要時建立新的 shell 命令。

Linux shell 大比拼:五种流行的命令行界面的特点和优势

Ksh shell 的命令列編輯模式是一開始往往會吸引人們使用它的功能。使用命令列編輯,返回並修復錯誤要容易得多。另一個主要面向互動式使用者的主要 Ksh 功能是作業控制。

一些更重要的 Ksh 函數是:

  • 作業控制
  • 別名
  • 功能
  • 命令歷史
  • 命令列編輯
  • 整合編程功能
  • 控制結構
  • 調試原語
  • 常用表達
  • 進階 I/O 功能

Ksh shell 已經發布了不同的版本,例如 pdksh、mksh、ksh88 和最新的 ksh93。

5、Tcsh Shell

#在最初的 Linux 時代,C 和 C 程式語言非常流行,而 Linux 本身的大部分內容都是用它們寫的。不出所料,出現了一個新的 shell,即使用 vanilla C 語法模型的 C Shell。 Tcsh 是 Berkeley UNIX csh (C Shell) 的增強但完全相容的版本。它是一種命令語言解釋器,可用作互動式登入 shell 和 shell 腳本命令處理器。 Tcsh 可以被認為是下一代 C shell。

Linux shell 大比拼:五种流行的命令行界面的特点和优势

Tcsh 由 Ken Greer 於 1979 年在卡內基美隆大學開發。 tcsh 中的“t”來自 TENEX 中的“T”,TENEX 是 BBN 於 1969 年為 PDP-10 大型電腦家族開發的作業系統。

早期版本的 MacOS X 附帶 tcsh 作為預設 shell,但新版本的預設值變成了 Bash。現在 tcsh 是 FreeBSD 的預設 root shell。

Tcsh 的主要功能是可編程命令完成和命令列編輯。它在鮮明的簡單性和基本功能之間取得了很好的平衡。使用 tcsh 所需的所有文件都位於 man tcsh 中,而不是散佈在各種幫助程式中。

總結

透過本文的介紹,你應該已經對這五種 Linux shell 有了一個全面且深入的了解。它們都是在 Linux 上執行命令和編寫腳本的有用工具,可以幫助你提高效率和靈活性。當然,這只是我們精心挑選的一小部分 shell,Linux 的軟體倉庫中還有很多其他優秀的 shell 等待你去發現和嘗試。我們建議你根據你自己的需求和喜好去探索和安裝更多的 Linux shell,讓你的 Linux 命令列介面更加強大和個人化。

以上是Linux shell 大比拼:五種流行的命令列介面的特性和優勢的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:lxlinux.net。如有侵權,請聯絡admin@php.cn刪除