Linuxでは、パス環境変数はどのように機能しますか?

Linuxでは、パス環境変数はどのように機能しますか?

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

おすすめ記事