更改預設 shell

大多數現代發行版都預裝了 BASH( B ourne A gain SH ell)並配置為預設 shell。

負責在 Linux 中更改 shell 的命令(實際上是可執行二進位制檔案,ELF)是 chshch ange sh ell)。

我們可以首先使用 chsh -l 命令檢查我們的機器上已經安裝和配置了哪些 shell,這將輸出類似於以下內容的結果:

[user@localhost ~]$ chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/usr/bin/fish

在某些 Linux 發行版中,chsh -l 無效。在這種情況下,可以在/ etc / shells 檔案中找到所有可用 shell 的列表。你可以使用 cat 顯示檔案內容:

[user@localhost ~]$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/usr/bin/fish

現在我們可以選擇新的預設 shell,例如 fish,並使用 chsh -s 進行配置,

[user@localhost ~]$ chsh -s /usr/bin/fish
Changing shell for user.
Password: 
Shell changed.

現在剩下要做的就是執行登出登入週期,並享受我們新的預設 shell。

如果你希望更改其他使用者的預設 shell,並且你擁有該計算機的管理許可權,則可以使用 chsh 作為 root 來實現此目的。因此,假設我們想要將 user_2 的預設 shell 更改為 fish,我們將使用與之前相同的命令,但新增了其他使用者的使用者名稱 chsh -s /usr/bin/fish user_2

為了檢查當前的預設 shell 是什麼,我們可以檢視 $SHELL 環境變數,它指向我們預設 shell 的路徑,所以在我們更改之後,我們希望得到與此類似的結果,

 ~  echo $SHELL                                 
/usr/bin/fish

chsh 選項:

-s shell

將 shell 設定為登入 shell。

-l--list-shells

列印/ etc / shells 中列出的 shell 列表並退出。

-h--help

列印用法訊息並退出。

-v--version

列印版本資訊並退出。