ターミナルだけでなくgnomeで使われる.bashrc


1

私は最近、ソフトウェア開発のためにAnaconda Pythonディストリビューションを使い始めました、そして私がそれを端末で実行するとき、それがデフォルトのPythonディストリビューションになりたいです。これを行うために、私はAnacondaバイナリディレクトリを私の.bashrcファイルに追加しました。

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

これはうまくいきます。

しかし、今では私のGnomeデスクトップ環境では特定のツールが機能しません。 gnome-tweak-toolを実行することができず、自分が割り当てたキーボードショートカットを使って端末を開くこともできません。

私はこれらの操作が私のAnacondaインストールを使用し、オリジナルを使用しないという事実にこの問題を突き止めました。

では、どうすればこの問題を解決できますか?何かを実行する方法はありますか のみ ターミナルセッションの開始時で、私のGNOME環境全体ではありませんか?

回答:


1

その方法の1つは、パスを変更するのではなく、pythonコマンドを別名でanacondaを使用することです。パスを変更する代わりに、次を追加してみてください。

alias python="/opt/anaconda"

あなたの.bashrcファイルに。これにより、anacondaは端末に "python"とタイプしたときにのみ実行され、他の何かがそれを使用しようとしたときには実行されないようになります。 (私が間違っている場合は誰かが私を修正しますが、これでうまくいくはずです)


0

ここで探しているのは インタラクティブな シェル。ユーザーからの入力を読み取り、その出力を端末に表示します。これは対照的です 非インタラクティブ ユーザーの入力なしにスクリプトからコマンドを実行するシェル(プログラム、スクリプト、またはデスクトップ環境)はシェルを非対話式に実行します。

あなたに .bashrc シェルがインタラクティブであるかどうかを簡単にテストすることができます(bashではそれは持っています) $- に設定 i;あなたはまたテストすることができます $PS1 対話シェルでのみコマンドを実行します。

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

Gnomeのようなプログラムや環境は上記の行を無視します。なぜならそれらは非対話的にbashを実行するからです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.