Shell do Linux: Copie a saída para a área de transferência sem o mouse?

25

É possível copiar a saída na área de transferência sem usar o mouse?

Por exemplo, eu gostaria de fazer algo assim:

$ pwd >> área de transferência

Hayek
fonte
cat / etc / passwd | xsel --clipboard
Abhisheietk

Respostas:

25

Você pode obter e usar os comandos xclipe xsel. As instruções para obtê-las e usá-las estão aqui .

Sem argumentos, xclipcopie para a área de transferência principal (colar com o botão do meio) em vez da área de transferência Ctrl- C/ Ctrl- V/ clique com o botão direito do mouse no menu de contexto.

Tente echo foo | xclip -selection clipboardcopiar algum texto para o último.

Para enviar a área de transferência para a saída padrão: xclip -selection clipboard -o

O utilitário equivalente para MacOS é pbcopy(e pbpaste)

Pausado até novo aviso.
fonte
1
@brauliobo: Onde está "aqui"? Sério, o que você quer dizer? Não funciona de que maneira, exatamente?
Pausado até novo aviso.
1
@DennisWilliamson eu tentei cat file | xclipe ele não funciona
brauliobo
1
@brauliobo: Não funciona de que maneira, exatamente ? Mensagem de erro? Mau comportamento? Anomalias do campo magnético?
Pausado até novo aviso.
8
@brauliobo: Presumo que klipperseja um visualizador da área de transferência. Experimente cat file | xclip -selection clipboardSem os argumentos extras, xclipcopie para a área de transferência principal (pasta com o botão do meio do mouse) em vez da área de transferência Ctrl-C / Ctrl-V / clique com o botão direito do mouse no menu de contexto.
Pausado até novo aviso.
1
@ Dennis, talvez você possa adicionar o último comentário à resposta, pois isso é bastante importante e não é óbvio, e é uma ótima adição.
Kvothe
2

Receio que não exista "prancheta" na maioria dos shell do linux, pelo menos nenhum que eu conheça. Há uma área de transferência no servidor X (se o seu sistema tiver X11, você poderá acessá-la usando o xclipcomando). Se você se conectar à sua conta shell usando algum software emulador de ssh / terminal, como o PuTTy, poderá usar a área de transferência do sistema que está usando, mas isso ainda seria uma área de transferência externa e talvez você não consiga evitar o uso do mouse.

O que eu encontrei é esse pequeno script do bash, encontrado em http://geek.phatus.com/2010/01/create-a-simple-yet-very-useful-bash-clipboard/ . Basicamente, cria um arquivo temporário que serve como área de transferência - você pode limpar, executar, gravar etc. seus dados temporários usando um conjunto de comandos, que é o que uma área de transferência faz;)

Neo
fonte
o op era um pouco incerto sobre sua configuração: ele se referia à área de transferência do xserver.
Akira
1

Se você estiver em um MAC, poderá usar o pbcopy assim:

pbcopy < thing_to_write_to_clipboard
coderdan
fonte
0

Eu fiz uma pequena ferramenta fornecendo funcionalidade semelhante, sem usar o xclip ou o xsel. A saída padrão é copiada para uma área de transferência e pode ser colada novamente no terminal, consulte:

https://sourceforge.net/projects/commandlinecopypaste/

Observe que essa ferramenta não precisa de uma sessão-x. A área de transferência pode ser usada apenas dentro do terminal e não pode ser colada com ctrl + v ou clique com o botão do meio do mouse em outras janelas do x

Dirk Duschinger
fonte
0

E de uma maneira feia, para os casos em que você deseja copiar a saída do terminal para a área de transferência, mas não possui um mouse conectado à sua máquina - usando o recurso "teclas do mouse" do X.

Pressione Shift+ NumLocke as teclas do teclado numérico funcionarão para controlar o movimento do cursor. Você pode pressionar Num 0para simular, pressionar e segurar LMB e mover o cursor conforme necessário, e pressionar Num 5para simular a liberação do LMB. Agora você selecionou seu texto. Para simular o RMB, pressione Num -para alterar o botão ativo do mouse e, em seguida, Num 5para obter o menu de contexto. Agora você deseja retornar ao modo LMB: pressione Num /. Agora você pode mover o cursor para a entrada do menu "Copiar" e pressionar Num 5. Isso é tudo. Você tem seu texto na área de transferência. Pressione Shift+ NumLockpara obter o seu teclado numérico para sua função original.

PS: Em algumas distros (por exemplo, Kubuntu), o atalho das teclas do mouse parece estar desativado por padrão ou de alguma forma oculto.

Ruslan
fonte