簡単な方法は、タイムマシンを発明し、シェルスタートアップファイルを考案したさまざまな人々を訪問して、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
。