907 Stimmen

Wie kann ich die Ausgabe eines Befehls direkt in meine Zwischenablage kopieren?

Wie kann ich die Ausgabe eines Befehls in meine Zwischenablage leiten und wieder einfügen, wenn ich ein Terminal verwende? Zum Beispiel:

cat file | clipboard

0 Stimmen

Mögliche Duplikate von Leitung zu/von Zwischenablage

0 Stimmen

Mögliche Duplikate von superuser.com/questions/104981/

0 Stimmen

Ich habe gerade eine ähnliche Frage gestellt, da ich xclip nicht zum Laufen bringen kann, wenn ich mich von Git Bash unter Windows in Ubuntu einlogge: stackoverflow.com/q/60117294/470749

1voto

George Mogilevsky Punkte 579

Nur um einen Randfall abzudecken:) und weil der Fragentitel (zumindest jetzt) fragt, wie man die Ausgabe eines Befehls direkt in die Zwischenablage kopiert.

Oft finde ich es nützlich, die Ausgabe des Befehls zu kopieren, nachdem er bereits ausgeführt wurde und ich den Befehl nicht noch einmal ausführen will oder kann.

Für dieses Szenario können wir entweder gdm oder ein ähnliches Mausprogramm verwenden und mit der Maus auswählen. apt-get install gdm und dann entweder der Rechtsklick oder die Kombinationen Strg+Umschalt+c und Strg+Umschalt+v zum Kopieren und Einfügen im Terminal

Oder, was für mich die bevorzugte Methode ist (da die Maus innerhalb eines Fensters nicht richtig auswählen kann, wenn Sie mehrere Fenster nebeneinander haben und mehr als eine Zeile auswählen müssen), können wir mit tmux in den tmux-Puffer kopieren, indem wir die Standardfunktionen [ , Leertaste , zum Auswählen bewegen , Enter oder einen Codeblock auswählen. Dies ist auch besonders nützlich, wenn man sich in einer der Lanes des Cli-Multiplexers wie tmux befindet UND einen Haufen Text auswählen muss, aber nicht die Zeilennummern (mein Vim-Setup rendert Zeilennummern)

Danach können Sie den Befehl verwenden:

tmux save-buffer - | xclip -i

Sie können natürlich auch einen Alias vergeben oder direkt in der tmux-Konfigurationsdatei binden

Dies soll Ihnen nur eine konzeptionelle Antwort für den Fall geben, dass es nicht möglich ist, den Befehl erneut auszuführen. Wenn Sie spezifischere Code-Beispiele benötigen, lassen Sie es mich wissen

Prost

0voto

awdr Punkte 64

Mit sudo-Rechten:

echo '#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from tkinter import Tk
r = Tk()
r.withdraw()
r.clipboard_clear()
data = ""
for i in sys.stdin:
        data = data + i
r.clipboard_append(data)
r.update()
r.destroy()' | sudo tee /usr/bin/copy > /dev/null
sudo chmod +x /usr/bin/copy

Alternativ auch ohne sudo-Rechte (nur für einen Benutzer):

echo '#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from tkinter import Tk
r = Tk()
r.withdraw()
r.clipboard_clear()
data = ""
for i in sys.stdin:
        data = data + i
r.clipboard_append(data)
r.update()
r.destroy()' > ~/.local/bin/copy
chmod +x ~/.local/bin/copy

Verwendung:

echo "hi" | copy

0 Stimmen

Das sieht umständlich aus. Was sind die Vorteile im Vergleich zu bestehenden Antworten, die xsel verwenden?

1 Stimmen

Sie brauchen nichts zu installieren

2 Stimmen

Ich würde sagen, dass eine einzige eigenständige xsel-Binärdatei nichts im Vergleich zu dem riesigen Python3-Framework ist. Manche Leute haben vielleicht schon xsel installiert, aber nicht python3. Hinzu kommt, dass Ihr Python-Skript vom tkinter abhängt, der vielleicht auch nicht installiert ist. Wenn die Motivation dieser Antwort ist, etwas mit weniger Abhängigkeiten bereitzustellen, dann denke ich, dass es genau das Gegenteil ist.

0voto

Fathy Punkte 330

I Erstellt ein Werkzeug Hier

hängt vom xclip-Paket ab

-1voto

Mr. Simplicity Punkte 9

Hier sind zwei einfache Lösungen mit nur zwei Codezeilen in jeder Methode!

Es muss keine zusätzliche Software installiert werden (und letztere kann eine Vielzahl von Abhängigkeiten mit sich bringen, von denen einige möglicherweise Sicherheitsprobleme aufweisen)

Hinweis: Die 2. Methode no mit dem nano-Editor in Debian arbeiten.

1. Methode:

  1. sudo printf "\n#$(date)" >> /path/intended_file
    Hinweis: Vor jeder Zeile mit vorangestelltem Kommentarzeichen # beschädigt keine Datei.
  2. Datei mit Editor öffnen sudo gedit /path/intended_file dann kopieren Sie Datum in die Zwischenablage im Editor und fügen es an einer beliebigen Stelle ein.

2. Methode

  1. Schreiben Sie den Inhalt eines uniqueFile Datei, die sich irgendwo auf der Festplatte befindet, in eine delete.txt archivo:
    sudo find / -iname 'uniqueFile' >> delete.txt
  2. Datei mit Texteditor öffnen gedit delete.txt und kopieren Sie (Strg-C) den markierten gewünschten langen Pfad aus dem Editor in die Zwischenablage. Oder Sie können auch den Terminal-Nano-Editor verwenden (der allerdings das "Standard"-Strg-C nicht unterstützt).
  3. Optionaler zusätzlicher Schritt:
    Wenn delete.txt ist bereits Ihre persönliche Protokolldatei:
    rm delete.txt oder mv delete.txt memo-uniqueFile.txt

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X