Question Comment puis-je diriger la sortie standard du terminal (stdout) vers le presse-papier?


Par exemple,

Dis que je veux lister le contenu d'un dossier et les coller directement dans une fenêtre de discussion pour un ami à voir.

Je réalise que je pourrais faire ls > filename.txt créer un fichier (filename.txt) avec ces contenus; Je devrais alors ouvrir ou imprimer le fichier et sélectionner et copier manuellement le bloc de texte (ce qui peut être ennuyeux / fastidieux.) Je pourrais clairement également sélectionner et copier la sortie de ls directement depuis la fenêtre du terminal.

Il serait beaucoup plus rapide / facile de simplement diriger la sortie standard vers le presse-papiers.

Quelle commande de terminal me permet de le faire?


71
2017-09-05 15:28


origine


unix.stackexchange.com/questions/3892/… - Ciro Santilli 新疆改造中心 六四事件 法轮功


Réponses:


Cela peut être fait avec soit xsel  Install xsel ou xclip  Install xclip utilitaires de ligne de commande. Comme aucun des programmes n'est livré avec Ubuntu par défaut, vous devrez d'abord les installer via Software Center ou le terminal. Voici comment dans le terminal (mais rappelez-vous que vous n'avez besoin que de l'un des deux.)

sudo apt install xsel
sudo apt install xclip

Maintenant, quelques exemples. Si vous voulez copier la sortie de ls dans le presse-papiers, voici ce que vous feriez:

Avec xsel:

ls | xsel -ib

Avec xclip:

ls | xclip -sel clip

Cela peut bien sûr être utilisé pour d'autres commandes de terminal. Disons que vous voulez coller vos informations de réseau dans un forum d'aide.

Avec xsel:

sudo lshw -C network | xsel -ib

Avec xclip:

sudo lshw -C network | xclip -sel clip

Rendez cela encore plus facile avec un nouvel alias bash! 

Modifier votre ~/.bash_aliases fichier (s'il n'existe pas encore, créez-le d'abord avec touch ~/.bash_aliases)

Puis ajouter un (selon le programme que vous avez décidé d’aller avec):

alias copy='xclip -sel clip'

ou

alias copy='xsel -ib'

Ensuite, sauvegardez et fermez.

Maintenant (après avoir redémarré votre terminal), vous pouvez envoyer une sortie standard au presse-papiers en la redirigeant simplement vers «copy» (ou tout ce que vous décidez de nommer votre nouvel alias)

Par exemple:

ls | copy

86
2017-09-05 15:28



Avec les nouvelles versions d'Ubuntu, vous devriez utiliser apt. Alors sudo apt install xsel ou sudo apt install xclip. - wisbucky
@ jpaugh. Comparez la documentation de gestion du paquet Ubuntu pour 16.04 contre 14.04. En 16.04, il ne mentionne que apt et pas apt-get. Vous pouvez toujours utiliser apt-get, mais ils essaient d'encourager les gens à utiliser apt. - wisbucky
Vous n'avez pas à redémarrer le terminal; tu peux juste source ~/.bash_aliases - Rob K
@Mohamad Celles-ci sont destinées à être utilisées dans un serveur X (car elles fournissent la fonctionnalité du presse-papiers). Si vous ne l'avez pas, vous devez le faire dans votre émulateur de terminal. Comment faire cela dépend du logiciel que vous utilisez, car il n'y a pas de norme de facto pour cela. - Thorbjørn Ravn Andersen
Si vous souhaitez également capturer stderr (les erreurs pouvant survenir avec votre commande, outre stdout), vous devez utiliser par exemple ls nonexisting_file 2>&1 | xclip -sel clipboard, ce qui signifie que vous redirigez stderr vers stdout. - user2376000