デフォルトでは、xterm
はインタラクティブシェルを開始します。ただし、インタラクティブを開始するように構成することもできますlogin-Shell。
つまり、xterm
を開始すると、ssh/virtual console/suを介してログインするのと同じ種類のシェルを取得できます。
Xtermでlogin-Shellを構成することの長所/短所は何ですか?
私は考えることができます:
uptime
、w
、last
などは、開いているxterm
と同じ数のユーザーを報告します。 (利点?)bash
ソースのみ.login
、.profile
、/etc/profile.d
login-Shellとして開始した場合zsh
には、起動時にlogin-Shellとして読み取る同様のファイルがありますが、私のシステムでは、デフォルトで空です。関連するxterm
のマニュアルページセクション:
-ls This option indicates that the Shell that is started in the xterm window will be a login Shell (i.e., the first character of argv[0] will be a dash, indicating to the Shell that it should read the user's .login or .profile).
リソースもあります:
loginShell (class LoginShell) Specifies whether or not the Shell to be run in the window should be started as a login Shell. The default is “false.”
ターミナルでログインシェルを実行すると、そのプログラムがセッションごとに1回だけ実行されると予想される場合でも、.profile
に配置したすべてのプログラムが実行されます(たとえば、ssh-agent
およびその他のキーリング)。ログインシェルを実行すると、セッションまたは端末の親プロセスで設定した環境変数が上書きされます。
ターミナルでログインシェルを実行する人々が経験する最大の問題は、通常、GUIにログインするときに環境変数を設定しないことです。したがって、これの欠点は、環境変数が端末から開始されたプログラムでのみ使用可能であり、GUIを介して直接開始されたプログラムからは使用できないことです。ログイン時に環境変数を設定する場合、各端末で環境変数を再度設定することは、せいぜい無意味であり、上記のように問題になることがあります。
。bashrcと.bash_profileの違い 、 。bashrcの代替 、およびスタックエクスチェンジで見たかなりの数の質問も参照してください。セッションごとに環境変数を設定します。