首页 > 解决方案 > conda环境中的bash别名

问题描述

我有一个别名.bash_profile可以直接转到我的工作文件夹:

alias workings='cd desktop/working_folder/'

所以每次我输入workingsTerminal它都会cd desktop/working_folder/

Terminal但这在in 中不起作用conda

bash:工作:找不到命令

我相信conda以防万一,它在.bash_profile其他地方,但我找不到它。

我该如何解决这个问题?

标签: bashconda

解决方案


改为使用导出的函数

如果您创建导出函数而不是别名,则它将可用于从导出它的 shell 继承环境变量的所有 bash 实例。

workings() { cd ~/desktop/working_folder/; };
export -f workings

或者:选择正确的点文件

通常,在 UNIX 上~/.bash_profile(及其前身~/.profile)仅针对登录 shell运行。传统上,每个会话只有一个登录 shell,未来的终端窗口运行非登录交互式 shell(而~/.bashrc不是源)。

因此,对于传统配置的 UNIX 系统,您需要将别名放入~/.bashrc,而不是~/.profile,以便它们在启动图形会话后打开的常规图形终端中生效。

然而,MacOS并不是一个传统的系统:所有终端窗口都启动登录 shell,这就是为什么在其中添加别名~/.bash_profile通常可以工作......直到您运行的 shell不是由终端程序直接启动的。

因此,最佳做法是执行以下两项操作:

  • 将别名和非导出变量/shell运行时设置/等从~/.bash_profile移动到~/.bashrc
  • 来源~/.bashrc~/.bash_profile因此这些定义在常规终端中仍然可用

有关这方面的更多信息,请参阅@mklement0.bash_profile 中定义的别名在 OS X 中不起作用的回答


推荐阅读