如何自定義Linux Shell環境?


Shell是使用者與系統之間的介面。它可以用於執行系統上的任何操作。在Linux中,我們可以使用和互動的Shell型別有很多種。本文將解釋如何使用和自定義Shell環境,並介紹一些可以根據您的需求使Shell環境更加自定義的想法。

如果您是Linux新手,您可能只知道bash shell,但這並不是我們唯一可以使用的Shell。還有其他替代方案和其他的Shell,您可能更喜歡它們而不是標準的bash shell。

有時,在執行新機器時,您看到的預設Shell可能不是bash。如果需要,您需要知道如何切換回bash shell。在這裡,您將學習如何在Shell環境之間切換並使其為您工作。

在本文中,我們將嘗試涵蓋您需要更熟悉Shell(尤其是bash shell)的所有基礎知識,以便您可以開始探索其他Shell環境及其功能。

預設Shell

在Unix系統上,您應該可以在名為/etc/shells的檔案中找到可用的Shell列表。讓我們檢視此檔案,看看我們的系統上有哪些Shell可用:

每當我們登入系統時,我們都會看到預設的Shell,但是我們可以更改它!

您的Shell的二進位制檔案通常位於/bin目錄中。

在命令列工作時,您可能需要知道正在執行哪個Shell。一種方法是使用echo命令,後跟美元符號和全大寫的SHELL來檢查Shell環境變數。這將告訴您當前正在使用的Shell。

在我的例子中,我使用bash,如果您沒有更改Shell,您的也可能是bash。

我們可以使用grep命令檢視/etc/passwd檔案來檢查我們正在使用的預設Shell,如下所示:

grep mead /etc/passwd

此行上的最後一項指示此使用者的預設Shell。在本例中,它是/bin/bash Shell環境。

如前所述,Shell二進位制檔案位於/bin/下,我們可以透過列出此目錄來檢視系統上已安裝的Shell。由於所有Shell都以sh結尾,我們可以像這樣列出它們。

ls /bin/*sh

要切換到另一個Shell,鍵入其名稱(例如,sh):

在這裡您可以看到,即使更改為sh後,預設Shell仍然顯示為bash。這是因為echo $SHELL顯示的是預設登入Shell,而不是當前Shell。要檢視當前Shell,請使用此技巧來顯示正在執行的程序。

ps -p $$

$$顯示當前程序的程序ID。如果您在Shell中並且不知道哪個Shell,此技巧將有所幫助。

更改預設Shell

最後一個示例只更改會話的Shell。一旦您退出並重新開啟終端,預設Shell(在本例中為bash)將返回。

如果要永久更改Shell環境,請使用chsh命令(代表“更改Shell”)。使用使用者名稱輸入它,後跟-s,然後是您想要作為預設值的Shell路徑。

chsh mead -s /bin/sh

這將提示輸入密碼,因為您正在更改使用者Shell。輸入密碼並按Enter鍵。

現在,如果我們檢查/etc/passwd中使用者的Shell,我們應該看到sh而不是bash作為登入Shell。

要將其改回,請使用相同的命令。

Bash配置

讓我們談談如何稍微自定義我們的bash shell環境。在您的主目錄中,您會找到幾個以點(.)為字首的檔案。除非您使用ls -a列出該目錄中的所有檔案,否則這些檔案不可見。它們通常包含各種Linux應用程式的配置;在這裡,我們感興趣的是.bashrc.profile,它們包含bash shell配置。

讓我們看看這些檔案的作用以及我們如何自定義它們。

別名

Linux中的一個有用功能是別名的概念,它允許您為經常使用的命令建立自定義快捷方式。您可以不必每次都鍵入長命令,而是在.bashrc檔案中定義一個別名,例如:

alias up="sudo apt update"

在此示例中,我們將命令sudo apt update替換為up,因此每當我鍵入up時,系統將執行sudo apt update

提示符

許多使用者想要更改的一件事是在新的終端會話中顯示的提示符。此提示符通常顯示使用者名稱,以及在您導航時顯示當前位置。

我們可以透過修改.bashrc檔案中的名為PS1的環境變數來自定義提示符。

例如,將PS1更改為:

PS1="\u\$ "

將顯示使用者名稱後跟美元符號。

這只是一種示例;您可以根據需要進行調整。

.bashrc檔案包含許多會話配置。我們只對別名和提示符進行了一些更改,但是您可以探索其他選項。

結論

本文簡要介紹了Shell自定義以及我們如何使用.bashrc檔案中的基本配置使我們的Shell獨一無二。我們還介紹瞭如何切換和獲取當前Shell環境。

更新於:2024年11月21日

瀏覽量:13

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.