在Linux中使用bashshell愉快嗎?或者你更願意嘗試另一種選擇?有tsch、fish、KornShell和Z Shell可供選擇。但是這些流行的Linux shell中哪一個是最好的呢?
通常,當您編寫應用程式時,它是用人類能夠理解的高階語言完成的。這些例子是C,java,C++等等。信不信由你,你的計算機把所有東西都看成是1s,或者是眾所周知的二進位制程式碼或機器程式碼。
然後編譯器將高階語言翻譯成二進位制檔案,就像可執行檔案一樣。這個二進位制檔案就是您執行以啟動所述應用程式的檔案。
現在,這是一個非常高階的檢視;記住,你的計算機需要一個翻譯層。這介於你告訴它做什麼和它如何理解之間。
shell就是所謂的直譯器。與編譯器類似,直譯器將人工程式碼翻譯成機器程式碼。其中一個不同之處是口譯員一次只做一句話。同時,編譯器掃描整個程式並將其全部翻譯成機器程式碼。
因此,shell是您與作業系統(OS)互動的介面。當您在shell中輸入命令時,它負責解釋這些命令並實現這些神奇的效果。複製檔案、管道、列表檔案等操作都在shell的職權範圍內。
有幾個Linux shell可用。要查詢系統上可用的所有shell,請開啟終端並鍵入:
cat /etc/shells要了解您當前使用的shell型別,請鍵入:
echo $0但是你用的是最好的Linux shell嗎?讓我們看看有什麼可用的。
這是Linux使用者中最流行的shell。如果沒有Bourne-Again-Shell(bash)作為等式的一部分,甚至很難想到Shell。許多Linux發行版附帶bash作為預設shell,因為bash是預設的gnushell。在1989年發行的這部電影背後,也有幾十年的健康發展。
Bash的前身是bourneshell(sh),它是最初的Unix Shell之一。對於sh程式設計師來說,一個吸引人的特性是,他們可以完全不變地直接將指令碼移植到bash。Bash還為其前身提供了一些增強功能:
通常線上文件會假設您使用的是bash。然而,它並非沒有缺點——任何編寫過bash指令碼的人都可以證明這一點!並不是你做不到什麼,而是閱讀和寫作並不總是特別優雅。
KornShell通常被稱為ksh,它是一種流行的Linux shell替代品,起源於20世紀80年代的Bell實驗室,bash和ksh之間沒有太多區別,但兩者都有一些小的優勢。例如,Ksh有cd old new命令。如果您在/Downloads/foo/bar/one/foobar目錄下,需要進入/Downloads/foo/bar/two/foobar,則只需輸入:
cd one twoksh的老手們會透過提到它的指令碼優勢來宣傳它的優越性。其中包括:
不像bash,在網上很難找到ksh的幫助。如果要嘗試使用ksh,請輸入:
sudo apt install kshkshTcsh可以追溯到Unix的早期。它是C shell(csh)的改進版本,具有以下功能:
你可以透過鍵入來執行任何命令!n用顯示的歷史記錄中相應的數字替換n。在tcsh works中,透過鍵入以下內容完成“歷史記錄”選項卡:
!a<TAB>這將擴充套件到以字母“a”開頭的最後一個命令。相比之下,在bash中,您必須鍵入!a:p先看命令,然後!!去執行它。
要嘗試tcsh,請鍵入:
sudo apt install tcshtcshTcsh是基於BSD的系統(如FreeBSD)的預設shell。tcsh的一大賣點是它的指令碼語言,它對任何主要使用C語言程式設計的人都很有用。這使得tcsh對於小型C程式的原型設計非常有用,而不會對您使用的括號之類的東西產生混淆。如果您不斷地在C程式設計和shell指令碼之間切換,這個問題就會發生。
在Linux的嚴肅性中,fish的團隊在他們的專案中嵌入了幽默感。儘管fish(“友好互動shell”)是在2005年開發的,但在他們的網站上,這句話的標題是“終於,90年代的命令列shell”。除了被吹捧為“輝煌的VGA顏色”之外,還有其他外殼的一些增強功能:
此功能將新安裝軟體手冊頁中的語法新增到自動完成建議中。如果您想更熟悉命令列,fish是一個很好的開始。
要獲取魚類的樣本,請鍵入:
sudo apt install fishfish許多人會認為這是把最好的外殼留到最後,這是完全可以理解的。Zsh與bash和ksh有相似之處,並結合了其中的許多特性以及tcsh。Zsh特點:
zsh中的Globbing非常有用。打字:
vim /u/l/b/a<TAB>將開啟檔案:
/usr/local/bin/autoupdate.sh如果不使用預設配置,Zsh在第一次使用時可能需要一段時間進行配置。要嘗試一下,請輸入:
sudo apt install zshzsh這些選項是可以選擇的,這一事實是非常棒的。每一個都是對計算曆史的一個一瞥,程式設計師們決定自己想用自己的方式來做事情。
這些shell之間的實質性差異可以在指令碼語法中找到。每個貝殼都有一組特殊的細微差別,將它們彼此分開。從目前的情況來看,bash在市場份額方面佔據主導地位,這使得尋求幫助變得更加簡單。Bash僅僅是最好的全能者,滿足除最高階使用者之外的所有使用者的需求。
當您決定使用Linux shell時,請確保您熟悉shell指令碼的基礎知識。
...Windows功能變得更好。如果你正在尋找新的東西,這裡是最好的應用程式,你可以下載來取代或繞過你的開始選單。 ...
就像走出前門一樣,上網也有風險。沒有必要把頭埋在沙子裡,但有時你會想要隱私,期望一定程度的安全也不無道理。 ...
...做些什麼來學習這些命令呢?你可以練習,花很多時間在貝殼裡。為了幫助你,接受書籍和網站,這將有助於你在終端磨練你的能力。這裡有一些建議。 ...
... 哪個版本的ubuntu適合你? ...
...,或者您知道已經安裝了Python,但不確定您現在使用的是哪個版本,只需在作業系統的相關命令列終端中執行以下命令: ...
...有兩種主要型別:numeric和foreach。傳統上,數字型別是最常見的,但是在bash的用法中,通常是相反的。 ...