it-swarm.cn

如何从未知的Shell切换到bash?

令我感到惊讶的是,我还没有在网站上找到这个问题。因此,今天$是我以新用户身份登录后出现的。这是意外的,因为我的主要用户的提示以[email protected]:~$

那么,如何从另一个Shell切换到bash?

41
mouche

假设未知的Shell支持运行绝对命令,则可以尝试:_/bin/bash_

要更改默认的Shell,我将使用chsh(1)。用法示例:_chsh -s /bin/bash $USER_

62
Kevin M

您输入bash。如果要永久保留该默认Shell,请通过编辑/bin/bash将其更改为/etc/passwd

以下是我的/etc/passwd的摘要:

avahi:x:84:84:Avahi daemon:/:/bin/false
xenoterracide:x:1000:100::/home/xenoterracide:/bin/zsh
postgres:x:88:88::/var/lib/postgres:/bin/zsh
bob:x:1001:1001::/home/bob:/bin/bash
usbmux:x:140:140:usbmux user:/:/sbin/nologin

最后一个字段包含命令行管理程序,将最后一个:后的字段修改为有效或无效的命令行管理程序将起作用。 /bin/false/sbin/nologin都表示用户没有真实的登录Shell,尽管如果未正确设置pam,这并不意味着他们无法登录(我在此报告了一个错误Arch Linux,因为您无需登录Shell就可以图形登录。 /bin/bash/bin/zsh都是有效的外壳程序,有关系统上有效外壳程序的列表,请参见/etc/shells。如果您有兴趣,这是我的/etc/shells

/bin/sh
/bin/bash
/bin/ksh
/bin/zsh
/bin/dash

是的,您可以使用chshusermod进行相同的操作,请记住这些只是结构化的文本文件和TIMTOWTDI。

20
xenoterracide

如果chsh或手动编辑配置不起作用,但是在登录时执行了〜/ .profile脚本,请添加以下行:

exec /bin/bash --login
12
Kevin Cantu