如何从csh更改为bash作为默认shell


34

我将其csh作为默认外壳,如所示echo $SHELL。我想切换到bash默认外壳程序。我尝试了以下方法无济于事:

  1. 随着chsh我得到:

    chsh: can only change local entries; use ypchsh instead.
  2. 随着ypchsh我得到:

    ypchsh: yppasswdd not running on NIS master host ("dcsun2").

我只有.chsrc主目录,.profile在中找不到任何文件/etc。如何将默认外壳程序更改为bash


4
了解您是哪种类型的Unix可能会很有用。
enzotib 2011年

Answers:


43
  1. 确保已bash安装。

  2. 了解位置 bash

    which bash

    要么

    whereis bash

    在下面,我假设位置是/bin/bash

    a)如果您具有管理权限,只需以root身份运行:

    usermod -s /bin/bash YOUR_USERNAME

    (替换 YOUR_USERNAME为您的用户名)。

    b)如果您没有adm。权利,你仍然可以只运行bash --login在登录时,通过将以下行的您.cshrc.profile(在你的home目录):

    setenv SHELL /bin/bash
    exec /bin/bash --login

2b。检查是否用正确的路径bash枚举/etc/shells
manatwork 2011年

@manatwork与2a而不是2b有关。并且仅在系统奇怪/损坏的系统设置中有用,才能确定解决方案为何不起作用。
rozcietrzewiacz 2011年

1
1. SHELL = / bin / bash给出命令未找到错误。2.您的解决方案给了我一个bash shell作为提示。但这不会更改我的登录外壳。谢谢您的帮助。
Sumod 2011年

1
这是我为解决此问题所做的工作。1.在.cshrc文件中执行/ bin / bash --login。2.设置SHELL = / bin / bash,然后在/ etc / profile文件中导出SHELL。谢谢。
Sumod 2011年

2
啊,抱歉-我的意思是第一行export SHELL=/bin/bash。实际上,还有比这更好的方法-请参阅更新。
rozcietrzewiacz 2011年

13

请与系统管理员联系。他把事情弄错了。如果是系统管理员,那么您已经将设置错误。

错误消息看起来很简单。您没有yppasswd在dcsun2上运行。它应该是。

但是,执行快速的google搜索会显示此结果该结果指示如果yppasswd客户端和服务器上都运行该错误,则会收到此错误。在这种情况下,请在客户端上将其关闭。


如果您坚持使用csh作为登录外壳,则仍然可以在登录时使其调用bash。将以下命令放入您的外壳中~/.login(另请参见更改默认外壳而无需chsh或管理员权限):

sleep 2
if (-x /usr/local/bin/bash) then
  exec /usr/local/bin/bash -l
endif

/usr/local/bin/bash如有必要,请使用正确的路径进行替换。如果一切正常,请删除sleep 2(这会延迟一段时间Ctrl+C,在出现问题的情况下,您可以按一下此按钮以放到csh提示符下)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.