我正在尝试从 tcsh 转换为 bash。我尝试过的事情:
chsh
chsh -s /bin/bash
chsh: can only change local entries; use ypchsh instead
ypchsh
ypchsh /bin/bash
ypchsh: can't get local yp domain: Local domain name not set
尝试后发现我没有 sudo 访问权限
sudo -s /bin/bash *username*
然后我尝试创建一个 .cshrc 文件:
echo "I exist in .cshrc"
setenv SHELL /bin/bash
exec /bin/bash --login
但是,当我这样做时,我无法登录我的帐户。我输入我的用户名和密码,看起来它正在让我登录,但它却把我踢回到登录屏幕。
我知道它与最后两行有关,而不是与一般文件有关,因为我仅使用命令再次测试了它,echo
并且没有任何问题。
答案1
所以我发现错误来自于线路exec /bin/bash --login
。当我删除计算机工作正常并且我在 bash 时;但是它没有运行我的 bash 启动文件,该文件包含我需要的许多不同的库。仍然不确定如何在原始计算机上加载它们(无需手动运行exec bin/bash
),但我实际上在大学服务器上运行,因此我将 .cshrc 编辑为以下内容:
echo "I exist in .chshrc"
setenv SHELL /bin/bash
if ($HOSTNAME = *server name*) then
exec /bin/bash
end if
这似乎解决了我的具体问题,尽管我怀疑这对于任何有此问题的人来说都是通用的解决方案。