修改 Linux 預設 Shell 用 chsh -s /bin/zsh 命令不生效,提示 chsh: Shell not changed. 或 chsh: command not found 怎麼辦

技术颜良發表於2024-08-30

我想現在應該有很多人都已經使用zsh作為預設的Shell了,尤其是搭配 oh-my-zsh 之後,真是好用得飛起。
一般,我們在切換系統預設的Shell的時候,都會使用 chsh -s /bin/zsh 命令來進行修改。今天我遇到一個問題,在某臺老伺服器上,使用這個命令無法修改,具體原因未知。始終提示——chsh: Shell not changed.
無奈,只能更換另外的切換方式了,改用 usermod -s /bin/zsh fungleo 這個命令來進行的修改,成功了。這個命令裡面的 fungleo 是我的系統使用者名稱,如果看官在執行這條命令的時候,切記換成自己的使用者名稱。用這個命令的缺點是,只能更改單個使用者的,不能修改所有使用者的。不過一般來說,使用者也不會太多,所以是夠用的。
有點小坑,記錄一下。

今天遇到在 windows 下的子 linux 系統中切換 zsh 不成功,找到的解決方法是在 .bashrc 檔案中新增如下程式碼

if [ -t 1 ]; then
    exec zsh
fi

即可在啟動時是預設的 zsh 終端了。神奇的windows。。。


2020年05月14日 補充
今天試了一下 centos 8 發現,在系統中沒有自帶 chsh 命令工具,提示 chsh: command not found。簡單查了一下,是因為系統沒有自帶 util-linux-user 工具包導致的。
那麼原因找到了,解決就很簡單了,只要安裝它就可以了。我們可以使用 yum 包管理工具進行安裝。

yum install util-linux-user

如果 yum 沒有找到這個包(我是安裝了擴充套件源的,我不清楚這個包是在擴充套件源還是在原有的源裡就有。)可以使用 dnf 包管理工具來進行安裝。命令一致:

dnf install util-linux-user

dnf 是取代 yum 的包管理器,兩者的使用基本是一致的。兩者的關係可以看這篇文章 紅帽即將廢棄yum,繼任者是誰,它又有何優勢 或者搜尋 dnf yum 來找相關資料。

原文 https://blog.csdn.net/fungleo/article/details/99448425

相關文章