Copie/Cole conteúdo do terminal para o X e vice-versa

Fala gente! Esse artigo é bem útil para aqueles que, como eu, usam bastante o terminal mas em algum momento precisam copiar alguma coisa para colar em outro lugar através do X. Você poderá copiar arquivos/textos para a área de transferência e vice-versa.

[ Hits: 10.014 ]

Por: Gildásio Júnior em 23/04/2015


Procedimento



Fala gente! Esse artigo é bem útil para aqueles que, como eu, usam bastante o terminal mas em algum momento precisam copiar alguma coisa para colar em outro lugar através do X.

Para isso vamos precisar de um programa, mas trago dois como opções. Eu tenho um preferido - uma dica: a pronúncia parece com um software da MS - mas fica para você escolher o seu. ;)

Os programas são: xsel e xclip. Ambos bem conceituados e provavelmente estão nos repositórios de sua distribuição (a menos que você use Slackware e afins, mas eles estão lá no SlackBuilds também ^-^).

Instalação

P.S.: o procedimento de instalação não vou mostrar aqui, afinal, pressuponho que quem busca uma dica como essa saiba instalar um programa em sua distro, usando APT, aptitude, pacman, yum, SlackBuilds ou afins... Sabendo disso, vamos seguindo.

Definindo: Selections

Tenha em mente que esses programas trabalham com o conceito de selections.

O que seria isso?

Bem, é a partir daí que eles direcionam a atuação para a selection primária, secundária, clipboard... A clipboard é a tal "área de transferência", a que é alterada pelo "Ctrl + c/v", pelo X. A primária (primary) e a secundária (secondary) são variáveis que o próprio programa utiliza.

Sendo que a que nos interessa mesmo, nesse artigo (e no dia a dia), é a clipboard.

No xsel, para selecionarmos o clipboard como a selection a usar é da seguinte forma:

xsel -b
$ xsel --clipboard


Já no xclip é:

xclip -selection clipboard

Sabendo disso, vamos usar sempre a seleção agora para poder fazer as alterações direto na nossa área de transferência.

Ctrl + v

Para a função de "Ctrl + v", que seria a de exibir o conteúdo da área de transferência para a tela, ou algum arquivo, vejamos como fazer...

É bem simples. Em ambos os programas fazemos da mesma forma:

xsel -o
$ xclip -o


Mas saiba também que se o xsel não for acompanhado de nenhuma opção, o padrão é ele exibir o conteúdo. Logo, o comando acima equivale a:

xsel

Esses comandos vão exibir o conteúdo do clipboard na tela. Para passar para um arquivo, como valor de um programa, e outras funções afins, basta direcionar seu fluxo. Veja um exemplo para salvar no arquivo de nome cv.txt no diretório /tmp:

xsel > /tmp/cv.txt
$ xclip -o > /tmp/cv.txt


Ctrl + c

Já vimos como fazer a colagem do que temos na área de transferência, mas antes de colar, temos de copiar, certo?!

Então vamos lá... No início do texto eu disse que o de minha preferência é o xsel e aqui ele já começa a se destacar. Vejamos...

No xclip podemos fazer a cópia da seguinte maneira:

xclip -selection clipboard /tmp/cv.txt

Utilizando o mesmo arquivo que salvamos anteriormente, só para exemplo.

E no xsel, podemos fazer isso de duas maneiras:

xsel -b < /tmp/cv.txt
$ xsel -b -i < /tmp/cv.txt


Ambos os comandos fazem o mesmo resultado. Mas agora que vem um pequeno diferencial do xsel: com ele, posso acrescentar dados ao clipboard.

Para isso, posso utilizar de um parâmetro que dispomos:

xsel -b -a < /tmp/cv.txt

Faça a operação de Ctrl + v agora para verificar se não está com o conteúdo diferente! ;)

Mais umas breves vantagens do xsel

Aqui vou justificar um pouco minha preferência sobre o xsel.

Limpando selection.

Uma opção que acho interessante dele é eu poder limpar a selection que eu quiser. Basta usar o comando:

xsel -c -b

Trocando conteúdo da primary com a secondary.

Isso mesmo, para quem usa também a seleção primária e secundária dada como opções pelo programa pode ter a comodidade de trocar os seus valores usando apenas um parâmetro:

xsel -x

Claro que isso podemos fazer com o xclip, basta brincar um pouco com mais comandos nativos, mas dessa forma mostrada é bem mais simples, convenhamos! :D

Gerando log

Pois é! Para aqueles apaixonados (a.k.a. psicóticos) que gostam de saber de qualquer coisa que dê errado no computador, pode usar a opção de gerar log caso apresente algum erro na execução do procedimento.

xsel -l

O padrão do endereço do arquivo é ~/.xsel.log.

   

Páginas do artigo
   1. Procedimento
Outros artigos deste autor

Como contribuir para projetos abertos no GitHub

WeeChat - Um (O) cliente IRC CLI

Compartilhando o Terminal

VirtualBox no Arch Linux

EditorConfig - Padronização de código para seus projetos

Leitura recomendada

Como utilizar de forma correta os repositórios e pacotes Backports

Instalando um sistema Debian GNU/Linux completo em 20 minutos

Jaulas com debootstrap e schroot

Instalando o Slackware em um computador sem cdrom, placa de rede e disquete

Masterização de VCD's com menu interativo

  
Comentários
[1] Comentário enviado por spylinux em 23/04/2015 - 22:09h

Eu costumo usar apenas o buffer do sistema, com o mouse seleciono o texto (não precisa usar Ctrl C, apenas selecionar com o mouse) e colo via buffer usando o botão do meio do mouse(ou no notebook com o touchpad, uso 2 ou 3 dedos no touch para emular o botão do meio) e assim colo o texto selecionado, sem precisar usar Ctrl + C e Ctrl + V.

Comunidade Manjaro Geek -www.manjaro-geek.org

[2] Comentário enviado por lcavalheiro em 24/04/2015 - 18:55h

Outra forma de copiar do terminal pro X e vice-versa: para copiar do X use <CTRL>C, mas para colar no terminal use <SHIFT><CTRL>V. Da mesma forma, para copiar do terminal use <SHIFT><CTRL>C e para colar no X use <CTRL>V. Lembrando que o o <SHIFT><CTRL>C ou <SHIFT><CTRL>V funcionam mesmo no caso de computadores nos quais o X não esteja rodando e que possuem o mouse habilitado para trabalhar no terminal puro (ex., instalação padrão do Slackware).

--
Luís Fernando Carvalho Cavalheiro
Public GPG signature: 0x246A590B
Só Slackware é GNU/Linux e Patrick Volkerding é o seu Profeta

[3] Comentário enviado por gjuniioor em 28/04/2015 - 17:03h


[1] Comentário enviado por spylinux em 23/04/2015 - 22:09h

Eu costumo usar apenas o buffer do sistema, com o mouse seleciono o texto (não precisa usar Ctrl C, apenas selecionar com o mouse) e colo via buffer usando o botão do meio do mouse(ou no notebook com o touchpad, uso 2 ou 3 dedos no touch para emular o botão do meio) e assim colo o texto selecionado, sem precisar usar Ctrl + C e Ctrl + V.

Comunidade Manjaro Geek -www.manjaro-geek.org


É bom também... Vai facilitando. Boa dica...

Mas para quem não gosta tanto de usar mouse, ai já complica... Sou - digamos - a favor daquela ideia de que quanto menos mouse, mais produtivo, entende?! Então srsr

[4] Comentário enviado por gjuniioor em 28/04/2015 - 17:05h


[2] Comentário enviado por lcavalheiro em 24/04/2015 - 18:55h

Outra forma de copiar do terminal pro X e vice-versa: para copiar do X use &lt;CTRL&gt;C, mas para colar no terminal use &lt;SHIFT&gt;&lt;CTRL&gt;V. Da mesma forma, para copiar do terminal use &lt;SHIFT&gt;&lt;CTRL&gt;C e para colar no X use &lt;CTRL&gt;V. Lembrando que o o &lt;SHIFT&gt;&lt;CTRL&gt;C ou &lt;SHIFT&gt;&lt;CTRL&gt;V funcionam mesmo no caso de computadores nos quais o X não esteja rodando e que possuem o mouse habilitado para trabalhar no terminal puro (ex., instalação padrão do Slackware).

--
Luís Fernando Carvalho Cavalheiro
Public GPG signature: 0x246A590B
Só Slackware é GNU/Linux e Patrick Volkerding é o seu Profeta


Entendo... É uma boa dica e esqueci de citar como opção no artigo... Uso o Ctrl+Shift+V quase que comumente para quando tive de trazer algum conteúdo do X (browser, por exemplo).

[5] Comentário enviado por MunizCwb em 04/05/2015 - 00:44h


Parabéns, Foi de Grande Valia. teu Artigo. Obrigado por contribuir.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts