wer, whoami und "wer bin ich"


7

Ich kann die Befehle verstehen whound whoami, aber was genau passiert, wenn ich tippe:

who am i

und

who am

Ich bin auf Ubuntu, nichts passiert nach ihnen!

Warum antwortet Linux / UNIX nicht mit einer Fehlermeldung (etwas in der Zeile "unbekannte Argumente" für who) oder nur mit der Ausgabe von who?

Antworten:


5

Wenn whoaminichts ausgegeben wird, zeigt dies wahrscheinlich an, dass Ihre Shell keine Login-Shell ist. Es ist kein Benutzer mit whoder Standardeingabe verknüpft , daher whowird nichts ausgegeben. Dies ist kein Fehler, daher wird keine Fehlermeldung ausgegeben.

Wenn du läufst

xterm -ls

Um ein Terminal mit einer Login-Shell zu öffnen, sollten Sie das finden whoamiund gut who am ifunktionieren. Gleiches gilt für eine Remote-Anmeldung mit zB SSH.


Sie können den loginBefehl auch vor der Ausgabe verwenden whoami, who am ioder who mom likesusw., es scheint viel mehr Variationen in den Argumenten zu geben ;-).
Thecarpy

4

Wenn Sie Folgendes eingeben:

$ who am i

In einer Shell (einer beliebigen Shell) wird das erste Wort ( who) als "Befehl" analysiert.
Also, wer im PATH gesucht wird und nachdem es gefunden wurde, werden alle anderen Parameter / Wörter / Argumente dem Befehl als Argumente übergeben.

Es ist die Aufgabe who, die Argumente zu interpretieren.

In der Tat, unter Linux, das Handbuch, wer dies über 'bin ich' zu sagen hat:

Wenn ARG1 ARG2 gegeben ist, wird -m vermutet: 'bin ich' oder 'Mutter mag' sind üblich.

Daher whowird nur "Hostname und Benutzer, die mit stdin verknüpft sind" ( -mOption) gedruckt .

Wenn stdin kein Benutzer zugeordnet ist, wird nichts gedruckt.


1

Replikation nicht möglich:

ghoti@home:~
$ who am i
ghoti    pts/0        2017-07-10 08:33 (38.142.104.170)
ghoti@home:~
$ cat /etc/issue
Ubuntu 16.04.2 LTS \n \l
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.