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
版權申明:
- 未標註來源的內容皆為原創,未經授權請勿轉載(因轉載後排版往往錯亂、內容不可控、無法持續更新等);
- 非營利為目的,演繹本博客任何內容,請以'原文出處'或者'參考鏈接'等方式給出本站相關網頁地址(方便讀者)。