Ich lerne gerade einige UNIX-Befehle und stoße auf mehrere ungeklärte Fragen. Danke für Ihre Antworten.
Wenn ich den Befehl
w
vom Terminal aus ausführe, erhalte ich einige der im Bild unten gezeigten Meldungen. Ich weiß, dasss000
es für das Terminal steht, in das ich den Befehl eingegeben habew
. Aber ich bin verwirrt über das TTY, dessen Name lautetconsole
und mit dem ich mich angeblich beim System angemeldet habe. Und es hieß, dass esconsole
einige Zeit im Leerlauf war. Kann ich auf umschalten,console
um dieses TTY zu aktivieren, damit es nicht mehr im Leerlauf ist?Ich habe auch ein weiteres Experiment durchgeführt, bei dem ich versucht habe, den Gastbenutzer, der sich angemeldet hat, rauszuwerfen. Ich wusste, dass ich den Bash-Prozess beenden kann, den der Gast ausgeführt hat, aber irgendwie habe ich ein Problem damit, den Bash-Prozess zu beenden, den
console
der Gast ausgeführt hat. Wie kann ich den Gast vollständig beenden, ohne den Computer neu zu starten? Ich kann den Bash-Prozess nicht beendenconsole
. Die Ursache dieses Problems ist so ziemlich dieselbe wie die des ersten: Wofür steht „Konsole“? Es steht definitiv nicht für das Terminal, in das ich den Befehl eingegeben habew
.Dieses Problem tritt auch auf Linux-Systemen wie Ubuntu 14.04 auf, wobei letzteres die
console
Zahl mit0
oder benennt1
. Ich frage mich, was 0 oder 1 in der TTY-Spalte bedeuten. Aber ich bin mir sicher, dass sie mit eine ähnliche Bedeutung habenconsole
.
Antwort1
Ich kenne mich mit macOS nicht aus, aber ich gehe davon aus, dass die Konzepte denen von Linux ziemlich ähnlich sind. Das ist zwar etwas vereinfacht, aber im Grunde bezieht sich die „Konsole“ in diesem Zusammenhang auf den gesamten Computer. Oder, um etwas genauer zu sein, auf das Display und die menschlichen Eingabegeräte (Tastatur, Zeigegerät(e) usw.) (Netzwerkanmeldungen sind von der „Konsole“ ausgeschlossen.)
Wenn Sie sich bei Ihrem Computer anmelden (lokal, nicht über das Netzwerk), melden Sie sich bei der Konsole an.
Jetzt sind Sie offensichtlich mit Terminals vertraut – Fenstern, in denen Sie Befehle wie ls
und ausführen können w
. Wenn Sie sich bei der Konsole anmelden, wird automatisch ein Befehl (oder eine Gruppe von Befehlen) ausgeführt, der Ihnen die gewohnte Fensteroberfläche bietet. Bei einigen Betriebssystemen ist der Mechanismus, mit dem dies geschieht, sichtbar und manchmal sogar anpassbar; bei anderen geschieht dies vollständig „unter der Haube“.
Da die Konsole außer dem Fenstersystem selbst keine Befehle ausführt, scheint sie im Leerlauf zu sein. Bei den meisten Betriebssystemen (und ich gehe davon aus, dass macOS eines davon ist) besteht die einzige Möglichkeit, zur Konsole zu wechseln, darin, das Fenstersystem zu verlassen – aber dadurch kehren Sie zur Konsole zurück, die Sie dann automatisch abmeldet.
Und es gibt noch ein weiteres Problem:
- Der
w
Befehl liest eine Systemdatei, formatiert die Daten übersichtlich und schreibt sie in die Standardausgabe. - Ein Eintrag wird in die Datei geschrieben, wenn sich jemand an der Konsole oder über das Netzwerk anmeldet. Einige (die meisten? alle?) Systeme schreiben auch einen Eintrag, wenn der Benutzer an der Konsole ein neues Terminalfenster öffnet.
- Einträge werden normalerweise gelöscht, wenn sich ein Benutzer abmeldet oder ein Terminalfenster schließt.
- Das Schlüsselwort im obigen Punkt ist „normalerweise“. In manchen Fällen kann das Beenden eines Prozesses (insbesondere als Superuser) den Mechanismus stören, der alte Daten löscht. Daher werden
w
möglicherweise Informationen gemeldet, die nicht mehr gültig sind.
Wenn Sie nicht wissen, wie man verwendet ps
, sollten Sie es lernen. Sie können es verwendenstattdessenvon w
, aber es ist wahrscheinlich besser, sie zusammen zu verwenden. Verwenden Sie , w
um Ihnen einen Überblick darüber zu geben, wonach Sie in der ps
Ausgabe suchen müssen. Glauben Sie nicht blind alles, w
was Ihnen gesagt wird; glauben Sie nur den Informationen, die Sie mit überprüfen können ps
. Wenn Sie beispielsweise alle „Gast“-Prozesse beendet haben und w
immer noch sagen, dass „Gast“ angemeldet ist, erhalten Sie wahrscheinlich veraltete, ungültige Informationen.
Vielleicht finden SieWas ist der Unterschied zwischen Shell, Konsole und Terminal? Und Was ist der genaue Unterschied zwischen einem „Terminal“, einer „Shell“, einem „TTY“ und einer „Konsole“? eine lohnende Lektüre.