Ich habe einige ziemlich lange Befehle und Dateipfade, die ich in die Zwischenablage kopiert habe und in einem TTY ausführen muss. Die Dateipfade sind jedoch zu lang, um sie erneut einzugeben, und ich möchte sie einfach nach dem $
einfügen (ich kann die Befehle vorher erneut eingeben sie dann), gibt es eine Möglichkeit, dies zu tun?
Also möchte ich einen Befehl ausführen und ihn in der nächsten Zeile beginnen lassen, indem $
ich den Text wie folgt in die Zwischenablage kopiere:
$ specialCommandToPasteText
$ pastedText
Ich verwende Ubuntu GNOME 16.04 mit GNOME 3.20.
gpm
, um Mausunterstützung in der VT bereitzustellen, wie in Ihrer eigenen Antwort auf eine vorherige Frage vorgeschlagen ?Antworten:
Es ist einfach, aber Sie benötigen ein zusätzliches Tool.
Installieren Sie das Paket
xsel
, das einen einfachen Befehl zum Zugriff auf die Zwischenablage bietet:Finden Sie heraus, welchen
$DISPLAY
Desktop Sie verwenden. Normalerweise sollte es so sein:0
, aber Sie können es überprüfen, indem Sie diesen Befehl in einem Terminalemulator auf Ihrem GUI-Desktop ausführen:Ich gehe davon aus, dass die Ausgabe ist
:0
, ersetzen Sie diese durch Ihre tatsächliche Ausgabe in den folgenden Befehlen, wenn es anders ist.Kopieren Sie den Befehl, den Sie ausführen möchten, in das TTY, z . B. mit Ctrl+ C.
Wechseln Sie zu dem TTY, den Sie verwenden möchten, z. B. mit Ctrl+ Alt+ zu TTY1 F1.
Melden Sie sich an, indem Sie Ihren Benutzernamen und Ihr Passwort eingeben.
Geben Sie den vollständigen Befehl ein, den Sie ausführen möchten, ersetzen Sie jedoch den Teil, den Sie aus der Zwischenablage einfügen möchten, durch
$(DISPLAY=:0 xsel -ob)
.Wenn Sie beispielsweise eine große Liste zu installierender Pakete kopiert haben, können Sie Folgendes in das TTY eingeben:
Das Snippet für die Zwischenablage muss nicht unbedingt am Ende Ihres Befehls stehen, es kann jedoch an einer beliebigen Stelle angezeigt werden.
Um die Sache noch weiter zu vereinfachen, wollen wir dies noch etwas komplizierter
DISPLAY=:0 xsel -ob
auf ein Skript übertragen. Ich werde es benennenPASTE
(weilpaste
es bereits vergeben ist), aber Sie können es auch anders nennen.Um die Skriptdatei an einem Ort zu erstellen, an dem jeder Benutzer sie ausführen kann, ohne den vollständigen Pfad angeben zu müssen (ich empfehle
/usr/local/bin
dies), und um sie ausführbar zu machen, führen Sie einfach diese beiden Befehle aus:Jetzt können Sie einfach
$(PASTE)
in Ihre Befehle einen TTY einbetten , um den Inhalt der Zwischenablage von Ihrem Desktop aus dort einzufügen.quelle
DISPLAY=:0 xsel -ob
irgendwo als Bash-Alias oder kleines Skript speichern (nennen wir esPASTE
) und nur eine verkürzte Form verwenden$(PASTE)
, um den Inhalt der Zwischenablage in Ihren Befehlen zu verwenden.Persönlich verwende ich nur Textdateien:
Öffnen Sie in Ihrer Desktop-Umgebung ein Terminal und
Gehen Sie zu tty und
quelle
some-command '
Shift + Insert (zum Einfügen).'
Rückkehr. Durch das Einfügen in einfache oder doppelte Anführungszeichen wird verhindert, dass Zeilenumbrüche im eingefügten Text den Befehl ausführen, bevor ich ihn bearbeiten kann, um Probleme zu beheben. IDK, was es Ihnen bringt, den Text in eine Datei zu setzen. Bash verfügt über sehr leistungsstarke Tastenanschläge für die Zeilenbearbeitung, z. B. Strg-Links- oder Strg-Rechtspfeil, um sich wortweise zu bewegen. Alt-Rücktaste, um rückwärts gerichtete Wörter zu löschen. Alt-D, um vorwärts Wörter zu löschen, etc. etc.Eine andere mögliche Problemumgehung, die oben nicht aufgeführt ist, umfasst die Verwendung von
vim
, das Einfügen und das Ausführen:!unix_command
im Befehlsmodus:vim
, in den Befehlsmodus wechseln Esc, Eingabeaufforderung eingeben:quelle