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

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

我有csh默认的 shell,如 所示echo $SHELL。我想切换bash为我的默认 shell。我尝试了以下方法均无效:

  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。如何将我的默认 shell 更改为bash

答案1

  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(在您的主目录中):

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

答案2

请联系您的系统管理员。他把事情设置错了。如果那么你是系统管理员吗你已经设置错误。

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

但是快速谷歌搜索会出现这个结果这表明如果yppasswd在客户端和服务器上都运行,您将收到此错误。在这种情况下,请在客户端上将其关闭。


如果你坚持使用 csh 作为登录 shell,你仍然可以让它在你登录时调用 bash。将以下命令放入你的~/.login(另请参阅无需 chsh 或管理员权限即可更改默认 shell):

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 提示符,以防出现问题)。

相关内容