Führen Sie einige exit
Befehle aus. Sie su root
haben eine Subshell gestartet, in der Sie root sind, und Sie haben su user
eine andere gestartet. Durch das Tippen exit
werden diese Subshells beendet und Sie werden wieder an den Ausgangspunkt zurückkehren - eine Ebene tief.
Linux Benutzername @ Server verschwindet nach dem Anmelden als root
Auf meinem Linux-Server habe ich mich als root-Benutzer angemeldet, um auf einige Dateien zuzugreifen: su root ... Nachdem ich die Dateien überprüft hatte, meldete ich mich wieder als mein Hauptbenutzer su Benutzername an . In meinem Terminalfenster steht jetzt server ~: anstelle von username @ server ~: links von der Kommandozeile. Gibt es eine Möglichkeit, wie ich das wieder normalisieren kann?
6 Antworten auf die Frage
- Beliebte
- Neu
- Mit Kommentaren
- Aktiv
Sie müssen nur die Aufforderung ändern. Sie können den folgenden Befehl verwenden:
export PS1 = "\ u @ \ h \ w:"
Ich persönlich bevorzuge das Folgende als meine Aufforderung, aber das ist nur ich:
export PS1 = "[\ u @ \ h \ w] \ $"
Sie können die Änderung Ihrer Eingabeaufforderung verhindern, indem Sie die Anweisung den entsprechenden bashrc-Dateien hinzufügen. Siehe auch Bash Shell PS1: 10 - Beispiele für eine Linux-Eingabeaufforderung wie Angelina Jolie für weitere Informationen zu PS1.
su
wechselt die Benutzer durch das Laichen einer neuen (Sub-) Shell. Wenn Sie sich also angemeldet haben, haben Sie eine Shell gestartet. Mit dem ersten su
root haben Sie eine Subshell als root gestartet. Der nächste su
neben Ihrem Benutzer startete eine weitere Subshell. Beachten Sie, dass in diesem Moment drei Shells laufen. Anstatt su
Ihren Benutzer von der Rootshell zu erreichen, exit
werden Sie Ihre Probleme lösen.
Wenn Sie pstree
installiert haben, pstree -h
wird Ihnen eine grafische Darstellung der Vorgänge angezeigt.
Ihre Eingabeaufforderung scheint in der Regel durch eine Ihrer Shell-Startdateien festgelegt zu sein, die nicht ausgeführt wird, wenn Sie su
von root zu Ihrem Benutzer wechseln. Wenn Sie bash verwenden, kann es sein, dass Sie man bash
im Abschnitt INVOCATION aufklären. Es gibt mehrere Startdateien, die von bash gelesen werden können, einschließlich:
/etc/profile
~/.bash_profile
~/.bash_login
~/.profile
~/.bashrc
Die PS1
Umgebungsvariable ist nur eine Umgebungsvariable und kann abhängig von der Kombination der oben genannten Dateien gesetzt werden.
Der su
Befehl verfügt über einen -l
(oder --login
) Schalter, der einfach so gekürzt werden kann, -
dass die neue Shell eine Login-Shell wird. Das ist wahrscheinlich was Sie wollen:
su - david
Ich benutze immer su
diese Option.
Wenn dies eine Bash-Shell ist, versuchen Sie Folgendes:
source ~/.bashrc
Wenn das nicht funktioniert, laufen Sie echo $PS1
und sehen, was sich geändert hat.
su
selbst erstellt keine neue Sitzung der Shell. Deshalb wird die Shell nicht wie üblich eingerichtet. jedoch,
su -
startet eine neue Login-Sitzung
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
ThunderBird / Lichtsynchronisation mit SE k770i
-
4
Linux-Dateisystem
-
6
Vollbild-Flash langsam in KDE 4