/ etc / profile vs〜/ .profile


13

Ubuntu 12.04.1 LTSを実行します。そして、プロファイルファイルをロードするための順序/優先順位がわかりません。システムを起動し、GUIを使用してログインすると、どのファイルがロードされますか?なぜ?ログインシェルを実行するとどうなりますか?同じでしょうか?実際には~/.profile、システムが起動したときにロードされない理由がわかりません。ここに表示されるはずです。

https://help.ubuntu.com/community/EnvironmentVariables


〜/ .profileがロードされているかどうかをどのようにテストしていますか?
アンドレアコルベリーニ

環境変数は、〜/ .profileファイルに更新されますがあります
sunprophit

回答:


3

すべてのファイルで変数を定義できます。

ORDER=${ORDER}+"/etc/profile"

それぞれ

ORDER=${ORDER}+"~/.profile"

そして、実行する

echo ${ORDER}

確認するには、何が関係し、どの順序で行われたのか。もちろん、見逃した別のスクリプトがあったとしても、それはわかりません。

したがって、言及された1つのソースが表示されている場合は、そのスクリプトを読んで、あるスクリプトが別のスクリプトをソースしているかどうかを調べ、これらも含めてください。

/etc/bash.bashrcと〜/ .bashrcと〜/ .bash_login、および/ etc / defaultからのものが思い浮かびます。


うーん、$ ORDERは空です。つまり、どれもロードされていません。
sunprophit

おそらく構文エラーが原因で、$ ORDERが空だった理由がわかりません。ダッシュとバッシュの違いについてはあまり知りません。私はあなたに答えを正しいものとしてマークしますが、それは問題がどこにあるかを知るのに役立ちましたので。
sunprophit

7

それはすべて、ログインしようとしているユーザーに依存します。グローバル/etc/profileファイルはすべてのユーザーに対してロードさますが、それ~/.profileはユーザーに対してのみロードされます。

~現在のユーザーのホームディレクトリを指します。したがって、それを入れて/home/user-a/.profileログインするuser-a場合、グローバルとそのユーザー固有のファイルの両方が(この順序で)ロードされますがuser-b.profileファイルなしでログインする場合は、グローバルなファイルのみがロードされます。


現在のユーザーのプロファイル(〜/ .profile)には、環境変数を更新する部分があります。別のプロファイルにはないということです。このユーザーのプロファイルです。しかし、プロファイルの読み込みをテストする@user_unknownソリューションを試しましたが、どれも読み込まれていないようです。
sunprophit

0

両方をロードし、〜/ .profileを最後にロードする必要があります(つまり、優先順位があることを意味します)。


その後、何が起こっているのか分かりません。ターミナルで明示的に実行するとロードされます。ログイン中に問題が発生し、結果として〜/ .profileがロードされない可能性がありますが、ターミナルにはこれらの問題はありません。システムがロードしようとしたかどうかを確認できますか?
sunprophit

0

それは私のせいです。〜/ .profileに[[some_test]]があり、bashで良好に動作しますが、ダッシュはセッション開始時にpre_session_creation / post_session_creationコマンドを実行し、ダッシュは[[キーワードを認識しません。したがって、すべてがロードされましたが、エラーで停止しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.