如何在Linux中更改默认shell?

假设您需要在Linux中更改shell的默认设置或安装。您需要使用chsh命令,本文展示了如何在Linux中使用chsh命令来改变默认shell。

如何更改我的默认Shell

  • 首先,找出Linux机器上可用的shell,即运行cat /etc/shells
  • 输入chsh并按Enter键
  • 您需要输入新的shell完整路径。 例如,/bin/ksh
  • 登录并注销,以验证您的Shell在Linux操作系统上是否正确更改。

让我们详细查看所有命令。

列出Linux中的Shell

在/etc/shells文件中运行以下cat命令:

linuxmi@linuxmi:~/www.linuxmi.com$ cat /etc/shells

当然,我们可以使用grep命令/egrep命令来确定是否安装了诸如zsh或fish这样的特定shell,请运行:

linuxmi@linuxmi:~/www.linuxmi.com$ grep “zsh” /etc/shells
/bin/zsh
/usr/bin/zsh
linuxmi@linuxmi:~/www.linuxmi.com$ grep “fish” /etc/shells
/usr/bin/fish

找出您当前的Shell名称

执行以下任一命令以查找当前的shell实例:

linuxmi@linuxmi:~/www.linuxmi.com$ ps -p $$
PID TTY TIME CMD
11711 pts/1 00:00:00 bash
linuxmi@linuxmi:~/www.linuxmi.com$ printf “My current shell – %s\n” “$SHELL”
My current shell – /bin/bash
linuxmi@linuxmi:~/www.linuxmi.com$ grep “^${USER}” /etc/passwd
linuxmi:x:1000:1000:linuxmi,,,:/home/linuxmi:/bin/bash

将默认shell从bash更改为zsh

要使用chsh将shell更改为zsh,请运行:

linuxmi@linuxmi:~/www.linuxmi.com$ type -a zsh   ##找到zsh的路径 ##
linuxmi@linuxmi:~/www.linuxmi.com$ chsh -s /bin/zksh ## 将bash更改为zsh ##

验证一下:

linuxmi@linuxmi:~/www.linuxmi.com$ grep “^${USER}” /etc/passwd

注销并再次登录。 可以关闭终端应用程序并重新打开它,或使用su命令,如下所示”

linuxmi@linuxmi:~/www.linuxmi.com$ su – linuxmi

用chsh将您的shell重新变成bash

是否要撤消更改? 尝试:

type -a bash
chsh -s /bin/bash
## 用实际的用户名替换linuxmi##
grep ‘^linuxmi’ /etc/passwd
su – linuxmi

获得有关chsh命令的帮助

在CLI上键入以下命令之一:

man chsh

或者:

chsh –help

选项如下:

  • -h:显示帮助消息并退出。
  • -R CHROOT_DIR:在CHROOT_DIR目录中应用更改,并使用CHROOT_DIR目录中的配置文件。
  • -s /path/to/SHELL:用户新登录shell的名称。 将此字段设置为空白会导致系统选择默认的登录shell。

总结

通过本文,您了解了如何使用chsh命令更改默认Shell。 有关更多信息,请参见shadow-utils主页。

发表回复