更換登錄系統的chsh命令【每日一個知識點第186期-Linux】
chsh命令用來更換登錄系統時使用的shell。若不指定任何參數與用戶名稱,則chsh會以應答的方式進行設置。
語法
chsh(選項)(參數)
選項
-s<shell 名稱>或--shell<shell 名稱>:更改系統預設的shell環境。;
-l或--list-shells:列出目前系統可用的shell清單;
-u或--help:在線幫助;
-v或-version:顯示版本信息。
參數
用戶名:要改變默認shell的用戶。
實例
查看系統安裝了哪些shell的兩種方法:
第一種:
[rocrocket@localhost ~]$ chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/bin/zsh
第二種:
[rocrocket@localhost ~]$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/zsh
其實chsh -l
也是來查看這個文件。
查看當前正在使用的shell:
[rocrocket@localhost ~]$ echo $SHELL
/bin/bash
注意SHELL一定要是大寫。可以看到,目前使用的shell是/bin/bash
把我的shell改成zsh:
[rocrocket@localhost ~]$ chsh -s /bin/zsh Changing shell for rocrocket. Password: Shell changed. [rocrocket@localhost ~]$
使用chsh加選項-s
就可以修改登錄的shell了!你會發現你現在執行echo $SHELL
后仍然輸出為/bin/bash
,這是因為你需要重啟你的shell才完全投入到zsh懷抱中去。chsh -s
其實修改的就是/etc/passwd
文件里和你的用戶名相對應的那一行。現在來查看下:
[rocrocket@localhost ~]$ cat /etc/passwd|grep ^rocrocket
rocrocket:x:500:500:rocrocket,China:/rocrocket/PSB/home:/bin/zsh
你可以發現輸出內容的最后部分已經變成了/bin/zsh
了,下次重啟的時候,Linux就會讀取這一命令來啟動shell了!
把shell修改回/bin/bash:
[rocrocket@localhost ~]$ chsh -s /bin/bash Changing shell for rocrocket. Password: Shell changed.
《Linux學習每日一個知識點》欄目是馬哥教育Linux云計算年薪20萬+的學員社群特別發起,分享Linux工具、Linux語法、Linux項目等知識點,幫助大家快速的了解Linux學習,快速步入Linux高薪的快車道。
http://haohuigou.com/74163.html