启动 bash,然后使用终止符自动启动 Fish

启动 bash,然后使用终止符自动启动 Fish

我一直在使用终结者,最近开始使用鱼。当终结者启动(bash)时,我可以使用,例如,node就好了。如果我开始钓鱼,我仍然可以跑得node很好。

在这种情况下,我将终止符设置为“运行自定义命令而不是我的 shell”,fish但随后我不能再只运行node。终端显示尚未安装。我有点明白问题是什么...如果我fishbash一切正常运行...这是有道理的,我猜...

我怎样才能fish自动启动但让 bash 的东西已经工作了?

(很明显,我不确定我在说什么,这也许就是为什么我无法通过谷歌找到解决方案的原因......)

答案1

根据您对症状的描述,您显然安装node在系统默认命令搜索路径之外的位置。这没有什么问题,您只需将该位置添加到PATH环境变量中即可。这就是你做错的地方:你在错误的文件中这样做了。

不幸的是,很多教程都告诉你要PATH设置.bashrc.这是错误的,正如您所注意到的:如果您这样做,那么只有当您通过 bash 的交互式实例启动程序时,该设置才可用。一般来说,不要在.bashrc.相反,请在登录时作为会话启动一部分加载的文件中设置环境变量,例如~/.profile.看是否有一个所有 shell 都能读取的“.bashrc”等效文件?如何永久设置环境变量

因此,解决方案是删除PATH您添加的更改~/.bashrc(手动或通过运行某些安装脚本)并放入这些行~/.profile

要使更改在当前会话中生效,您需要更改窗口管理器中的环境。这将影响从窗口管理器启动的任何未来终端(无法影响现有终端)。如何做到这一点取决于窗口管理器。

答案2

我不知道你为什么先开始bash然后开始fish。如果 Fish 是您想要使用的 shell,那么为什么不将其设置为默认 shell“chsh -s /usr/local/bin/fish”,然后在极少数情况下您想要/需要运行 bash 命令,只需键入“ bash”,它会让你进入 bash shell,然后一旦你完成,你就可以输入“exit”返回钓鱼。

有关此内容的更多信息,请访问“https://github.com/fish-shell/fish-shell#switching-to-fish

相关内容