【发布时间】:2012-10-24 09:15:37
【问题描述】:
如何更改默认外壳? env 命令当前表示:
SHELL=/bin/tcsh
我想把它改成 Bash。
【问题讨论】:
-
这是个好问题,但它可能更适合 Linux QA 站点。
-
在 /etc/passwd 中设置
标签: linux bash shell environment tcsh
如何更改默认外壳? env 命令当前表示:
SHELL=/bin/tcsh
我想把它改成 Bash。
【问题讨论】:
标签: linux bash shell environment tcsh
试试linux命令chsh。
详细命令为chsh -s /bin/bash。
它会提示您输入密码。
您的默认登录 shell 现在是 /bin/bash。 您必须退出并重新登录才能看到此更改。
以下内容来自手册页:
chsh 命令更改用户登录 shell。这决定了 姓名 用户初始登录命令。普通用户只能更改 登录shell为她自己的帐户,超级用户可以更改登录名 任何帐户的外壳
此命令将永久更改默认登录 shell。
注意:如果您的用户帐户是远程的,例如 Kerberos 身份验证(例如 Enterprise RHEL),那么您将无法使用 chsh。
【讨论】:
chsh: can only change local entries; use ypchsh instead。那么 ypchsh 没有任何-s 选项
/etc/passwd,但我没有仔细检查。
exec /bin/bash 添加到~/.profile,这使我可以直接登录bash 而无需对服务器进行任何更改。 (原来的默认 shell 只是 /bin/sh)
exit 会怎样?您是直接注销服务器还是退出 bash 并进入 sh 和另一个 exit 需要注销服务器?
您可以直接为特定用户更改密码文件或使用以下命令
chsh -s /usr/local/bin/bash username
然后退出再登录
【讨论】:
which bash 可能是个好主意;您的里程可能因位置而异。就我而言,它是在/bin/bash 中找到的
chsh 命令是util-linux 包的一部分;和chsh -s $(which bash) $USER 的结果应该和上面一样。
-l选项:“打印shell列表”。
chsh -s /bin/bash username
你应该在/etc 的某个地方有一个“骨架”,可能是/etc/skeleton,或者检查默认设置,可能是/etc/default 或其他东西。这些是定义在登录期间设置的标准环境变量的脚本。
如果只是为了您自己的帐户:检查(隐藏)文件~/.profile 和~/.login。或者生成它们,如果它们不存在。这些也由登录过程评估。
【讨论】:
/etc/default/useradd 中指定