更改預設 shell
大多數現代發行版都預裝了 BASH( B ourne A gain SH ell)並配置為預設 shell。
負責在 Linux 中更改 shell 的命令(實際上是可執行二進位制檔案,ELF)是 chsh
( ch 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
列印版本資訊並退出。