Vraag Hoe pijp terminal standaard output (stdout) naar het klembord?


Bijvoorbeeld,

Zeg dat ik het wil lijst van de inhoud van een map en plak ze rechtstreeks in een chatvenster voor een vriend om te zien.

Ik weet dat ik het kan ls > filename.txt om een ​​bestand (filename.txt) met die inhoud te maken; Ik zou dan het bestand moeten openen en afdrukken en selecteer en kopieer het tekstblok handmatig (wat vervelend / vervelend kan zijn.) Ik zou duidelijk ook de uitvoer van kunnen selecteren en kopiëren ls rechtstreeks vanuit het terminalvenster.

Het zou veel sneller / eenvoudiger zijn om standaarduitvoer naar het klembord te leiden.

Met welk terminalcommando kan ik dit doen?


71
2017-09-05 15:28


oorsprong


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


antwoorden:


Dit kan met beide worden gedaan xsel  Install xsel of Poldertube  Install xclip hulpprogramma's voor opdrachtregels. Aangezien geen van beide programma's standaard met Ubuntu wordt meegeleverd, moet u ze eerst installeren via Software Center of de terminal. Hier is hoe in de terminal (maar onthoud dat je slechts een van deze twee nodig hebt.)

sudo apt install xsel
sudo apt install xclip

Nu enkele voorbeelden. Als u de uitvoer van wilt kopiëren ls naar het klembord, hier is wat je zou doen:

Met Xsel:

ls | xsel -ib

Met xclip:

ls | xclip -sel clip

Dit kan natuurlijk ook worden gebruikt voor andere terminalopdrachten. Laten we zeggen dat u uw netwerkinfo op een helpforum wilt plakken.

Met Xsel:

sudo lshw -C network | xsel -ib

Met xclip:

sudo lshw -C network | xclip -sel clip

Maak dit nog gemakkelijker met een nieuwe bash alias! 

Bewerk je ~/.bash_aliases bestand (als het nog niet bestaat, maak het dan eerst aan met touch ~/.bash_aliases)

Dan toevoegen een (afhankelijk van welk programma je hebt gekozen om mee te gaan) van het volgende:

alias copy='xclip -sel clip'

of

alias copy='xsel -ib'

Sla dan op en sluit.

Nu (na het herstarten van uw terminal) kunt u standaarduitvoer naar het klembord verzenden door het gewoon door te sturen naar 'kopiëren' (of wat u ook kiest om uw nieuwe alias te benoemen)

Bijvoorbeeld:

ls | copy

86
2017-09-05 15:28



Bij nieuwere Ubuntu-versies moet u dit gebruiken apt. Zo sudo apt install xsel of sudo apt install xclip. - wisbucky
@jpaugh. Vergelijk de Ubuntu-pakketbeheerdocumentatie voor 16.04 vs 14.04. In 16.04 wordt alleen vermeld apt en niet apt-get. Je kunt nog steeds gebruiken apt-get, maar ze proberen mensen aan te moedigen om te gebruiken apt. - wisbucky
U hoeft de terminal niet opnieuw te starten; je kunt gewoon source ~/.bash_aliases - Rob K
@Mohamad Deze zijn bedoeld voor gebruik binnen een X-server (aangezien deze de klembordfunctie biedt). Als je dat niet hebt, moet je het doen in je terminal-emulator. Hoe dat te doen, hangt af van de daadwerkelijke software die u gebruikt, omdat daarvoor geen de-facto standaard is. - Thorbjørn Ravn Andersen
Als u ook stderr wilt vastleggen (de fouten die kunnen optreden met uw opdracht, behalve stdout), moet u bijvoorbeeld ls nonexisting_file 2>&1 | xclip -sel clipboard, wat betekent dat je stderr doorstuurt naar stdout. - user2376000