Come installo negli Appunti l'output standard del terminale (stdout)?


106

Per esempio,

Di 'che voglio elencare i contenuti di una cartella e incollarli direttamente in una finestra di chat affinché un amico possa vederli.

Mi rendo conto che potrei fare ls > filename.txtper creare un file (nomefile.txt) con quei contenuti; Dovrei quindi aprire o stampare il file e selezionare e copiare manualmente il blocco di testo ( che può essere noioso / noioso ). Chiaramente potrei anche selezionare e copiare l'output di lsdirettamente dalla finestra del terminale.

Sarebbe molto più veloce / più semplice semplicemente reindirizzare l'output standard negli Appunti .

Quale comando terminale mi permette di fare questo?


Risposte:


122

Questo può essere fatto con le utility della riga di comando xsel o xclip . Poiché nessuno dei programmi viene fornito con Ubuntu per impostazione predefinita, è necessario prima installarli tramite il software Ubuntu o il terminale. Ecco come nel terminale (ma ricorda che hai solo bisogno di uno di questi due.)

sudo apt install xsel
sudo apt install xclip

Ora alcuni esempi. Se desideri copiare l'output di lsnegli Appunti ecco cosa faresti:

Con xsel:

ls | xsel -ib

Con xclip:

ls | xclip -sel clip

Questo può ovviamente essere utilizzato anche per altri comandi del terminale . Supponiamo che tu voglia incollare le informazioni di rete in un forum di assistenza.

Con xsel:

sudo lshw -C network | xsel -ib

Con xclip:

sudo lshw -C network | xclip -sel clip

Rendi tutto ancora più semplice con un nuovo alias bash!

Modifica il tuo ~/.bash_aliasesfile (se non esiste ancora crealo prima con touch ~/.bash_aliases)

Quindi aggiungi uno (a seconda del programma con cui hai deciso di andare) di quanto segue:

alias copy='xclip -sel clip'

o

alias copy='xsel -ib'

Quindi salva e chiudi.

Ora (dopo aver riavviato il terminale) è possibile inviare l'output standard negli Appunti semplicemente eseguendo il piping su 'copia' (o come si decide di nominare il nuovo alias)

Per esempio:

ls | copy

1
Con le versioni più recenti di Ubuntu, dovresti usare apt. Così sudo apt install xselo sudo apt install xclip.
Wisbucky,

1
Grazie per la risposta ma sai qualcosa solo per il terminale Linux?
Mohamad,

1
@jpaugh. Confronta la documentazione sulla gestione dei pacchetti Ubuntu per 16.04 vs 14.04 . Nel 16.04, menziona solo apte non apt-get. Puoi ancora usare apt-get, ma stanno cercando di incoraggiare le persone a usare apt.
Wisbucky,

2
Non è necessario riavviare il terminale; puoi solosource ~/.bash_aliases
Rob K,

1
@Mohamad Questi sono per l'esecuzione all'interno di un server X (in quanto fornisce la funzionalità degli Appunti). Se non lo possiedi, devi farlo nell'emulatore di terminale. Come farlo, dipende dal software reale che stai utilizzando, poiché non esiste uno standard di fatto per questo.
Thorbjørn Ravn Andersen,

2

Se stai tentando di copiare negli appunti usando Ubuntu nel sottosistema Windows per Linux (WSL) xsel o xclip non funzionerà a meno che tu non stia usando X Windows poiché gli appunti sono solo per i grafici. Tuttavia, per reindirizzare l'output standard del terminale negli Appunti in WSL Ubuntu è possibile utilizzare clip.exe. È quindi possibile incollare nel terminale WSL Ubuntu con i comandi incolla standard e il testo copiato sarà disponibile anche in Windows. Per esempio,

pwd | clip.exe 

copierà la directory di lavoro corrente negli appunti (Windows).

Questo risultato di ricerca appare in alto quando si cercano modi per copiare / incollare il testo in WSL, quindi penso che valga la pena menzionarlo, quindi i lettori non installano inutilmente xsel o xclip in Ubuntu e invece usano clip.exe.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.