So kopieren und fügen Sie Text in der Linux-Bash-Shell ein

Möchten Sie in der Bash-Befehlszeile Textoperationen wie das Kopieren und Einfügen durchführen? Wir zeigen Ihnen verschiedene Methoden, unabhängig davon, ob Sie Tastatur oder Maus bevorzugen. Diese funktionieren sowohl auf einer grafischen Benutzeroberfläche als auch in einer textbasierten TTY-Umgebung.

Warum funktionieren die üblichen Tastenkombinationen nicht?

Das Kopieren und Einfügen von Text ist ein grundlegender Aspekt der Computerbedienung. Linux-Neulinge, die von Windows oder macOS kommen, sind oft überrascht, wenn sie in einem Terminalfenster Text kopieren und einfügen möchten.

Unter Windows verwenden Sie üblicherweise Strg+C zum Kopieren und Strg+V zum Einfügen. Auf macOS sind es Befehl + C zum Kopieren und Befehl + V zum Einfügen, wobei die gleiche Logik von C für Kopieren und V für Einfügen beibehalten wird.

Diese Tastenkombinationen funktionieren in den meisten grafischen Linux-Anwendungen wie dem Texteditor gedit oder der Office-Suite LibreOffice. Strg+C kopiert den markierten Text und Strg+V fügt ihn an der Cursorposition ein. Diese Benutzer sind es gewohnt, diese Tastenkombinationen aus dem Muskelgedächtnis zu verwenden.

Sobald dieser Benutzer jedoch ein Terminalfenster öffnet und versucht, an der Bash-Shell Eingabeaufforderung Text zu kopieren und einzufügen, ändert sich alles. Strg+C und Strg+V haben bereits Funktionen zugewiesen bekommen, lange bevor es das Kopieren und Einfügen gab. Tatsächlich wurden diese Tastenkombinationen bereits vor der Erfindung grafischer Oberflächen belegt, als ein Teleprinter (TTY) noch eine physische Einheit war.

Strg+C und Strg+V in TTYs

Als ein TTY noch ein physisches Gerät war, wurde Strg+C als praktische Tastenkombination zum Senden eines Signals ausgewählt. Dieses Signal ist SIGINT, das den aktuell laufenden Prozess beendet. Da ein Terminalfenster eine Emulation eines TTY ist, wurden diese Tastenkombinationen (und viele andere) in der Emulation beibehalten. Beachten Sie, dass das Terminalfenster selbst die Emulation ist, während die Bash-Shell ein darin laufendes Programm ist.

Wir können die Funktionen von Strg+C und Strg+V leicht demonstrieren. Geben Sie beispielsweise den folgenden Befehl ein und drücken Sie die Eingabetaste:

ls -R /

Da wir die Option -R (rekursiv) verwenden, listet der Befehl `ls` alle Dateien und Verzeichnisse beginnend mit dem Wurzelverzeichnis auf. Wenn Sie feststellen, dass dies nicht gewünscht ist, können Sie den Vorgang durch Drücken von Strg+C beenden.

Ctrl+C

Der `ls`-Prozess wird beendet. Das Drücken von Strg+C wird als `^C` im Screenshot angezeigt.

Die Tastenkombination Strg+V aktiviert das „wörtliche Einfügen“. Damit können Sie eine Darstellung einer Taste in Ihre Eingabe einfügen, anstatt die Funktion der Taste auszuführen. Um dies zu sehen, versuchen Sie folgende Befehle (ohne die Kommas):

Ctrl+V, Enter
Ctrl+V, PgDn
Ctrl+V, RightArrow
Ctrl+V, Esc

Sie werden feststellen, dass die Eingabetaste als `^M` dargestellt wird. Strg+C wurde zuvor als `^C` angezeigt. Es scheint, dass `^` Strg repräsentiert. Somit bedeutet Strg+M vermutlich dasselbe wie die Eingabetaste. Sie können dies testen, indem Sie Strg+M im Terminal eingeben.

Wir können also nicht erwarten, dass Strg+C und Strg+V Text kopieren und einfügen, da sie bereits fest zugewiesene Funktionen haben. Was können wir stattdessen verwenden?

Strg+Umschalt+C und Strg+Umschalt+V

Diese Tastenkombinationen sind leicht zu merken, da sie ihren Gegenstücken ähneln: Strg+Umschalt+C und Strg+Umschalt+V sind die Alternativen für Strg+C und Strg+V.

Wenn Sie im Terminalfenster Text mit der Maus markieren und dann Strg+Umschalt+C drücken, wird der Text in die Zwischenablage kopiert.

Ctrl+Shift+C

Sie können Strg+Umschalt+V verwenden, um den kopierten Text in dasselbe oder ein anderes Terminalfenster einzufügen.

Ctrl+Shift+V

Sie können den Text auch in grafische Anwendungen wie gedit einfügen. Hierbei ist jedoch zu beachten, dass Sie zum Einfügen in eine Anwendung (und nicht in ein Terminalfenster) Strg+V verwenden müssen.

Ebenso können Sie Text in gedit markieren, Strg+C drücken und ihn dann mit Strg+Umschalt+V in ein Terminalfenster einfügen.

Die Tastenkombination Strg+Einfg entspricht Strg+Umschalt+C, und die Tastenkombination Umschalt+Einfg entspricht Strg+Umschalt+V. Allerdings funktionieren diese nur innerhalb desselben Terminalfensters.

Kopieren und Einfügen mit der Maus: Rechtsklick

Sie können die Maus auch zum Kopieren und Einfügen in einem Terminalfenster nutzen. Markieren Sie dazu den gewünschten Text mit der Maus. Anschließend können Sie mit der rechten Maustaste klicken.

Nachdem Sie einen Text markiert haben, klicken Sie mit der rechten Maustaste und wählen Sie „Kopieren“ aus dem Kontextmenü.

Zum Einfügen des kopierten Textes klicken Sie erneut mit der rechten Maustaste und wählen „Einfügen“ aus dem Kontextmenü.

Der Text wird an der Cursorposition in der Befehlszeile eingefügt. Im Beispiel wurde der relative Pfad falsch eingegeben, und die Bash kann das Verzeichnis nicht wechseln. Der Benutzer hat das „~/“ am Anfang des Pfades vergessen. Der Benutzer fügt „~/“ ein und kopiert den Rest des Pfades aus dem vorherigen Versuch.

Wenn der Benutzer die Eingabetaste drückt, wechselt er in das gewünschte Verzeichnis.

In diesem Beispiel wurde das Einfügen in dasselbe Terminalfenster gezeigt, aber Sie können diese Rechtsklick-Methode auch zum Einfügen in verschiedene Terminalfenster oder grafische Anwendungen verwenden.

Kopieren und Einfügen mit der Maus: Mittlere Maustaste

Es gibt eine noch schnellere Methode zum Kopieren und Einfügen mit der Maus, sofern Ihre Maus über eine mittlere Taste verfügt. Wenn Sie auf Ihr Scrollrad drücken und es klickt, haben Sie eine mittlere Maustaste.

Markieren Sie Text im Terminalfenster und drücken Sie die mittlere Maustaste. Der markierte Text wird an der Cursorposition in der Befehlszeile eingefügt. Der Kopiervorgang und das Einfügen erfolgen gleichzeitig.

Markieren Sie also einen Text:

Drücken Sie dann Ihre mittlere Maustaste:

Mit dieser Methode können Sie auch zwischen verschiedenen Terminalfenstern und in grafischen Anwendungen einfügen. Markieren Sie den Text, wechseln Sie zum anderen Terminalfenster oder zur anderen Anwendung und drücken Sie die mittlere Maustaste.

Die alte Schule – Ohne Maus

Was ist, wenn Sie keine Maus haben? Wie können Sie Text kopieren und einfügen, wenn Sie ihn nicht markieren können?

Linux-Server werden oft ohne eine grafische Desktop-Umgebung (GDE) konfiguriert, was bedeutet, dass Sie keine Maus haben. Auch wenn Sie eine grafische Umgebung wie GNOME verwenden, kann es vorkommen, dass Sie die Maus nicht zur Textauswahl nutzen können.

Beispielsweise könnten Sie zu einem der zusätzlichen TTYs gewechselt sein. Auf modernen Distributionen befinden sich diese unter Strg+Alt+F3 (TTY3) bis Strg+Alt+F6 (TTY6). Strg+Alt+F2 bringt Sie zurück zu Ihrer GDE-Sitzung, und Strg+Alt+F1 führt Sie zurück zum Anmeldebildschirm Ihrer GDE.

Vielleicht nutzen Sie sogar ein echtes Hardware-TTY-Gerät, um sich mit einem Linux- oder Unix-Computer zu verbinden.

In all diesen Fällen können Sie diese Techniken verwenden. Hierbei ist wichtig zu beachten, dass es sich nicht um ein herkömmliches Kopieren und Einfügen handelt, sondern um ein Ausschneiden und Einfügen. Sie können nur innerhalb der aktuellen Befehlszeile ausschneiden und kopieren. Mit den Pfeiltasten können Sie durch Ihre Befehlshistorie scrollen, um die Befehlszeile zu finden, die Sie bearbeiten möchten.

Die folgenden Tastenkombinationen können Sie verwenden:

Strg+W: Schneidet das Wort vor dem Cursor aus und fügt es in den Zwischenspeicher ein.
Strg+K: Schneidet den Teil der Zeile nach dem Cursor aus und fügt ihn in den Zwischenspeicher ein. Wenn sich der Cursor am Zeilenanfang befindet, wird die gesamte Zeile ausgeschnitten und kopiert.
Strg+U: Schneidet den Teil der Zeile vor dem Cursor aus und fügt ihn in den Zwischenspeicher ein. Wenn sich der Cursor am Zeilenende befindet, wird die gesamte Zeile ausgeschnitten und kopiert.
Strg+Y: Fügt den zuletzt ausgeschnittenen und kopierten Text ein.

Wechseln wir nun zu TTY3. (Verwenden Sie Strg+Alt+F1, um danach zu Ihrem Desktop zurückzukehren.)

Ctrl+Alt+F3
tty

Wir haben eine Datei, die wir löschen wollen. Überprüfen wir, ob sie vorhanden ist:

ls -l file_to_delete.txt

Wenn wir die Aufwärtspfeiltaste verwenden, wird der letzte Befehl aus der Historie aufgerufen. Wir könnten diese Zeile bearbeiten, aber wir demonstrieren hier das Ausschneiden und Einfügen. Wir erledigen das Löschen der Datei also etwas umständlicher.

Wir bewegen den Cursor an den ersten Buchstaben des Dateinamens und drücken dann Strg+K. Dadurch wird dieser Teil der Zeile entfernt und in den Zwischenablagepuffer kopiert.

Wir drücken die Rücktaste, um die Zeile zu löschen.

Wir geben den Befehl `rm` zum Löschen der Datei ein.

<img decoding=“async“