xterm mit Login-Shell ausführen oder nicht?

xterm mit Login-Shell ausführen oder nicht?

Standardmäßig xtermstartet eine interaktive Shell. Sie können sie aber auch so konfigurieren, dass eine interaktiveLogin-Shell.

Das bedeutet, dass Sie beim Starten xtermdieselbe Art von Shell erhalten wie bei der Anmeldung über SSH/virtuelle Konsole/SU.

Welche Vorteile/Nachteile bietet die Konfiguration einesLogin-Shellin xterm?

Mir fällt da ein:

  • uptime, w, lastusw. melden Sie so viele Benutzer, wie xterm's geöffnet sind. (Vorteil?)
  • bashnur Quellen .login, .profile, /etc/profile.dwenn gestartet alsLogin-Shell
  • zshhat ähnliche Dateien, die es liest, wenn es gestartet wird alsLogin-Shell- aber auf meinem System sind sie standardmäßig leer

Zugehöriger xtermManpage-Abschnitt:

   -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).

Es gibt auch eine Ressource:

  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.”

Antwort1

Wenn Sie eine Login-Shell im Terminal ausführen, wird jedes Programm ausgeführt, das Sie in Ihr eingeben .profile, auch wenn Sie erwarten, dass dieses Programm nur einmal pro Sitzung ausgeführt wird (z. B. ssh-agentund andere Schlüsselbunde). Wenn Sie eine Login-Shell ausführen, werden Umgebungsvariablen überschrieben, die Sie in Ihrer Sitzung oder im übergeordneten Prozess des Terminals festgelegt haben.

Das größte Problem, das Benutzer haben, die eine Login-Shell in Terminals ausführen, ist, dass sie ihre Umgebungsvariablen normalerweise nicht festlegen, wenn sie sich bei der GUI anmelden. Der Nachteil dabei ist, dass die Umgebungsvariablen somit nur in Programmen verfügbar sind, die von einem Terminal aus gestartet werden, nicht in Programmen, die direkt über die GUI gestartet werden. Wenn Sie Ihre Umgebungsvariablen beim Anmelden festlegen, ist es bestenfalls sinnlos, sie in jedem Terminal erneut festzulegen, und manchmal ist es ein Problem, wie oben gezeigt.

Siehe auchUnterschied zwischen .bashrc und .bash_profile,Alternative zu .bashrc, und ich habe auf Stack Exchange einige Fragen gesehen, die hätten vermieden werden können, wenn der Fragesteller pro Sitzung Umgebungsvariablen festgelegt hätte.

verwandte Informationen