GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Beziehungen zwischen Steuerzeichen, Signalen und Terminal?

Welche Beziehungen bestehen zwischen Steuerzeichen und Signalen? Oder sind sie nicht verwandt?

Werden Steuerzeichen von einem Terminal empfangen?

Nachdem ein Terminal ein Steuerzeichen empfangen hat, sendet das Terminal ein Signal an einen Prozess, eine der möglichen Aktionen des Terminals für das empfangene Steuerzeichen?

Zum Beispiel

In Linux beendet Strg+C in einem Terminal einen laufenden Vordergrundprozess. In ASCII ist Strg+C ein Steuerzeichen und bedeutet „Textende“.

In ASCII ist Strg+D ein Steuerzeichen, das Ende der Übertragung bedeutet. Veranlasst das Steuerzeichen das Terminal, ein Signal an einen Prozess zu senden?

Akzeptierte Antwort:

Der Terminaltreiber (Bestandteil des Betriebssystems) stellt den Zusammenhang zwischen Sonderzeichen und Signalen her. Ihre Terminaleinstellungen , z. B. mit stty , werden verwendet, um zu entscheiden, was (wenn überhaupt) mit den von Ihnen eingegebenen Zeichen geschehen soll. Sie können diese Sonderzeichen nach Bedarf mit einigen Einschränkungen neu zuweisen:

  • nur ein Sonderzeichen pro Funktion
  • es werden nur Single-Byte-Zeichen verwendet

Kontrolle C und Steuerung D sind konventionell :Während einige Anwendungen diese Werte hartcodieren können, erfordert der Terminaltreiber dies nicht.

Der Terminaltreiber ist eine Software, nicht Teil Ihres Terminals . Bei manchen Tastaturen sind unterschiedliche Zuweisungen von Sonderzeichen möglicherweise bequemer als bei anderen (und bei verschiedenen Betriebssystemen können einige Auswahlmöglichkeiten der Standardwerte für die Sonderzeichen abweichen).

Weiterführende Literatur:

  • 11.1.9 Sonderzeichen (POSIX *General Terminal Interface)
  • 11. Allgemeine Terminalschnittstelle
  • stty – setzt die Optionen für ein Terminal

Linux
  1. Der genaue Unterschied zwischen einem „Terminal“, einer „Shell“, einem „tty“ und einer „Konsole“?

  2. Unterschied zwischen Systemd und Terminal-Startprogramm?

  3. Unterschied zwischen Eot und Eof?

  4. Unterschied zwischen [0-9], [[:digit:]] und D?

  5. Welche Beziehungen bestehen zwischen dem aktuellen Steuerterminal und `/dev/tty`?

Mein funktionsreiches und minimales Linux-Terminal

Teilen und steuern Sie Terminals in Echtzeit über den Webbrowser

Vim vs. Vi – Ähnlichkeiten und Unterschiede zwischen VIM und VI?

Häufig gestellte Fragen zur nahtlosen Anmeldung zwischen MyRackspace und dem Cloud Control Panel

Was ist der Unterschied zwischen einer Konsole, einem Terminal und einer Shell?

Unterschied zwischen $HOME und '~' (Tilde)?