如何更改 Linux 中的預設 Shell

如何更改 Linux 中的預設 Shell
更改 Linux 功能映像中的預設 Shell

shell 是您可以與 Linux 系統通訊的介面。它允許您鍵入命令並控制您的電腦。每個 Linux 使用者都有一個預設 shell,大多數情況下是 bash。還有許多其他選項可用,包括 Zsh、ksh、rc 和 Fish。在這裡,我們向您展示更改 Linux 中預設 shell 的各種方法。

如何找到您目前的 Shell 名稱

在我們深入更改預設 shell 之前,最好先了解您目前正在使用哪個 shell。您可以透過使用以下 echo 命令檢查系統環境變數來找到這一點:

使用 echo 指令顯示目前 shell 路徑

該命令將列印出目前 shell 的路徑,例如/bin/bash/bin/zsh

/etc/passwd文件包含重要的使用者帳戶資訊。您也可以使用此文件查找目前的 shell:

在環境變數檔案上使用 grep 指令來尋找目前 shell

您還可以使用 ps 命令透過檢查進程 ID (PID) 來查找有關當前 shell 的更多資訊:

使用 ps 指令顯示目前 shell 進程資訊

此輸出確認目前 shell 是 bash。

列出所有已安裝的 shell

現在您已經了解了目前的 shell,您可能想看看系統上還有哪些其他可用選項。要找到系統上所有已安裝的 shell,您需要查看該/etc/shells檔案。

讓我們使用 cat 指令來查看系統上所有可用 shell 的清單:

列出 Linux Ubuntu 系統中安裝的所有 shell

這將使您了解可以切換到哪些 shell。您也可以使用套件管理器安裝任何新 shell 並將其用作預設 shell。

此外,您可以暫時嘗試列出的這些 shell,而無需更改預設 shell。要啟動新的 shell 會話,只需在終端機中輸入 shell 的名稱即可。

例如,若要嘗試 Zsh shell,請輸入:

這使您可以在決定永久切換之前嘗試不同的 shell。

使用 Chsh 更改 Linux 中的預設 Shell

更改 Linux 中預設 shell 的最直接方法是使用命令chsh。該chsh命令代表“更改 shell”,它與-s後面跟著 shell 路徑的選項一起使用。

如果您不知道 shell 路徑,請type zsh在終端機中執行以取得所需的路徑。取得 shell 路徑後,您可以將預設 shell 變更為您的特定 shell。

例如,如果要切換到 Zsh,則需要將chsh -s與 Zsh shell 路徑一起使用:

使用 chsh 指令更改預設 shell

系統會提示您輸入密碼。完成此操作後,您需要登出並重新登入以確認變更。

chsh命令將永久更改預設登入 shell。您可以透過執行以下命令來驗證變更:

在 /etc/passwd 檔案上使用 grep 指令驗證 shell 的切換

更改另一個用戶外殼

如果您擁有 root 權限並且能夠使用該sudo命令,則可以變更其他使用者帳戶的預設 shell。如果您想為其他使用者提供不同的 shell 環境(例如 Fish),這會很有用。

例如,若要將另一個使用者的 shell 變更為 Zsh,請在終端機中執行下列命令:

使用 chsh 指令更改另一個使用者 shell

此命令告訴系統將特定使用者的預設 shell 變更為 Zsh shell,該 shell 位於/bin/zsh.

使用 Usermod 更改 Linux 中的預設 Shell

切換 shell 的另一種方法是使用usermod命令。此指令用於修改使用者帳戶,也可用於變更預設 shell。

若要使用 變更預設 shell usermod,請使用 root 權限開啟終端機並鍵入下列命令:

在這裡,您需要替換/path/to/new/shell為所需的 shell 路徑和your_username您的實際使用者名稱。

例如,讓我們將預設的 bash shell 更改為 zsh:

使用 usermod 指令將預設 shell 變更為另一個 shell

就像以前一樣,登出並重新登入 Linux 系統以使這些變更生效。

您可以使用以下命令查看使用者帳戶詳細資訊來驗證是否切換到新 shell:

使用 getent 從預設 shell 切換後驗證新 shell

手動更改 Linux 中的預設 Shell

您也可以透過編輯檔案來手動更改預設 shell /etc/passwd。您可以透過用新 shell 取代預設 shell 路徑來完成此操作。但是,請小心使用此技術,因為如果操作不當,可能會導致問題。

若要手動變更 shell,/etc/passwd請使用您最喜歡的文字編輯器(如 nano 或 vim)以 root 權限開啟檔案:

使用 Nano 文字編輯器開啟 /etc/passwd 文件

在文件中尋找您的用戶名。使用者條目中的最後一個欄位將顯示您目前的 shell。將其變更為您所需的 shell 路徑。

例如,讓我們將預設/bin/bashshell 路徑更改為/bin/zsh

在 /etc/passwd 文字編輯器中將預設 bash shell 變更為 zsh shell。

Ctrl最後,按+儲存檔案並按+S退出編輯器。再次登出並重新登入以套用變更。CtrlX

預設 Shell 的替代方案

雖然 Bash 是一個強大且強大的腳本工具,但還有其他幾種 shell 可以增強您的命令列體驗並提供更好的自訂選項:

Fish 指的是友善的互動式 Shell。這個 shell 具有直覺的命令列介面,具有語法突出顯示、自動建議和製表符補全功能,使輸入命令變得輕而易舉。

Fish 還包含一個基於 Web 的設定工具。這意味著您可以調整設定並建立功能,而無需深入研究設定檔。

茲什

Zsh(或 Z shell)是高度可自訂的,並且具有許多有用的功能。它的一些最佳功能包括通配符、自動更正、自訂配置和高級製表符完成。

Zsh 還支援外掛程式和主題,讓您可以輕鬆地根據自己的喜好自訂 shell 體驗。使用 Zsh,您還可以顯示 Git 分支並使用簡單的模式執行複雜的檔案操作。

克什

ksh 或 KornShell 吸收了 C shell 和 Bourne shell 的最佳功能,使其成為具有高級腳本編寫功能的強大且易於使用的 shell。 ksh 的一些功能包括內建數學函數、命令列編輯、shell 腳本編寫和可擴展性。

總結

更改 Linux 中的預設 shell 是一個簡單的過程,可以增強您的命令列體驗。如果您是高級用戶,您絕對應該嘗試其他替代的 Linux shell。

圖片來源:Lukas,來自 Unsplash。所有螢幕截圖均由 Haroon Javed 提供。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *