Was sind die gängigen Steuerungskombinationen in einer Terminaleinstellung?

8

Ich hätte gerne eine gute Anleitung zu den allgemeinen Tastenkombinationen, die in Bash- (und ähnlichen) Shells verwendet werden, und zu den Kombinationen, die von gängigen Programmen verwendet werden, die in diesen Shells verwendet werden.

Meine besondere Motivation ist es, GNU-Bildschirm auf einem Computer ausführen zu können, ssh auf einem zweiten Computer und Bildschirm und irssi auf diesem Computer zu verwenden. Ich muss also etwas anderes als Strg-A verwenden, um eine der Bildschirmsitzungen zu steuern. Ich muss also wissen, welche Steuertastenkombinationen sicher zu verwenden sind.

Ich stelle mir jedoch vor, dass diese Liste für andere nützlich wäre, die benutzerdefinierte Aktionen an Steuertastenkombinationen binden möchten.

Ich denke, wir sollten die Tastenkombinationen am besten nach Anwendung gruppieren (z. B. Bash selbst, Bildschirm, Vim, Emacs), um das Erkennen der Anwendungen, die Sie verwenden oder die Sie ignorieren können, zu vereinfachen. Also bitte eine Bewerbung pro Antwort - hoffe das funktioniert.

Hamish Downer
quelle
2
Um Ihre besondere Motivation anzusprechen, würde ich davon abraten, Bildschirm für Bildschirm auszuführen, wenn Sie dies vermeiden können: Warum möchten Sie den Bildschirm verwenden, um eine SSH-Verbindung zu einer anderen Bildschirmsitzung aufrechtzuerhalten? Der Punkt des Bildschirms besteht darin, ssh das Schließen zu ermöglichen, ohne Ihr aktives Programm zu verlieren. Ich würde vorschlagen, nur in einem separaten Terminal auf den zweiten Computer zu ssh. Wenn Sie es tun müssen (ich habe es in der Vergangenheit getan), finde ich, dass es tatsächlich weniger kognitive Belastung gibt, wenn ich einfach die Standardschlüsselbindungen in Ruhe lasse. Sie müssen sich sowieso bewusst sein, wenn Sie sich im inneren Bildschirm befinden.
Zac Thompson

Antworten:

7

Bash selbst verwendet die GNU-Readline-Bibliothek wie viele andere interaktive Befehlszeilenprogramme. Readline verfügt über die folgenden Standardschlüsselbindungen, die das Verhalten von Emacs nachahmen:

Sich in der Leitung bewegen:

  • Strg + A Gehen Sie zum Anfang der Zeile, in die Sie gerade tippen
  • Strg + E Gehen Sie zum Ende der Zeile, in die Sie gerade tippen

Text in der Zeile bearbeiten:

  • Strg + U Löscht die Zeile vor der Cursorposition. Wenn Sie sich am Ende der Zeile befinden, wird die gesamte Zeile gelöscht.
  • Strg + H Wie Rücktaste
  • Strg + W Löscht das Wort vor dem Cursor
  • Strg + K Löscht die Zeile nach dem Cursor
  • Strg + T Vertauschen Sie die letzten beiden Zeichen vor dem Cursor
  • Esc + T Tauschen Sie die letzten beiden Wörter vor dem Cursor aus

Andere:

  • Strg + L Löscht den Bildschirm, ähnlich wie beim Löschen
  • Strg + R Lassen Sie uns zuvor verwendete Befehle durchsuchen
  • Strg + C Töte alles, was du rennst
  • Strg + D Beendet die aktuelle Shell
  • Strg + Z Setzt alles, was Sie gerade ausführen, in einen angehaltenen Hintergrundprozess. fg stellt es wieder her.
Hamish Downer
quelle
4
Diese sind für die emacs ( set -o emacs) - Schlüsselbindungen (bind -p). Sie wären für vi ( set -o vi) - Schlüsselbindungen unterschiedlich.
Bis auf weiteres angehalten.
@ Tennis ja, aber die Schlüssel werden tatsächlich von der Readline-Bibliothek bestimmt, die viele Programme verwenden. Bash hat 'set -o vi', andere Programme jedoch nicht. Selbst wenn bash mit vi-Schlüsseln verwendet wird, würden diese dennoch mit anderen Programmen in Konflikt stehen. Ich habe diese Antwort aktualisiert und eine für Emacs hinzugefügt.
Zac Thompson
@Zac: Aber du kannst set editing-mode viin einer inputrcDatei.
Bis auf weiteres angehalten.
1

Vim verwendet:

  • Strg-B einen Bildschirm zurück (nach oben)
  • Strg-D auf halber Bildschirm
  • Strg-E Bildlauf nach oben (Cursor bewegt sich nur, wenn dies erforderlich ist)
  • Strg-F vorwärts (nach unten) einen Bildschirm
  • Strg-G Status anzeigen
  • Strg-H Rücktaste
  • Strg-J Linie nach unten
  • Strg-L- Aktualisierungsbildschirm
  • Strg-N eine Zeile nach unten bewegen (oder durch automatische Vervollständigungen vorwärts scrollen)
  • Strg-P eine Zeile nach oben bewegen (oder durch automatische Vervollständigungen rückwärts scrollen)
  • Strg-R wiederholen (nach dem Rückgängigmachen)
  • Gehen Sie mit Strg-T zu der Datei / dem Code, die Sie vor dem letzten Tag-Sprung bearbeitet haben
  • Strg-U auf halber Bildschirm
  • Strg-V wechselt in den visuellen Blockmodus
  • Strg-W zum Verwalten von geteilten Fenstern
  • Strg-Y Bildlauf nach unten (Cursor bewegt sich nur, wenn dies erforderlich ist)
Hamish Downer
quelle
1

Emacs benutzt alles. Von http://www.cs.rutgers.edu/LCSR-Computing/some-docs/emacs-chart.html :

  • C-SP set-mark-befehl
  • Ca Zeilenanfang
  • Cb rückwärts-char
  • Cc exit-recursive-edit
  • Cd delete-char
  • Ce Zeilenende
  • Vgl. Forward-Char
  • Cg (im obigen Link nicht explizit erwähnt, aber bei der Eingabe von Befehlen als "Abbrechen" verwendet)
  • Ch Hilfe-Befehl
  • Ci (TAB) Einzug für Tabulatorbefehl
  • Cj (LFD) Zeilenumbruch
  • Ck Kill-Line
  • Cl recenter
  • Cm (RET) Newline
  • Cn nächste Zeile
  • Co offene Linie
  • Cp vorherige Zeile
  • Cq zitiert-einfügen
  • Cr isearch-backward
  • Cs isearch-forward
  • Ct Transponierungszeichen
  • Cu universelles Argument
  • Lebenslauf nach oben scrollen
  • Cw Kill-Region
  • Cx Control-X-Präfix
  • Cy ruckt
  • Cz suspend-emacs
  • C-] Abbruch-rekursiv-bearbeiten
  • C-_ rückgängig machen
Zac Thompson
quelle
1

Es scheint, dass Strg + Q eine ideale Escape-Taste für den GNU-Bildschirm wäre. Gibt es einen Grund, warum niemand dies vorschlägt?

Der einzige Nachteil, den ich mir vorstellen kann, ist, dass unter Mac OS X Command + Q die Tastenkombination zum Beenden einer Anwendung ist, die bei Verwechslung mit Strg + Q etwas gefährlich wäre .

Ansonsten scheint es aus den aktuellen Antworten und meiner eigenen Forschung, dass nichts mit Strg + Q in Konflikt steht .

Han
quelle
1
Die Stopp- und Startfunktionen Ihrer Terminals werden normalerweise von Cs und Cq gesteuert, aber es ist nicht sehr häufig (korrigieren Sie mich, wenn ich mich irre), dass Benutzer dies überhaupt verwenden, da es einfacher ist, in weniger, mehr oder andere Verarbeitungswerkzeuge zu leiten. Ich würde mit Sicherheit sagen, dass Sie Cq ohne viel Blendung wieder binden können. In meinen Shells ändere ich immer die stty-Einstellungen für Start und Stopp, um zu vermeiden, dass die Ausgabe unbeabsichtigt angehalten wird. Ich mache dies mit: stty start '' stop ''in meinen Bash-Startskripten.
Mattias Ahnberg
Zu Ihrer Information: Wenn Sie bei Verwendung von PuTTY versehentlich Strg + s (XOFF) drücken, benötigen Sie Strg + q, damit Ihre Sitzung erneut reagiert.
Dave Forgac
1

Viele Anwendungen verwenden die GNU-Readline-Bibliothek, daher sind diese Tastenkombinationen gut zu kennen. Sie können sie auf der Readline (2) -Handbuchseite lesen, die Sie hier leicht einsehen können:
http://linux.die.net/man/3/readline

Mattias Ahnberg
quelle
0

Der GNU-Bildschirm verwendet standardmäßig Strg-A als Befehlstaste.

Hamish Downer
quelle
2
Um den Bash-Emacs-Modus Strg-A (Zeilenanfang) beim Ausführen des Bildschirms zu verwenden, drücken Sie Strg-A gefolgt von A (oder drücken Sie Home).
Bis auf weiteres angehalten.