GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ist Gnome Terminal eine Art Non-Login-Shell?

Gemäß der Antwort auf Was sind Login- und Nicht-Login-Shells? Unter Ask Ubuntu ist GNOME Terminal eine Art Nicht-Login-Shell.
Wie in dem ausgezeichneten Buch A Practical Guide to Fedora and Red Hat Enterprise Linux, 6th Edition ausgeführt :

eine interaktive Shell ohne Anmeldung führt Befehle in der Datei ~/.bashrc aus. Die Standarddatei ~/.bashrc ruft /etc/bashrc.

auf

Als Ergebnis /etc/profile wird nicht in einer Nicht-Login-Shell verarbeitet. Ich habe jedoch festgestellt, dass ich den Java-Home-Pfad an den PATH angehängt habe
Variable und wenn ich GNOME Terminal verwende und den Befehl java ausführe , alles geht gut. Auch der Wert von PATH Variable ist derselbe wie der Wert, den ich in /etc/profile definiert habe .

Angesichts der oben genannten Tatsachen gibt es einen Konflikt, was ist falsch an meinem Verständnis?

Akzeptierte Antwort:

Wenn Sie sich über einen Display-Manager oder in einem tty bei Ihrer x-Sitzung anmelden, /etc/profile wird (normalerweise – anscheinend ist es in Ihrem Fall der Fall, obwohl einige grafische Shells es nicht lesen) von Ihrem Shell-Programm bezogen. Danach eine lokale Datei (ich nehme an, Sie verwenden hier bash) ~/.bash_profile , ~/.bash_login oder ~/.profile wird bezogen, und alle hier definierten Umgebungsvariablen überschreiben /etc/profile für den aktuellen Benutzer. Diese Umgebung wird geerbt durch jede Shell, die Sie innerhalb der Sitzung öffnen. Aus diesem Grund können wir in diesen Dateien Umgebungsvariablen wie Ihren PATH definieren.

Wenn Sie gnome-terminal öffnen, ja, wird standardmäßig eine Nicht-Login-Shell gestartet, aber es erbt Ihre Benutzerumgebung, die bereits von der Login-Shell oder der grafischen Shell geladen wurde. Seit ~/.bashrc beim Starten einer interaktiven Shell (z. B. beim Öffnen von gnome-terminal) abgerufen wird, kann es verwendet werden, um einige zu überschreiben Elemente der Umgebung (z. B. PS1).

(gnome-terminal selbst ist eine Anwendung, keine Shell)


Linux
  1. Unterschied zwischen Login-Shell und Nicht-Login-Shell?

  2. Einfärben Ihrer Terminal- und Shell-Umgebung?

  3. Löschen der Shell-Konsole?

  4. Hintergrundfarbe des Gnome-Terminals im laufenden Betrieb ändern?

  5. Führen Sie ein Shell-Skript im neuen Terminal vom aktuellen Terminal aus

So verwenden Sie Indikator-Applets in der GNOME-Shell

So verschieben Sie GNOME-Shell-Benachrichtigungen

So ändern Sie die GNOME-Shell-Schriftart

So installieren Sie Vanilla GNOME Shell unter Ubuntu 17.10

Wie man GNOME Shell 3.16 thematisiert (in fünf einfachen Schritten)

So verwenden Sie GNOME-Shell-Erweiterungen [Vollständige Anleitung]