私の友人と私はRHCSAを一緒に働いていましたが、私たちは両方とも完全に理解していないことを偶然見つけました。これは私たちがそれがうまくいくと思ってそれが正しいかどうか疑問に思う方法です。
テキストベースのインタラクティブログインを使用してログインすると、シェルはまたは/etc/profile
(~/.bash_profile
Debianの.profile?)から設定を取得します。これが私たちが混乱しているところです。このセッションで作成されたサブシェルは、親シェルと同じ設定を持っていますか(たとえば、/etc/profile
andで何を取得しますか~/.bash_profile
?)、またはデフォルトですべての設定を忘れて、/etc/bashrc
andから継承しますか~/.bashrc
?
また、
X Windows経由でログインするとシェルですか?
自分だけの特別な設定を持つセッションマネージャですか?それとも/etc/profileから継承されますか?
X WindowsでGUIアプリケーションを開くと、どこで権限が継承されますか?
答え1
私はこの質問が理解に役立つと信じています。ログインシェルと非ログインシェルの違いは何ですか?
私の経験に基づいて答えます。 Bash などの対話型ログインシェルを使用している場合は、ログインすると /source ~/.bash_profile が読み込まれます。そのセッションで開くすべての新しいサブシェルは、ソース〜/ .bashrcに加えてこれらの設定を継承します。これは通常、人々が.bash_profileに環境変数を置き、エイリアスやプロンプトのテーマなどの他のものを.bashrcに入れる理由です。
ただし、たとえばディスプレイマネージャを使用してログインする場合。 lightdm、一度ログインすると、.bash_profileを取得できません。代わりに、通常 ~/.xprofile を読み込んで実行するすべての端末は ~/.bashrc のみをインポートします (この場合、 ~/.bash_profile はインポートされません)。
すべての環境変数とグローバル設定を含む ~/.profile または ~/.env ファイルを作成し、~/.bash_profile、~/.xprofile、~/.zprofile などからファイルをインポートしてログイン間を移動します.シェルマネージャを切り替えたり表示したりする方が簡単です。その後、shell / x関連のエントリを独自のファイルに配置できます。たとえば、私の~/.xprofileはとても簡単です。
source ~/.env
volumeicon &