GNU/Linux >> Linux の 問題 >  >> Linux

パス変数がBashで設定されている場所の完全なビュー?

PATHがいくつかの場所で読んだことがあります /etc/profileで設定されます または.profile ホームディレクトリにあるファイル。

パスが設定されているのはこれらだけですか?それをもっとよく理解したい。

/etc/profile内 次のコメントが"system-wide .profile file for the Bourne shell"と言っているように、ファイル 。それは、プロファイルファイルがbashの主要な構成ファイルであることを意味しますか?

そのファイルには、PATHが表示されません。 varが設定されています。 .profile内 ホームディレクトリのファイルには次の行があります:

PATH="$HOME/bin:$PATH"

PATHがリセットされます すでに設定されている$PATHを連結しているため、見た目では $HOME/bin:の文字列 右?ただし、etc/profileの場合 および~/.profile PATHを設定する唯一のファイルです $PATHはどこですか /etc/profileで定義されていない場合は、そのコード行から取得します ?

経験豊富な人は、PATHについて幅広く詳細に説明してください。 変数?ありがとう!

承認された回答:

PATHがある場所はたくさんあります 設定できます。

login プログラムはそれをデフォルト値に設定します。このデフォルト値の構成方法は、システムによって異なります。ほとんどの組み込みLinuxシステムでは、/etc/login.defsから取得されます 、rootと他のユーザーの値が異なります。 login(1)を参照してください それが何をするかを知るためにあなたのシステムのマニュアル。

PAMを使用するシステム、特にpam_env モジュール、環境変数は、システム全体のファイル/etc/environmentで設定できます。 およびユーザーごとのファイル~/.pam_environment

次に、ログインするほとんどの方法(cronジョブは除く)は、システム全体およびユーザーごとの構成ファイルを読み取るログインシェルを実行します。これらのファイルは、PATHの値を変更できます 、通常はエントリを追加しますが、他の方法で追加することもあります。どのファイルが読み取られるかは、ログインシェルが何であるかによって異なります。 Bourne/POSIXスタイルのシェルは/etc/profileを読み取ります および~/.profile 。 Bashは/etc/profileを読み取ります 、ただし、ユーザーごとのファイルの場合、~/.bash_profileの中の最初の既存のファイルのみを読み取ります。 、~/.bash_login および~/.profile 。 Zshは/etc/zshenvを読み取ります 、~/.zshenv/etc/zprofile~/.zprofile/etc/zlogin および~/.zlogin 。多くのGUIセッションは、/etc/profileをロードするように調整します および~/.profile 、ただし、これは、ディスプレイマネージャ、デスクトップ環境またはその他のセッション起動スクリプト、および各ディストリビューションがこれらをどのように設定したかによって異なります。


Linux
  1. バッシュ‘?

  2. Inittabファイルはどこにありますか?

  3. Bashでファイルパスをどのように正規化しますか?

  1. 前回の実行時の値を保持する Bash スクリプトの変数

  2. Bash でパス変数の要素をループする

  3. $HOME 環境変数はどこに設定されていますか?

  1. 環境変数のデフォルトという用語はどこで設定されますか?

  2. tty7 の端末ビューはどこにありますか

  3. Linux:スワップ ファイルを配置する場所