LinuxでPATH環境変数がどのように機能するかは混乱しています。私はLinux Mint 15ユーザーです。
/home/.bashrc
まず、ファイルの編集と実行方法について読みましたがPATH=$PATH:/directory
、インストールされているすべてのソフトウェアがシェルのどこからでもアクセスできるように
管理されているいくつかのパスエントリについても学びました。/etc/bash.bashrc
/usr/local/bin
Linuxでは、パス変数はどのように機能し、どこに配置する必要がありますか?
ベストアンサー1
ここで理解すべき基本的な概念は、PATHが複数の場所で定義できることです。 @demureが彼の答えで説明したようPATH=$PATH:/new/dir
に次へ追加 /new_dir
到着すると$PATH
不明なことが判明しました$PATH
。
ファイルが多すぎる理由の1つは、シェルの概念login
に関連しています。non-login
バラよりここ良いまとめです。以下はbashのマニュアルページからのものです(ハイライト):
bashが--loginオプションを使用して対話型ログインシェルまたは非対話型シェルとして呼び出されると、ファイルが存在する場合は、まず/etc/profileファイルからコマンドを読み取り、実行します。ファイルを読み取ったら、~/.bash_profile、~/.bash_login、~/.profile を順番に探します。、最初の既存および読み取り可能なコマンドからコマンドを読み取り、実行します。この動作は、シェルの起動時に --noprofile オプションを使用して無効にできます。
初めてシステムにログインすると起動します。ログインシェルなので、bashは上記のファイルを読み込みます。ほとんどの展開には、すべてのユーザーに適用する変更を適用する必要があるシステム全体$PATH
(すべてのユーザーに適用)設定があります。/etc/profile
これは私のDebianにあります:
PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
ログイン後に端末を開くと起動します。対話型、非ログインシェル。これについては、次のようにman bash
話す必要があります。
When an interactive shell that is not a login shell
is started, bash reads and executes commands from
/etc/bash.bashrc and ~/.bashrc, if these files exist.
したがって、新しい端末を開くたびにこれらのファイルを読みます。最後の $PATH は、すべてのファイルの値の組み合わせです。一般的なシナリオでは、グラフィカルログインマネージャを使用してログインし、新しいセッションを開始します。この時点で、コンテンツは各ファイルで定義されてい$PATH
ます。profile
端末を開くとインタラクティブシェルにあり、bashrc
内容が$PATH
。
全体的に、あなたが本当に知っておくべきことは$PATH
編集できるということです$HOME/.profile
。