522 Stimmen

Wie erhalte ich den Benutzernamen des aktuellen Benutzers in Bash?

Wie kann ich den Benutzernamen des aktuellen Benutzers in Bash erhalten? Verwende ich whoami?

741voto

SethMMorton Punkte 40575

Geben Sie auf der Befehlszeile ein:

whoami

oder

echo "$USER"

128voto

Brett Punkte 5111

Ein Alternativum zu whoami ist id -u -n.

id -u wird die Benutzerkennung zurückgeben (z.B. 0 für root).

44voto

Devin R Punkte 742

Verwenden Sie den Standard-Unix/Linux/BSD/MacOS-Befehl logname, um den angemeldeten Benutzer abzurufen. Dies ignoriert die Umgebung sowie sudo, da diese unzuverlässige Berichterstatter sind. Es druckt immer den Namen des angemeldeten Benutzers aus und beendet dann. Dieser Befehl existiert seit etwa 1981.

My-Mac:~ devin$ logname
devin
My-Mac:~ devin$ sudo logname
Passwort:
devin
My-Mac:~ devin$ sudo su -
My-Mac:~ root# logname
devin
My-Mac:~ root# echo $USER
root

21voto

Elvenfighter Punkte 261

Ein Hack, den ich bei Solaris 9 und Linux verwendet habe und der für beide gut funktioniert:

ps -o user= -p $$ | awk '{print $1}'

Dieser Abschnitt gibt den Namen des Benutzers mit der aktuellen EUID aus.

HINWEIS: Sie benötigen hier Bash als Interpreter.

Auf Solaris gibt es Probleme mit den oben beschriebenen Methoden:

  • id akzeptiert die Parameter -u und -n nicht (Sie müssen also die Ausgabe analysieren)
  • whoami existiert nicht (standardmäßig)
  • who am I gibt den Besitzer des aktuellen Terminals aus (ignoriert EUID)
  • Die Variable $USER wird erst korrekt gesetzt, nachdem die Profildateien gelesen wurden (zum Beispiel /etc/profile)

12voto

Sireesh Yarlagadda Punkte 11586

Zwei Befehle:

  1. id gibt die Benutzer-ID zusammen mit den Gruppen aus. Format: uid=Benutzerzahl(Benutzername) ...

  2. whoami gibt den aktuellen Benutzernamen aus

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X