我很惊讶我没有在网站上找到这个问题。所以,今天$是在我以新用户身份登录后出现的。这是出乎意料的,因为我的主要用户的提示以username@computername:~$.
那么,我如何从这个其他 shell 切换到 bash?
Kev*_*n M 69
假设未知 shell 支持运行绝对命令,您可以尝试: /bin/bash
要更改默认 shell,我会使用chsh(1). 示例用法:chsh -s /bin/bash $USER
xen*_*ide 20
你输入bash. 如果您希望这是永久性的,请/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
Run Code Online (Sandbox Code Playgroud)
最后一个字段包含 shell,将最后:一个字段修改为有效或无效的 shell 将起作用。/bin/false并且/sbin/nologin两者都意味着用户没有真正的登录 shell,尽管如果 pam 设置不正确,这并不意味着他们无法登录(我在 Arch Linux 中报告了一个关于此的错误,因为您可以在没有登录的情况下以图形方式登录登录外壳)。/bin/bash并且/bin/zsh都是有效的 shell,请参阅/etc/shells了解您系统上的有效 shell 列表。/etc/shells如果你有兴趣,这是我的。
/bin/sh
/bin/bash
/bin/ksh
/bin/zsh
/bin/dash
Run Code Online (Sandbox Code Playgroud)
是的,您可以使用chsh或usermod做同样的事情,请记住这些只是结构化文本文件和 TIMTOWTDI。
Kev*_*ntu 13
如果chsh或手动编辑配置不起作用,但在登录时执行 ~/.profile 脚本,请添加以下行:
exec /bin/bash --login
Run Code Online (Sandbox Code Playgroud)