[[Vorlage(Getestet, bionic, jammy)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [sourceforge:xclip:] {en} dient wie [:xsel:] der Verwaltung der Zwischenablage(n), sprich des X11-Clipboards von der Kommandozeile aus. Das Programm bietet Möglichkeiten, die [:Zwischenablage:] effektiv als Schnittstelle zwischen Kommandozeile und grafischen Anwendungen zu nutzen. Mit dem Paket werden zusätzliche Programme installiert, die zum Kopieren, Verschieben und Einfügen von Dateien mittels der Zwischenablage dienen, hier aber nicht näher beschrieben sind. = Installation = Das Programm kann über die Paketverwaltung installiert werden:[1] {{{#!vorlage Paketinstallation xclip, universe }}} = Bedienung = Der allgemeine Aufruf lautet:[2] {{{#!vorlage Befehl xclip OPTIONEN DATEI }}} Mit dem folgenden Befehl liest man beispielsweise die Datei '''/etc/lsb-release''' in den primären Bereich der Zwischenablage: {{{#!vorlage Befehl xclip /etc/lsb-release }}} Nun kann man den Inhalt der Datei (die Informationen zum Ubuntu Release) an beliebiger Stelle einfügen – für gewöhnlich mit der mittleren Maustaste [[Vorlage(Tasten, mmt)]]. Da xclip im vorhergehenden Beispiel ohne Optionen aufgerufen wurde, wurden die Standard-Einstellungen verwendet. Dies entspricht folgendem Befehl mit ausgeschriebenen Optionen: {{{#!vorlage Befehl xclip -in -selection primary /etc/lsb-release }}} == Optionen == xclip bietet einige Optionen, von denen hier nur die wichtigsten beschrieben sind; weitere Optionen beschreibt die [:Shell/man:Manpage]. Die Optionen müssen nicht ausgeschrieben werden, solange die Verkürzung eindeutig ist. So ist folgender Befehl gleichbedeutend zum vorhergehenden Aufruf: {{{#!vorlage Befehl xclip -i -se p /etc/lsb-release }}} == Ein- und Ausgabe == Wie am Beispiel der Release-Informationen zu sehen, schreibt xclip standardmäßig den Inhalt einer Datei in die Zwischenablage. Zum Schreiben in die Zwischenablage wird der Parameter `-in` verwendet. Mit dem Parameter `-out` wird der Inhalt der Zwischenablage auf die Standardausgabe geschrieben: {{{#!vorlage Befehl xclip -out }}} Mittels einer [:Shell/Umleitungen:Umleitung] kann auch die Ausgabe eines Befehls in die Zwischenablage geschrieben werden. {{{#!vorlage Befehl date | xclip }}} == Bereiche == Die Zwischenablage (das X11-Clipboard) hat drei Bereiche, zwischen denen über die Option `-selection` gewählt werden kann: * `primary` - die primäre Auswahl (Kopie der letzten Markierung) * `secondary` - anwendungsspezifische Auswahl * `clipboard` - die eigentliche Zwischenablage Ohne eine andere Angabe, nutzt xclip den `primary`-Bereich. In diesem Bereich wird zwischengespeichert, was im grafischen System in der Regel mit der Maus * [[Vorlage(Tasten, lmt)]] markiert wurde und * [[Vorlage(Tasten, mmt)]] wieder eingefügt werden kann. Der Bereich `secondary` wird nur von wenigen Anwendungen beansprucht und bietet die Möglichkeit, einen Inhalt gegen einen anderen auszutauschen. Der Bereich `clipboard` wird auf der grafischen Seite gewöhnlich über Einträge in einem Kontextmenü oder Tastenkürzel verwaltet. {{{#!vorlage Befehl xclip -selection clipboard DATEI }}} Hierbei dient in der Regel * [[Vorlage(Tasten, strg+c)]] zum Kopieren, * [[Vorlage(Tasten, strg+x)]] zum Ausschneiden und * [[Vorlage(Tasten, strg+v)]] zum Einfügen. = Beispiele = == Dateiname zu -inhalt == Dieses Beispiel liest einen Dateinamen aus der Zwischenablage und schreibt, sofern die Datei gelesen werden kann, ihren Inhalt zurück in die Zwischenablage: {{{#!vorlage Befehl file=$(xclip -out);[[ -r ${file} ]] && xclip ${file} }}} == Clipboard-Vorschau == Folgendes Benutzer-Skript für [:byobu:] gibt mit Hilfe von [:sed:] die ersten dreizehn Zeichen der ersten Zeile des Textes aus der Zwischenablage gefolgt von drei Punkten wieder: {{{#!code bash #!/usr/bin/env bash # byobu custom script: clipboard preview # message length LENGTH="13" # X11-selection: clipboard, primary, secondary SELECTION="clipboard" # get n chars of the selections first line followed by three dots xclip -out -selection "${SELECTION}" | sed "1!d;s/\(.\{${LENGTH}\}\).*/\1\.\.\./" }}} Aus "Es war einmal vor langer Zeit in einem weit entfernten Land" wird somit "Es war einmal...". = Links = * [:Zwischenablage:] * [:Shell/Anwendungen:] {Übersicht} Übersichtsartikel # tag: Shell, Desktop