bash - conda环境中的bash别名
问题描述
我有一个别名.bash_profile
可以直接转到我的工作文件夹:
alias workings='cd desktop/working_folder/'
所以每次我输入workings
,Terminal
它都会cd desktop/working_folder/
。
Terminal
但这在in 中不起作用conda
:
bash:工作:找不到命令
我相信conda
以防万一,它在.bash_profile
其他地方,但我找不到它。
我该如何解决这个问题?
解决方案
改为使用导出的函数
如果您创建导出函数而不是别名,则它将可用于从导出它的 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 中不起作用的回答