chsh

用來更換登錄系統時使用的shell

補充說明

chsh命令 用來更換登錄系統時使用的shell。若不指定任何參數與用戶名稱,則chsh會以應答的方式進行設置。

語法

1chsh(選項)(參數)

選項

1-s<shell 名稱>或--shell<shell 名稱>:更改系統預設的shell環境。;
2-l或--list-shells:列出目前系統可用的shell清單;
3-u或--help:在線幫助;
4-v或-version:顯示版本信息。

參數

用戶名:要改變默認shell的用戶。

實例

查看系統安裝了哪些shell的兩種方法:

第一種:

1[rocrocket@localhost ~]$ chsh -l
2/bin/sh
3/bin/bash
4/sbin/nologin
5/bin/zsh

第二種:

1[rocrocket@localhost ~]$ cat /etc/shells
2/bin/sh
3/bin/bash
4/sbin/nologin
5/bin/zsh

其實chsh -l也是來查看這個文件。

查看當前正在使用的shell:

1[rocrocket@localhost ~]$ echo $SHELL
2/bin/bash

注意SHELL一定要是大寫。可以看到,目前使用的shell是/bin/bash

把我的shell改成zsh:

1[rocrocket@localhost ~]$ chsh -s /bin/zsh
2Changing shell for rocrocket.
3Password:
4Shell changed.
5[rocrocket@localhost ~]$

使用chsh加選項-s就可以修改登錄的shell了!你會發現你現在執行echo $SHELL後仍然輸出爲/bin/bash,這是因爲你需要重啓你的shell才完全投入到zsh懷抱中去。chsh -s其實修改的就是/etc/passwd文件裏和你的用戶名相對應的那一行。現在來查看下:

1[rocrocket@localhost ~]$ cat /etc/passwd|grep ^rocrocket
2rocrocket:x:500:500:rocrocket,China:/rocrocket/PSB/home:/bin/zsh

你可以發現輸出內容的最後部分已經變成了/bin/zsh了,下次重啓的時候,linux就會讀取這一命令來啓動shell了!

把shell修改回/bin/bash:

1[rocrocket@localhost ~]$ chsh -s /bin/bash
2Changing shell for rocrocket.
3Password:
4Shell changed.

來源:https://github.com/jaywcjlove/linux-command

最後修改於: Wednesday, January 31, 2024

相關文章:

翻譯: