Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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実行

参考ページ

http://oxynotes.com/?p=5418

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away