在Linux中更改默认shell
如何更改默认shell?在Linux中更改默认shell,linux,bash,shell,environment,tcsh,Linux,Bash,Shell,Environment,Tcsh,如何更改默认shell?env命令当前显示: SHELL=/bin/tcsh 我想把它改成Bash。您应该在/etc中的某个地方有一个“骨架”,可能是/etc/skeleton,或者检查默认设置,可能是/etc/default或其他什么。这些脚本定义了登录期间设置的标准环境变量 如果只是为了您自己的帐户:检查(隐藏)文件~/.profile和~/.login。或者生成它们,如果它们不存在的话。登录过程也会对其进行评估 试试linux命令chsh 详细的命令是chsh-s/bin/bash。 它
env
命令当前显示:
SHELL=/bin/tcsh
我想把它改成Bash。您应该在
/etc
中的某个地方有一个“骨架”,可能是/etc/skeleton
,或者检查默认设置,可能是/etc/default
或其他什么。这些脚本定义了登录期间设置的标准环境变量
如果只是为了您自己的帐户:检查(隐藏)文件
~/.profile
和~/.login
。或者生成它们,如果它们不存在的话。登录过程也会对其进行评估 试试linux命令chsh
详细的命令是chsh-s/bin/bash
。
它将提示您输入密码。
您的默认登录shell现在是/bin/bash
您必须注销并重新登录才能看到此更改。
以下引自手册页:
chsh命令更改用户登录shell。这决定了
名称
用户的初始登录命令。普通用户只能更改
登录shell,超级用户可以更改自己的登录名
不惜一切代价
此命令将永久更改默认登录shell
注意:如果您的用户帐户是远程的,例如Kerberos身份验证(例如Enterprise RHEL),则您将无法使用
chsh
您可以直接为特定用户更改passwd文件,或使用以下命令
chsh -s /usr/local/bin/bash username
然后注销并登录
chsh:只能更改本地条目;改用ypchsh
。那么ypchsh没有任何-s
option@ShaktiMalik我相信配置文件是/etc/passwd
,但我没有仔细检查它。您必须注销并重新登录才能看到此更改。在我的情况下,我具有root访问权限,但不想干扰实际主机上的任何配置。我在~/.profile
中添加了exec/bin/bash
,这样我就可以直接登录到bash,而无需对服务器进行任何更改。(最初的默认shell只是/bin/sh
)@BCqrstoO谢谢你。但是如果在bash中键入exit
,会怎么样?您是直接注销服务器,还是直接退出bash并进入sh和注销服务器所需的另一个exit
。在Red Hat Linux上,它是在/etc/default/useradd
@geeboolya中指定的。您可以指定默认shell和登录shell的区别吗?Hi@Betlista默认shell是在创建新用户登录shell时用于新用户登录shell的shell,除非将特定shell作为参数提供。尝试这可能是一个好主意在调用上述命令之前使用bash
;您的里程可能因位置而异。在我的例子中,它是在/bin/bash
中找到的,我还可以补充说,chsh
命令是util linux
包的一部分;和chsh-s$(哪个bash)$USER
的结果应该与上面的结果相同。还有-l
选项:“打印外壳列表”。这是chsh-s/bin/bash username
,适合你!当我尝试为不同的用户更改它时,这对我很有帮助