【问题标题】:bash alias in conda environmentconda环境中的bash别名
【发布时间】:2019-03-09 03:24:12
【问题描述】:

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

alias workings='cd desktop/working_folder/'

所以每次我在Terminal 中输入workings 时,它都会cd desktop/working_folder/

但这在Terminal 中的conda 中不起作用:

bash:工作原理:找不到命令

我相信conda 的情况,.bash_profile 在其他地方,但我找不到它。

我该如何解决这个问题?

【问题讨论】:

    标签: bash conda


    【解决方案1】:

    改用导出函数

    如果您创建一个导出函数而不是别名,则它将可用于从导出它的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's answerAlias defined in .bash_profile not working in OS X

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-11
      • 2018-01-31
      • 2017-07-03
      • 1970-01-01
      相关资源
      最近更新 更多