.bashrc 在 gnome 中使用,而不仅仅是终端

.bashrc 在 gnome 中使用,而不仅仅是终端

我最近开始使用 Anaconda Python 发行版进行软件开发,我希望它成为我在终端中运行某些程序时的默认 Python 发行版。为了做到这一点,我将 Anaconda 二进制文件目录添加到了我的 .bashrc 文件中:

export PATH="/opt/anaconda:$PATH"

这很好用。

但是,现在某些工具无法在我的 Gnome 桌面环境中使用。我无法运行 gnome-tweak-tool,也无法使用我指定的键盘快捷键打开终端。

我已经追踪到这个问题,因为这些操作现在使用我的 Anaconda 安装而不是原始安装,原始安装中安装了一些额外的库(例如“gi”)。

那么我该如何解决这个问题呢?有没有办法让事情得到执行仅有的在终端会话开始时而不是在我的整个 gnome 环境中?

答案1

一种方法是将 python 命令设置为使用 anaconda 的别名,而不是更改路径。不要更改路径,而是尝试添加:

alias python="/opt/anaconda"

到你的 .bashrc 文件。这样,anaconda 只会在你向终端输入“python”时运行,而不会在其他程序尝试使用它时运行。(如果我错了,请纠正我,但这应该有效)

答案2

你要找的单词是交互的shell,它读取用户的输入并在终端中显示输出。这与非交互式无需任何用户输入即可从脚本运行命令的 shell(程序、脚本或桌面环境以非交互方式运行 shell)。

.bashrc可以轻松测试 shell 是否是交互式的(在 bash 中它已$-设置为i;您也可以测试是否$PS1已定义),然后仅在交互式 shell 中执行您的命令:

if [[ $- == *i* ]] # Test if the shell is interactive
then
    echo "Welcome in the interactive shell"
    export PATH="/opt/anaconda:$PATH"
fi

诸如 Gnome 之类的程序和环境将忽略上面的行,因为它们以非交互方式运行 bash。

相关内容