LoginSignup
173
181

More than 5 years have passed since last update.

[Linux]環境変数の読み込み順番

Posted at

Linuxの環境変数の読み込み順番について調査してみました。

Linux上コマンドが使える理由は何だ?
それは、様々なディレクトリにコマンドが保存されているからです。

Linuxコマンドが使える理由

/bin 基本コマンド
/sbin 管理者用コマンド
/usr/bin アプリケーションで利用する基本コマンド
/usr/sbin アプリケーションで利用する管理者用コマンド
/usr/local/bin 追加したソフトやパッケージ用のコマンド

確認してみました。
/bin
image

/usr/bin
image

/usr/local/bin
image

/sbin
/usr/sbin 
はroot権限がないので、、確認できなかったです。
すみません。。
でも、とりあえずコマンドがディレクトリに保存されているのは
確認できました。

それなら、/bin/???? , /usr/bin/??? , /usr/local/bin/???
のようにパスを指定する必要は?
ないですね。
普段パスを指定しなくコマンドが使えた理由は
ログインの時にコマンドへのパスが記録された設定を読み込んでいるからです。

環境変数の読み込み順番

今からはこの設定ファイルを読み込む順番についてみてみましょう
1. /etc/profile
2. ~/.bash_profile 
  上のファイルがなければ
   2-1. ~/.bash_login
   2-2. ~/.profile
3. ~/.bashrc
4. /etc/bashrc
5. bash実行

設定ファイルを読む順番は上のようになっています。
上から説明すると
1. /etc/profile
このファイルはログイン時に読み込む全てのユーザ共通の設定が書いています。

  1. ~/.bash_profile 
    その後ユーザの[home]ディレクトリにある「.bash_profile 」を
    読み込みます。
      上のファイルがなければ下の順に読み込めます。
       2-1. ~/.bash_login
       2-2. ~/.profile
    ログインの時一回だけ読み込みます。

  2. ~/.bashrc
    このファイルはbashが読みこまれる度に更新されます。
    設定を変更する時は[bash]とコマンドを打って設定ファイルへの更新が反映されます。

  3. /etc/bashrc
    このファイルはシステム全体の関数とエイリアスに関する設定が記録されています。ここでデフォルトのプロンプトを決める「PS1」の設定などをしています。

「PS1」は何?
プロンプトの設定はシェル変数(環境変数)によって定義されます。(上の話と一緒)
bashの場合PS1という名前のシェル変数です。なぜPS1なのかは、
マニュアルによると”The primary prompt string”
つまりプライマリプロンプト文からです。
"The secondary prompt string"という2番目のプロンプトを指すPS2もあります。

  1. bash実行

参考ページ

173
181
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
173
181