Linux bashでログイン時に読み込まれるファイル

Linuxのbash設定ファイルについてです。

目次

サンプル ログイン時にファイルが読み込まれる順番
  1./etc/profile
2.~/.bash_profile
  3.~/.bashrc
4./etc/bashrc
  ~/.bash_logout
ログイン時にhello worldの文字を表示するサンプル

ログイン時にファイルが読み込まれる順番

  1. /etc/profile
  2. ~/.bash_profile
  3. ~/.bashrc  (~/.bash_profileの中に~/.bashrcを読み込む記述あり)
  4. /etc/bashrc  (~/.bashrcの中に/etc/bashrcを読み込む記述あり)

ログアウト時に読み込まれるファイル

  1. ~/.bash_logout

 

記号の意味

~/.bash_profile , ~/.bashrc , ~/.bash_logout
  1. 「~/」 はユーザーのホームディレクトリを表します。
    ログインユーザがtestの場合のホームディレクトリは/home/testです。
    ホームディレクトリに移動する場合は、cd ~で移動できます。

  2. ファイルの前にあるドット(.)は隠しファイルを表します。
    lsコマンドでaをつけると表示されます。

       

      1./etc/profile

      ログイン時に、読み込まれます。全ユーザーに適用されます。

       

      2.~/.bash_profile

      ログイン時に読み込まれます。ログインユーザーのみに設定されます。

      ユーザー固有の環境変数と起動プログラムを記述します。

      .bash_profileのコード

      # .bash_profile
      
      # Get the aliases and functions
      if [ -f ~/.bashrc ]; then
              . ~/.bashrc
      fi
      
      # User specific environment and startup programs
      
      PATH=$PATH:$HOME/bin
      
      export PATH

      4行目から6行目に ~/.bashrcがあれば ~/.bashrcを読み込むと記述されています。

      8行目からは、ユーザー固有の環境変数と起動プログラムを記述します。

      10行目は、PATHの値を設定しています。コロン(:)区切りです。$HOMEは、testユーザであれば/home/testになります。
      12行目は、exportコマンドで環境変数のPATHを設定しています。
      →コマンド実行時に、指定されたPATHにその実行ファイルを検索しにいきます。

       

      3.~/.bashrc

      ユーザ固有のエイリアスと関数を記述します。

      .bash_profileの中に~/.bashrcを読み込む記述があるためログイン時に読み込まれます。

      上記箇所をコメントにすると読み込まれません。

      bashコマンドでbashを起動すると~/.bashrcが読み込まれます。

      .bashrcのコード

      # .bashrc
      
      # Source global definitions
      if [ -f /etc/bashrc ]; then
              . /etc/bashrc
      fi
      
      # User specific aliases and functions

      4行目から6行目は、 /etc/bashrcがあれば/etc/bashrcを読み込みます。
      8行目からは、ユーザ固有のエイリアスと関数を記述します。

       

      4./etc/bashrc

      プロンプトの設定等を行っています。

      以下はプロンプトです。

      以下は、/etc/bashrcの読み込みをコメントにし、プロンプトの設定がない状態です。

       

      ~/.bash_logout

      ログアウトする時に読み込まれます。

       

      ログイン時にhello worldの文字を表示するサンプル

      ログイン時に文字列を表示するようにします。

      viで~/.bash_profileを開きます。

      # .bash_profile
      
      # Get the aliases and functions
      if [ -f ~/.bashrc ]; then
              . ~/.bashrc
      fi
      
      # User specific environment and startup programs
      
      PATH=$PATH:$HOME/.local/bin:$HOME/bin
      
      export PATH
      echo "hello world"

      13行目を追記しました。

      ログインすると以下のように表示されます。

      関連の記事

      Linux サービスの自動起動とランレベル(chkconfig)
      Linux bashの主な機能

      △上に戻る