Manchmal, wenn ich Text aus der Ausgabe von Befehlen kopiere, verwende ich versehentlich Ctrl+ canstelle von Ctrl+ Shift+ c.
Die Kommandozeile interpretiert es also als ^C
...
Warum ist das? Warum interpretiert die Befehlszeile die controlEingabe als ^
?
command-line
Sag mir warum
quelle
quelle
^
als Symbol für "Kontrolle" geht auf vorgrafische Zeiten zurück, als die Terminals nur aus Text bestanden, und ich glaube, dass es noch vor unserer Zeit, als wir Karten und Papier hatten, keine Terminals gab. Ich würde gerne wissen, warum das Caret als Symbol gewählt wurde.Da CTRL+ KEYCombos vom Terminal als nicht druckbare ASCII-Zeichen interpretiert werden und diese nicht druckbar sind, müssen Sie sie darstellen.
Die Konvention, die von VT-Terminals mit ANSI-Unterstützung ausgeht , ist die Darstellung der CTRL+ KEY-Kombination CTRLmit einem Caret (
^
) und KEYmit KEY.quelle
Beim Kopieren und Einfügen in / aus einem Terminal wird empfohlen, die Tastenkombinationen Ctrl+ Insertund Shift+ zu Insertverwenden.
Dies sind die traditionelleren Abkürzungen für die Terminalverwendung, obwohl Sie feststellen werden, dass in einer grafischen X-Umgebung Ctrl+ Insertund Shift+ Insertmit denselben Ctrl+ Cund Ctrl+ verknüpft sind V.
In den meisten Terminals wird Ctrl+ C(dargestellt durch
^C
) verwendet, um die Ausführung eines Prozesses anzuhalten. Daher funktioniert das Einfügen mit dieser Abkürzung nicht.Zum schnellen Kopieren und Einfügen können Sie den Primärpuffer von X verwenden, indem Sie den zu kopierenden Text markieren und dann mit der mittleren Maustaste auf die Stelle klicken, an der Sie ihn einfügen möchten. Keine Tastatur erforderlich.
quelle
^C
oder ähnliche Zeichenfolgen angezeigt werden, wenn STRG + C (oder STRG + ein anderer Buchstabe) gedrückt wird. Es geht nicht darum, wie man Dinge im Terminal richtig kopiert und einfügt, für die Ihre Antwort großartig wäre.Sie sollten mit sein Ctrl+ Cund nicht Shift+ Ctrl+ C, weil auf der Kommandozeile, sie das gleiche tun (und Ctrl+ Cist einfacher als Shift+ Ctrl+ C). In bestimmten grafischen Umgebungen, in denen die grafische Benutzeroberfläche einige Tastenanschläge erfasst und spezielle Aktionen ausführt, trifft dies möglicherweise nicht zu. Wenn die Tastenanschläge jedoch tatsächlich an die Befehlszeile gesendet werden, gibt es keinen Unterschied. Aus diesem Grund wird durch Drücken von Ctrl+ Cmöglicherweise ^ C als Großbuchstabe C anstelle von Kleinbuchstaben C angezeigt. Die Befehlszeile unterscheidet nicht, auf welche Taste Sie gedrückt haben (und Großbuchstaben wurden vermutlich als leichter lesbar eingestuft). Dies gilt für Briefe; für andere Zeichen Shiftkann das einen Effekt haben.)
Drücken von Ctrl- Csendet den ASCII-Code, der 64 unter der Position des Großbuchstabens in der ASCII-Tabelle liegt (und 96 unter der Position des Kleinbuchstabens in der ASCII-Tabelle). Wenn Sie also Ctrl- c(Kleinbuchstaben) drücken, wird der ASCII-Code 3 gesendet (64 weniger als Cder ASCII-Code von 67 in Großbuchstaben ). In vielen Umgebungen können Sie das Tastenfeld gedrückt halten Altund dann drücken 3(und dann die 3Taste loslassen und dann die Taste loslassen Alt), und Sie erhalten möglicherweise den gleichen Effekt.
In Bezug auf ^ C ist ^ nur eine bekannte Abkürzung für die CtrlTaste " ". Ebenso ist M- eine Abkürzung für die AltTaste " ". Äh, ja. M steht für das Wort "Meta", das eingegeben werden kann, indem Altgedrückt gehalten und gedrückt wird, was als nächstes kommt, oder indem manchmal gedrückt Esc(und losgelassen Esc) und dann gedrückt wird, was als nächstes kommt. Der Wikipedia-Artikel über "Steuertaste": "Notation" beschreibt dies als "traditionelle Notation". Dies wird auch als Caret-Notation bezeichnet ( Wikipedia-Artikel zur Caret-Notation , Unix StackExchange: ryvnfs Frage zur Caret-Notation ).
In Bezug auf die letzte Frage "interpretiert" die Befehlsshell nichts, um ein Caret zu sein. Mit anderen Worten, die Shell liest nichts und glaubt, dass es sich um ein Caret handelt. Was passiert, ist, dass die Shell die bekannte Caret-Notation für die Ausgabe verwendet. Als weiteres Beispiel können Sie den bekannten Pager "less" mit der Caret-Notation anzeigen, indem Sie Folgendes ausführen:
dd if=/dev/zero bs=64 count=1 | less
(Der Texteditor "nano" verwendet in seiner Online-Hilfe auch die Caret-Notation, einschließlich der vollständigen Bildschirmanzeige der Online-Hilfe, die nach dem Drücken von ^ G (aka Ctrl- g) angezeigt wird .)
quelle