簡単な方法は、タイムマシンを発明し、シェルスタートアップファイルを考案したさまざまな人々を訪問して、3つのことを明確に区別するように指示することです。
- セッションのセットアップ。環境変数など。
- セッションの起動。つまり、コマンドラインシェルやウィンドウマネージャーの起動
startx、実行中など。
- シェルの初期化(エイリアス、プロンプト、キーバインディングなど)。
セッション対シェルを移植可能な方法で正しく取得するのはそれほど難しくありません。ログイン時の初期化は.profile(または.zprofile、または.login)、シェルの初期化は.bashrcまたはになり.zshrcます。私は以前について書いた.bash_profile、zshの対他のシェル、(主にbashの程度)の移植についての詳細、より読み込むかについて.profile。
残りの問題は、セッションのセットアップとセッションの起動を区別することです。ほとんどの場合、~/.profileログイン時に実行され、両方を兼ねることができますが、例外があります。
- ログインシェルが(t)cshまたはzshで
~/.loginあり、の~/.zprofile代わりにソースされている場合~/.profile。bashと~/.bash_profile同様ですが、これは~/.profileからのソースによって簡単に解決でき~/.bash_profileます。
- ディスプレイマネージャー(xdm、gdm、kdmなど)でログインする場合、
~/.profile読み取られるかどうかは、プログラムのバージョン、ディストリビューション(Linuxまたはそれ以外)、および選択したセッションタイプによって異なります。
- ディスプレイマネージャーに頼ってセッションを開始する場合は、
.profile環境変数を設定する必要がありますが、セッション(ウィンドウマネージャーなど)は開始しないでください。
- Xセッションの従来の構成ファイルは
~/.xsession、セッションのセットアップとセッションの起動の両方を行います。したがって、ファイルは基本的に. ~/.xsession; . ~/.xinitrc。~/.profile以前のいくつかのディストリビューションのソース~/.xsession。最新のディストリビューション~/.xsessionは、ディスプレイマネージャから「カスタム」セッションを選択した場合にのみソースとなり、そのようなセッションは常に利用できるとは限りません。
- セッションマネージャには、環境変数を設定する独自の方法がある場合があります。(これは、デスクトップ環境のオプションの部分であり、構成ファイルを介して、またはログイン時にセッションの種類を選択することによって選択します。ユーザーの下で実行されるディスプレイマネージャによって提供されるセッションスタートアップスクリプトと混同しないでください。システム全体で選択されます。はい、それは混乱です。)
要約すると、~/.profile環境変数の適切な場所です。読まれていない場合は、ソースからソースを試して~/.xsession(そしてそこからXプログラムを起動します)、システム固有の方法を探します(ディストリビューション、ディスプレイマネージャーがある場合はディスプレイマネージャー、ディスプレイマネージャーの場合はセッションタイプ、デスクトップ環境またはセッションマネージャー)。
.profileはまったくロードされていませんか、またはロケール変数を上書きする何か他のものですか?(のようないくつかの他の変数設定してみてくださいexport MACIEJ_PROFILE=yes確認してください。作るためset -xでは.profile中と後に実行されているかどうか確認するための良い方法かもしれ.profile調達にはポイントがありません、それがすべてで読んだ場合、。).profileからを.zshrc。