bash
尽管我只使用,但我已将其作为我的默认 shell zsh
。
我总是自己打开终端并输入 来启动它zsh
。
今天我决定用它作为我的默认 shell。所以我找到了此链接并运行以下命令
sudo chsh -s $(which zsh) john
john
我的用户在哪里。
一切都运行正常,直到我尝试访问我的银行网站并发现我为 Java Chrome 插件创建的符号链接不再起作用。
zsh
我尝试删除它并通过以下命令创建一个新的:
sudo ln -s /opt/jre1.7.0_55/lib/amd64/libnpjp2.so
但没用。我现在正在使用,我应该做些不同的事情吗zsh
?如何让我的符号链接再次工作?
答案1
如果您无法明确了解您的浏览器遇到的错误,我只能进行推测,但可以得出以下结论:
您的 ~/.bashrc 很可能正在设置某些环境变量并导出它们。当您手动调用 zsh 时,它会(作为 bash shell 的子进程)继承这些环境变量。
在切换到 zsh 之前,您应该仔细调查在启动初始 bash 会话时设置了哪些环境变量。
为此,首先调用 bash:
$ bash
然后检查你的环境变量:
$ set
此输出会很长。您可能希望通过类似 more 或 less 的分页程序进行管道传输。由于您在使用 java 时遇到问题,您可能希望验证您的 JAVA_HOME 环境变量是否在 zsh 中正确设置。从 bash 执行:
$ echo $JAVA_HOME
然后退出该 bash 会话并通过再次发出相同的 echo 命令来验证 JAVA_HOME 是否在 zsh 中正确设置。
如果这些不匹配,您需要在 ~/.zshrc 中进行设置,您可以通过返回 bash 然后将变量内容回显到 .zshrc 中来轻松完成此操作,如下所示:
$ bash
$ echo "export JAVA_HOME=" $JAVA_HOME >> .zshrc
$ exit
答案2
首先,绝对没有理由chsh
使用 sudo 运行!下次,只需运行
chsh -s $(which bash)
也绝对没有理由使用sudo ln
。链接是所有人可读/写/可执行的。现在,您创建的链接与您使用的 shell 无关。绝对没有理由更改 shell 会影响它们。如果您无法访问链接,则问题出在其他地方。
无论如何,跑吧
ln -s /opt/jre1.7.0_55/lib/amd64/libnpjp2.so
这将创建一个名为 的链接libnpjp2.so
,该链接位于您当前的目录中并指向/opt/jre1.7.0_55/lib/amd64/libnpjp2.so
。我非常怀疑这是您想要做的,但这似乎是您想要的。
如果出于某种原因上述命令不起作用,请编辑您的问题并告诉我们恰恰他们是如何失败的。简单的“没有工作”没什么用。有错误消息吗?是否创建了断开的链接?出了什么问题?