Versuch, den Befehl „w“ in macOS zu verstehen

Versuch, den Befehl „w“ in macOS zu verstehen

Ich lerne gerade einige UNIX-Befehle und stoße auf mehrere ungeklärte Fragen. Danke für Ihre Antworten.

  1. Wenn ich den Befehl wvom Terminal aus ausführe, erhalte ich einige der im Bild unten gezeigten Meldungen. Ich weiß, dass s000es für das Terminal steht, in das ich den Befehl eingegeben habe w. Aber ich bin verwirrt über das TTY, dessen Name lautet consoleund mit dem ich mich angeblich beim System angemeldet habe. Und es hieß, dass es consoleeinige Zeit im Leerlauf war. Kann ich auf umschalten, consoleum dieses TTY zu aktivieren, damit es nicht mehr im Leerlauf ist?

  2. 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 consoleder Gast ausgeführt hat. Wie kann ich den Gast vollständig beenden, ohne den Computer neu zu starten? Ich kann den Bash-Prozess nicht beenden console. 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 habe w.

  3. Dieses Problem tritt auch auf Linux-Systemen wie Ubuntu 14.04 auf, wobei letzteres die consoleZahl mit 0oder benennt 1. Ich frage mich, was 0 oder 1 in der TTY-Spalte bedeuten. Aber ich bin mir sicher, dass sie mit eine ähnliche Bedeutung haben console.

hier ist das Bild

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 lsund 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 wBefehl 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 wmö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 , wum Ihnen einen Überblick darüber zu geben, wonach Sie in der psAusgabe suchen müssen. Glauben Sie nicht blind alles, wwas 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 wimmer 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.

verwandte Informationen