Dans cet article, nous allons voir comment gérer le presse-papier en ligne de commande sous Linux grâce au programme xclip. Cela nous permettra de réaliser des copier/coller en ligne de commande ou via des scripts bash. Par exemple, nous pouvons remplir le presse-papier à l’aide d’un script de bash de telle sorte que la fonction de collage renvoi le texte issue du script.
Cela peut s’avérer utile dans une démarche d’optimisation des actions quotidiennes, cela peut faire gagner énormément de temps.
Table des matières
Installation de xclip
L’installation de xclip
est très simple car le logiciel se trouve dans les dépôts officiels de la plupart des distributions Linux. Avec CentOS, cela se résume à activer le dépôt epel et utiliser la commande yum
.
Copier des données dans le presse papier
Par défaut, xclip va lire l’entrée standard et placer les données lu dans le presse papier par défaut : c’est-à-dire celui qui est utilisé avec le bouton molette de la souris. En effet, il existe plusieurs presses papier et xclip sait faire la différence, on va voir cela juste après.
La commande la plus basique est donc :
On peut également placer le contenu d’un fichier dans le presse papier. On peut faire cela avec les redirections de flux :
On peut également manipuler deux presses papiers. Si vous ne le saviez pas, il existe (au moins) deux presses papiers sur Linux :
- Celui accessible avec la sélection et le clic-molette de la souris. Pour xclip, c’est le presse papier
primary
- Celui accessible avec les raccourcis
CTRL + C
etCTLR + V
(ou clic droit copier/coller). C’est le presse papierclipboard
. - Dans le manuel de xclip, il est mentionné une troisième option
secondary
mais dans mes tests, cela ne semble pas fonctionner. En faisant quelques recherches, la distinction semble être expliquée sur un article à propos de X et la gestion du presse papier. L’article ne parle pas desecondary
donc pour moi,secondary
n’existe pas dans X, c’estclipboard
qu’il faut utiliser. En résumé, on oubliesecondary
.
Par défaut, xclip place les données dans le presse papier principal, c’est-à-dire celui accessible avec le clic-molette. Cela peut se changer avec l’option -selection
:
Coller des données
Pour coller des données, on peut utiliser le clic molette pour le presse papier primary
ou CTRL + V
et clic droit/coller pour le presse papier clipboard
(voire même SHIFT + INSERT
, mais c’est moins connu).
On peut également utiliser xclip pour coller des données, ce qui permet de gérer cela en ligne de commande ou dans un script. Pour cela, il suffit de lancer xclip avec l’option -o
(pour out). L’option -selection
est toujours supportée, elle permet de choisir à partir de quel presse papier il faut récupérer les données :
Conclusion
Nous avons vu comment il est possible de gérer le presse papier en ligne de commande à l’aide de xclip. Cela permet de copier/coller des données en ligne de commande, tout en faisant la distinction entre les différents presses papiers qu’il existe.
Un cas d’usage intéressant est un script qui permet de remplir automatiquement le presse papier pour qu’il soit utilisé facilement dans un environnement graphique. Par exemple, pour copier/coller un mot de passe qui serait généré par le script (attention à la sécurité !). Cela permet d’automatiser certaines tâches.