在Linux中更改默认shell

mah*_*ood 300 linux bash shell environment tcsh

如何更改默认shell?该env命令目前说:

SHELL=/bin/tcsh
Run Code Online (Sandbox Code Playgroud)

我想把它改成Bash.

Sum*_*Tea 391

试试linux命令chsh.

详细命令是chsh -s /bin/bash.它会提示您输入密码.您的默认登录shell /bin/bash现在是.您必须注销并重新登录才能看到此更改.

以下内容引自手册页:

chsh命令更改用户登录shell.这确定了用户初始登录命令的名称.普通用户只能更改自己帐户的登录shell,超级用户可以更改任何帐户的登录shell

此命令将永久更改默认登录shell.

注意:如果您的用户帐户是远程的,例如Kerberos身份验证(例如Enterprise RHEL),那么您将无法使用chsh.

  • **您必须退出并重新登录才能看到此更改.** (24认同)
  • 在我的情况下,我有root访问权限,但不想搞乱实际主机上的任何配置.我将`exec/bin/bash`添加到`〜/ .profile`中,这使我可以直接登录bash而无需对服务器进行任何更改.(最初的默认shell只是`/ bin/sh`) (20认同)
  • `chsh:只能更改本地条目; 使用ypchsh代替`.然后ypchsh没有任何`-s`选项 (10认同)
  • @ShaktiMalik我相信配置文件是`/ etc/passwd`,但我没有仔细检查它. (10认同)
  • @BCqrstoO谢谢你.但是如果你在bash中键入`exit`会怎么样?你会直接注销服务器还是退出bash并进入sh和注销服务器所需的另一个`exit`? (2认同)
  • 〜/ .profile对我没有.我的默认值是tcsh,所以我将exec/bin/bash添加到我的〜/ .tcshrc中,这很好用 (2认同)

Des*_*Ice 143

您可以直接为特定用户更改passwd文件,也可以使用以下命令

chsh -s /usr/local/bin/bash username
Run Code Online (Sandbox Code Playgroud)

然后注销并登录

  • 在调用上面的命令之前尝试```bash```可能是个好主意; 您的里程可能因地点而异.就我而言,它出现在``/ bin/bash```中 (7认同)
  • 对我来说,这是`chsh -s/bin/bash用户名' (3认同)

ark*_*cha 16

你应该有一个"骨架"的地方/etc,大概/etc/skeleton,或检查的默认设置,可能是/etc/default什么.这些是定义在登录期间设置的标准环境变量的脚本.

如果它只是为您自己的帐户:检查(隐藏)文件~/.profile~/.login.如果它们不存在,则生成它们.这些也由登录过程评估.

  • 加1专门回答问题(默认壳牌).在Red Hat Linux上,它在`/ etc/default/useradd`中指定 (5认同)