~/.profile:POSIX準拠のログイン設定ファイル

.profile

~/.profileについての概要と詳細

~/.profileとは

~/.profile は、ログインシェルで読み込まれるユーザー個別の初期化ファイルの一つで、POSIX準拠のシェル(例:/bin/sh)に対応した設定ファイルです。
Bash や Dash、Zsh などのログインシェルで使われることがあり、環境変数の定義や PATH の追加、初期処理の実行などに使用されます。

読み込まれるタイミング

~/.profile は、以下のような状況で読み込まれます:

  • POSIX準拠の ログインシェル(sh/dash/zsh など)
  • Bash~/.bash_profile が存在しない場合の代替
  • GUIログインセッション(デスクトップ環境):多くのディストリビューションでは ~/.profile を読み込むように構成されている

主な用途

  • PATHの追加や環境変数の定義
  • GUIログイン時にも反映させたい共通設定
  • ~/.bashrc の読み込み(bashを併用する場合)

内容の例

# ~/.profile の例

# 環境変数の定義
export LANG=ja_JP.UTF-8
export PATH="$HOME/bin:$PATH"

# bash用の設定があれば読み込む
if [ -n "$BASH_VERSION" ] && [ -f "$HOME/.bashrc" ]; then
  . "$HOME/.bashrc"
fi

.profile と他の初期化ファイルの関係

ファイル対象読み込み条件
~/.profilesh, dash, bash, zshログインシェル(bashでは .bash_profile がなければ)
~/.bash_profilebashログインシェル
~/.bashrcbash非ログイン・対話シェル
/etc/profile全ユーザー共通ログインシェル

GUIログインとの関係

多くのLinuxディストリビューションでは、デスクトップセッション(GNOMEやKDEなど)の起動時に ~/.profile を読み込むように構成されています。これにより、Xアプリケーションでも PATH などの環境変数を正しく引き継ぐことができます。

注意点

  • ~/.bash_profile が存在すると、bashは ~/.profile を読み込みません。
  • GUIログインで環境変数を反映したい場合、~/.profile を使うのが確実です。
  • POSIX互換シェル用に記述するため、Bash固有の構文([[ ]]など)は避けるのが望ましいです。

まとめ

~/.profile は、ログインシェルで実行されるユーザー個別の環境初期化ファイルであり、Bash以外のPOSIX準拠シェルでも動作します。GUIログインとの親和性も高いため、共通の初期化処理を記述するのに適しています。複数の初期化ファイルとの使い分けを理解することで、より柔軟で安定したシェル環境を構築できます。