我一直在使用终结者,最近开始使用鱼。当终结者启动(bash)时,我可以使用,例如,node
就好了。如果我开始钓鱼,我仍然可以跑得node
很好。
在这种情况下,我将终止符设置为“运行自定义命令而不是我的 shell”,fish
但随后我不能再只运行node
。终端显示尚未安装。我有点明白问题是什么...如果我fish
从bash
一切正常运行...这是有道理的,我猜...
我怎样才能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”