Pipe zu / von der Zwischenablage im Bash-Skript
Ist es möglich, die Pfeife zu/aus der Zwischenablage in Bash?
Ob es Rohrleitungen zu/von einem Gerät behandeln oder mit einer Hilfs-App kann ich nichts finden.
Zum Beispiel, wenn /dev/clip
war eine Vorrichtung die Verknüpfung in die Zwischenablage, die wir tun könnten:
cat /dev/clip # Dump the contents of the clipboard
cat foo > /dev/clip # Dump the contents of "foo" into the clipboard
InformationsquelleAutor der Frage marcog | 2009-04-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist ein wenig zweideutig. Ich erwarte, dass Sie wahrscheinlich einen Linux-Benutzer in X, die will, um Sachen in der X
PRIMARY
Zwischenablage.Es ist wichtig zu verstehen, dass
bash
nicht über die Zwischenablage kopiert. Es gibt keine solche Sache wie "" Zwischenablage, weilbash
läuft auf Windows, Mac OS X, viele andere Betriebssysteme, innen X außen X, ... Nicht zu erwähnen, dass X selbst hat drei verschiedene Zwischenablagen. Es gibt eine fülle von Ablagen, die Sie könnte mit zu tun haben. In der Regel die Zwischenablage, die Sie sprechen möchten, ist ein Dienstprogramm, mit dem Sie sprechen.Im Fall von X, ja, es gibt
xclip
(und andere).xclip -selection c
wird das senden von Daten an die Zwischenablage, die mit Strg-C, Strg-V in den meisten Anwendungen.Werden, wenn Sie versuchen zu sprechen, um die Mac-OS-X-Zwischenablage, es gibt
pbcopy
.Wenn Sie in der Linux-terminal-Modus (no X), dann vielleicht müssen Sie sich in
gpm
.Gibt es auch GNU
screen
die Zwischenablage kopiert. Zu stecken Sachen drin, schaut auf diescreen
Befehl "readreg
".Unter Windows/cygwin verwenden
/dev/clipboard
oderclip
für neuere Versionen von Windows (mindestens Windows 10).InformationsquelleAutor der Antwort lhunath
Stellen Sie sicher, dass Sie mit alias
xclip="xclip -selection c"
andernfalls können Sie nicht einfach auf Strg+v einfügen, um es wieder an einem anderen Ort.
Strg+v
=== test
InformationsquelleAutor der Antwort doug
Installieren
Wenn Sie nicht haben Zugang zu
apt-get
nochpacman
nochdnf
sind die Quellen verfügbar sourceforge.Set-up
Bash
In
~/.bash_aliases
hinzufügen:Vergessen Sie nicht, laden Sie Ihre neue Konfiguration mit
. ~/.bash_aliases
oder durch einen Neustart Ihres Profils.Fisch
In
~/.config/fish/config.fish
hinzufügen:Vergessen Sie nicht, starten Sie Ihren Fisch Instanz durch einen Neustart Ihres terminal für änderungen zu gelten.
Nutzung
Können Sie jetzt mit
setclip
undgetclip
e.g:InformationsquelleAutor der Antwort tleb
Unter Mac OS X finden Sie vielleicht diese Befehl Linie Werkzeuge griffbereit:
pbcopy
pbpaste
BEISPIEL:
Nach diesem Befehl Inhalte der
~/.bashrc
Datei zum einfügen mitcmd
+v
Verknüpfung.InformationsquelleAutor der Antwort jtruelove
Versuchen
xclip
man
InformationsquelleAutor der Antwort Zoredache
xsel auf Debian/Ubuntu/Mint
Installieren
InformationsquelleAutor der Antwort Andrew_1510
Hier ist ein gebrauchsfertiges bash-Skript zum Auslesen der Zwischenablage, die funktioniert auf mehreren Plattformen.
Bitte Bearbeiten Sie das Skript hier, wenn Sie hinzufügen von Funktionalität (z.B. weitere Plattformen).
InformationsquelleAutor der Antwort Wolfgang Fahl
Unter Windows (mit Cygwin) versuchen
cat /dev/clipboard
oderecho "foo" > /dev/clipboard
wie bereits in diese Artikel.InformationsquelleAutor der Antwort Norman H
Nur für den Mac:
Diese befinden sich
/usr/bin/pbcopy
und/usr/bin/pbpaste
.InformationsquelleAutor der Antwort nyitguy
Gibt es verschiedene Zwischenablagen in Linux, der X-server hat, der window-manager anders, und so weiter. Es gibt keine standard-Gerät.
Oh, ja, auf CLI, wird der Bildschirm Programm hat seine eigene Zwischenablage, wie auch einige andere Anwendungen wie Emacs und vi.
In X, die Sie verwenden können,xclip.
Überprüfen Sie können diesen thread für weitere mögliche Antworten:
http://unix.derkeiler.com/Newsgroups/comp.unix.shell/2004-07/0919.html
InformationsquelleAutor der Antwort Sunny Milenov
Wow, ich kann nicht glauben, wie viele Antworten es gibt für diese Frage. Ich kann nicht sagen, ich habe Sie alle ausprobiert, aber ich habe versucht, die top 3 oder 4 und keiner von Ihnen arbeiten für mich. Was hat Arbeit für mich war die Antwort liegt in einem der Kommentar, verfasst von einem user namens doug. Da fand ich es auch sehr hilfreich, habe ich beschlossen, noch einmal in einer Antwort.
Installieren xcopy Dienstprogramm, und wenn Sie in der Klemme: Eingang:
Kopieren
Einfügen
Bemerkte ich eine Menge Antworten empfohlen pbpaste und pbcopy. Wenn Sie in diesen Versorgungsunternehmen, aber für einige Grund Sie nicht auf Ihre repo, können Sie immer einen alias für die xcopy-Befehle und nennen Sie pbpaste und pbcopy.
Also dann würde es so Aussehen:
InformationsquelleAutor der Antwort thebunnyrules
Kopieren und fügen Sie die Zwischenablage in Windows (Cygwin):
finden Sie unter:
$ clip.exe -?
CLIP
Beschreibung:
Leitet die Ausgabe von Kommandozeilen-tools in die Windows-Zwischenablage.
Diese Textausgabe kann dann eingefügt werden, die in anderen Programmen.
Parameter-Liste:
/? Zeigt diese Hilfe-Nachricht.
Beispiele:
DIR | CLIP fügt eine Kopie des aktuellen Verzeichnisses
Liste in die Windows-Zwischenablage.
CLIP < README.TXT legt eine Kopie des Textes aus readme.txt
auf in die Windows-Zwischenablage.
Besteht auch getclip (kann verwendet werden, anstelle von shift+ins!), putclip (echo oaeuoa | putclip.exe um Sie in clip)
InformationsquelleAutor der Antwort Stenemo
Dies ist ein einfaches Python-Skript tut genau, was Sie brauchen:
Speichern Sie diese als ausführbare Datei irgendwo in deinem Pfad ab (ich speicherte es auf
/usr/local/bin/clip
. Sie können die Pfeife in die Sachen werden in der Zwischenablage gespeichert...Und Sie können über die Pipeline, was in Ihrer Zwischenablage zu einem anderen Programm...
Läuft es von selbst, wird einfach ausgegeben, was in der Zwischenablage.
InformationsquelleAutor der Antwort tysweat
Auf dem Windows-subsystem für Linux, können Sie in die Zwischenablage kopieren mit clip.exe.
Halten Sie im Verstand zu nutzen die
|
pipe-Befehl. Und nicht ein>
Befehl, denn das wird nicht funktionieren.InformationsquelleAutor der Antwort knowledge_is_power
Macht den job für x11, ist es meist schon installiert ist.
Ein Blick in die man-page von xsel ist die Mühe Wert.
InformationsquelleAutor der Antwort Martin Fischer
Wenn Sie wie ich sind und laufen auf einem linux-server ohne root-Rechte und es gibt keine xclip oder gpm könnte man dieses Problem umgehen, indem Sie nur über eine temporäre Datei. Zum Beispiel:
InformationsquelleAutor der Antwort horta
Wenige Windows-Programme, die ich schrieb vor Jahren. Sie ermöglichen es, dump, schieben, Anhängen und drucken Sie die Zwischenablage. Es funktioniert wie folgt:
Es beinhaltet den Quellcode: cmd_clip.zip
InformationsquelleAutor der Antwort jeng
Gibt es ein paar Möglichkeiten. Einige der Wege, die erwähnt wurden, beinhalten (glaube ich) tmux, screen, vim, emacs, und die shell. Ich weiß nicht, emacs oder Bildschirm, so gehe ich über die anderen drei.
Tmux
Zwar nicht ein X-Auswahl, tmux ist ein kopieren-Modus, erreichbar über
prefix-[
(prefix
Strg+B standardmäßig). Der Puffer für diesen Modus ist separat und exklusiv für tmux, das eröffnet durchaus ein paar Möglichkeiten und macht es vielseitiger als die X Auswahl in den richtigen Situationen.Um diesen Modus zu beenden, drücken Sie q; zu navigieren, verwenden Sie Ihre
vim
oderemacs
Bindung (default = vim), sohjkl
für Bewegung,v/V/C-v
für character - /line - /block-Auswahl, etc. Wenn Sie Ihre Auswahl, drücken Sie Enter kopieren und verlassen Sie den Modus.Einfügen, um aus diesem Puffer, verwenden Sie
prefix-]
.Shell
Jeder installation von
X11
zu kommen scheint, die mit zwei Programmen standardmäßig:xclip
undxsel
(ein bisschen wie, wie es kommt auch mit beidenstartx
undxinit
). Die meisten der anderen Antworten erwähntxclip
ist, und ich wirklich wiexsel
für die Kürze, also werde ich das coverxsel
.Vom xsel(1x):
Und das ist alles, was Sie brauchen, um wissen.
p
(oder nichts) fürPRIMARY
s
fürSECONDARY
b
fürCLIPBOARD
o
für die Ausgabe.Beispiel: angenommen, ich möchte kopieren Sie die Ausgabe von
foo
von einem TTY-Gerät und fügen Sie es auf einer Webseite für einen bug-report. Um dies zu tun, wäre es ideal, um kopieren zu/von der TTY/X-session. So wird die Frage wie erhalte ich Zugriff auf die Zwischenablage, von der TTY?Für dieses Beispiel nehmen wir an, dass die X-session auf dem display
:1
.Dann kann ich
Ctrl-V
es in die form wie gewohnt.Nun sagen, dass jemand auf der support-Website gibt mir einen Befehl ausführen, um das problem zu beheben. Es ist kompliziert und lang.
Pizza bestellen scheint wie eine produktive Nutzung der Befehlszeile.
...verschieben.
Vim
Wenn kompiliert mit
+clipboard
(Das ist wichtig! Überprüfen Sie Ihrevim --version
), Vim, sollten Zugriff auf den XPRIMARY
undCLIPBOARD
Auswahl. Die beiden Selektionen sind erreichbar von der*
und+
registriert sind, und können geschrieben werden und Lesen in Ihrer Freizeit, das gleiche wie jedes andere register. Zum Beispiel:Wenn Sie Ihre Kopie von vim nicht direkt unterstützt, der Zugriff auf X-Auswahl, obwohl, es ist nicht das Ende der Welt. Sie können einfach verwenden Sie die
xsel
Technik, wie beschrieben, in den letzten Abschnitt.Binden Sie ein paar Tastenkombinationen, und Sie sollte gut sein.
InformationsquelleAutor der Antwort Braden Best
Aus diesem thread, es ist eine option, die nicht erfordert Installation
gclip
/xclip
/xsel
Drittanbieter-software.Einem perl-Skript (da ist perl in der Regel immer installiert)
InformationsquelleAutor der Antwort VonC
in macOS verwenden
pbpaste
zB:
update die Zwischenablage
pbpaste | ruby -ne ' puts "\|" + $_.split( )[1..4].join("\|") ' | pbcopy
genießen.
InformationsquelleAutor der Antwort jiahut
2018 Antwort
Verwenden Zwischenablage-cli. Es funktioniert mit macOS, Windows, Linux, OpenBSD, FreeBSD, Android, ohne wirkliche Probleme.
Installieren es mit:
npm install -g clipboard-cli
Dann können Sie
echo foo | clipboard
Wenn Sie möchten, können Sie alias
cb
indem Sie die folgende in Ihrem.bashrc
.bash_profile
oder.zshrc
:alias cb=clipboard
InformationsquelleAutor der Antwort Evan Conrad
Gibt es auch xclip-copyfile.
InformationsquelleAutor der Antwort Jonathon Reinhart
Obwohl >1 Jahr später, möchte ich eine etwas andere Lösung. Hoffe, dies ist nützlich für jemanden.
Gestern fand ich mich mit der Frage: ", Wie zu teilen, die Zwischenablage zwischen verschiedenen Benutzer-sessions?". Beim Umschalten zwischen den Sitzungen mit StrgaltF7 - StrgaltF8in der Tat, Sie können nicht fügen Sie, was Sie kopiert haben.
Ich kam mit der folgenden quick & dirty Lösung, basierend auf einer named pipe. Sicherlich ist es Recht kahl und roh, aber ich fand es funktional:
dann in der sendende terminal
Letzte, in dem empfangenden terminal:
Nun geben Sie oder fügen Sie nichts in das erste terminal, und (nach dem drücken von zurück), es erscheint sofort in dem empfangenden terminal, von wo aus Sie können Kopieren/Einfügen wieder überall, das Sie mögen.
Natürlich nicht nur strikt den Inhalt von user1 die Zwischenablage, um ihn in user2-Zwischenablage, sondern es erfordert ein zusätzliches paar von Paste & Copy-Klicks.
InformationsquelleAutor der Antwort lurix66