Como copiar e colar texto no shell bash do Linux

Conteúdo

Conceito de um terminal Linux preenchido com texto em um laptop.

Deseja copiar e colar na linha de comando do shell bash? Mostraremos várias técnicas, se você prefere teclado ou mouse. Eles funcionam se você estiver em uma área de trabalho gráfica ou em um TTY tradicional baseado em texto.

Os atalhos de teclado normais não funcionarão

Copiar e colar texto é uma parte básica do uso de um computador. Quando as pessoas usam um computador Linux pela primeira vez, sejam do mundo do Windows ou do macOS, eles costumam ficar confusos ao tentar copiar e colar em uma janela de terminal.

No Windows, usa Ctrl+C para copiar uma seção do texto destacado e Ctrl+V para enfiar. No macOS, usas Command+C para copiá-lo e Command+V para enfiar. Eles seguem a mesma convenção de C para copiar e V inserir.

Essas mesmas teclas funcionam na maioria dos aplicativos gráficos do Linux, como o editor gedit o la LibreOffice escritório.Ctrl+C copie o texto destacado e Ctrl+V cole no cursor. Nosso recém-chegado ao Linux provavelmente nem pensa no fato de que essas convenções foram aplicadas a esses aplicativos. Eles usam as teclas de memória muscular e continuam seu trabalho.

Uma vez que nosso recém-chegado abre uma janela de terminal e tenta copiar e colar no Bash shell simbolo do sistema, tudo que muda. Ctrl+C e Ctrl+V As funções foram atribuídas a eles muito antes de se pensar em copiar e colar. Na realidade, essas teclas foram recrutadas muito antes de as capas gráficas serem inventadas, quando um ticker (TTY) foi algo físico.

Ctrl + C y Ctrl + V e TTY

Quando um TTY era um dispositivo físico, Ctrl+C foi escolhido como uma combinação de teclas prática para gerar um sinal. Esse sinal é SIGINT, que diz ao procedimento atual para terminar. Porque uma janela de terminal é um TTY emulado, aquela combinação de teclas (e muitos outros) foi preservado e replicado em emulação. Observe que é o janela do terminal essa é a emulação. O shell Bash é um programa executado naquele TTY emulado.

Podemos ver facilmente as funções que foram atribuídas a Ctrl+C e Ctrl+V. Suponha que você digite o seguinte comando e pressione “Digitar”.

ls -R /

Porque estamos usando o -R (recursivo) opção o ls O comando começará a listar todos os arquivos e diretórios, começando do diretório raiz. Depois de alguns momentos, você percebe que não é isso que você queria, então você termina o procedimento pressionando Ctrl+C.

Ctrl + C

a ls o procedimento termina. A evidência visível de Ctrl+C está destacado na imagem. É mostrado como ^C.

a Ctrl+V combinação de teclas invoca “inserção literal”. Isso permite que você insira uma representação de uma tecla no que você está digitando, em vez de obter o efeito da chave. Para ver isso, tente os seguintes comandos (não escreva as vírgulas). (Como um exemplo, para testar o primeiro, presione Ctrl + V e pressione Enter).

Ctrl + V, Digitar
Ctrl + V, PgDn
Ctrl + V, Seta direita
Ctrl + V, Esc

Como um comentário rápido, você pode notar que Enter é representado por ^M . Nós vimos antes Ctrl+C apareceu como ^C. Parece que ^ Representa Ctrl. Então Ctrl+M provavelmente significa o mesmo que Enter. Isso significa que podemos inserir Enter digitando Ctrl+M? Experimente em uma janela de terminal. Você verá que sim.

Então, claramente não podemos esperar Ctrl+C e Ctrl+V para copiar e colar texto quando as funções tradicionais já estiverem atribuídas. Então, O que podemos usar?

RELACIONADO: Como ser mais produtivo no Ubuntu usando atalhos de teclado

Ctrl + Mudança + C y Ctrl + Mudança + V

Eles são facilmente lembrados devido ao fato de serem muito semelhantes aos seus homólogos, Ctrl+Shift+C e Ctrl+Shift+V são substitutos diretos para Ctrl+C e Ctrl+V.

Se você destacar o texto na janela do terminal com o mouse e pressionar Ctrl+Shift+C irá copiar aquele texto para um buffer da área de transferência.

Ctrl + Shift + C

Você pode usar Ctrl+Shift+V para colar o texto copiado na mesma janela de terminal ou em outra janela de terminal.

Ctrl + Shift + V

Você também pode colar em um aplicativo gráfico como gedit. Mas lembre-se de que ao colar em um aplicativo, e não em uma janela de terminal; você deve usar Ctrl+V.

Cole de uma janela de terminal no editor gedit

E você também pode ir para o outro lado. Você pode destacar o texto em gedit e acertar Ctrl+C e cole-o em uma janela de terminal usando Ctrl+Shift+V.

Copie do editor gedit e cole em uma janela de terminal

A combinação de teclas Ctrl+Insert é o mesmo que Ctrl+Shift+C , e a combinação Shift+Insert é o mesmo que Ctrl+Shift+V. A ressalva aqui é que eles só podem ser usados ​​dentro da mesma janela de terminal.

Usando o mouse: clique com o botão direito

Você pode usar o mouse para copiar e colar em uma janela de terminal. Você deve usar o mouse para destacar o texto que vai copiar, portanto, por que não usá-lo para executar as ações de copiar e colar?

Depois de destacar algum texto, clique com o botão direito e selecione “cópia de” no menu de contexto.

janela do terminal com menu de contexto e cópia destacada

Para colar o texto copiado, clique com o botão direito do mouse mais uma vez e selecione “Pegar” no menu de contexto.

janela do terminal com menu de contexto e colar selecionado

O texto é colado na posição do cursor na linha de comando. Neste exemplo, o caminho relativo foi fornecido incorretamente e o Bash não pode mudar de diretório. O usuário perdeu “~ /” desde o início do percurso. Eles digitaram "~ /" e depois copiaram o resto do caminho da tentativa anterior e colaram em sua segunda linha de comando.

Quando eles pressionam Enter, mover para o diretório.

janela do terminal com um diretório alterado obtido por meio de copiar e colar

Este exemplo mostra como colar na mesma janela de terminal, mas você pode usar esta técnica de clique com o botão direito para colar em diferentes janelas de terminal. Você também pode colar em aplicativos gráficos usando este método.

Usando o mouse: botão do meio

Existe uma maneira ainda mais rápida de copiar e colar com o mouse, contanto que o seu mouse tenha um botão do meio. Se você pressionar a roda de rolagem (suavemente!) E clica, tem um botão central.

Destaque um texto em uma janela de terminal e pressione o botão do meio. O texto destacado é colado na posição do cursor na linha de comando. Copiar e colar acontecem ao mesmo tempo.

Então, destaque algum texto:

janela do terminal com algum texto destacado

Em seguida, pressione o botão central:

janela do terminal com texto destacado colado na linha de comando

Você pode usar este método para colar entre diferentes janelas de terminal e também em aplicativos gráficos. Basta destacar o texto, vá para o outro terminal ou janela do aplicativo e pressione o botão do meio.

Escola velha – Sem mouse

O que acontece quando você não tem um mouse? Se você não consegue destacar nenhum texto, Como você pode copiar e colar isso?

Os servidores Linux são frequentemente configurados sem um ambiente gráfico de desktop (ONDE), o que significa que você não tem acesso a um mouse. Mesmo em um computador Linux que executa um ambiente de área de trabalho gráfico como o GNOME e tem um mouse, Haverá casos em que você não será capaz de usar o mouse para destacar o texto.

Como um exemplo, você pode ter mudado para um dos TTYs adicionais. Em distribuições modernas, estes estão em Ctrl+Alt+F3 (TTY3) até Ctrl+Alt+F6 (TTY6). (Ctrl+Alt+F2 o levará de volta à sua sessão GDE e Ctrl+Alt+F1 irá levá-lo para a tela de login do GDE).

Talvez você esteja usando um dispositivo TTY de hardware genuíno para se conectar a um computador Linux ou Unix..

De qualquer maneira, essas técnicas vão funcionar para você. O ponto a ser lembrado aqui é que isso não é cópia de e colar, isto é cortar pegar, e colar, e você só pode cortar e copiar da linha de comando atual. De qualquer forma, você pode usar as teclas de seta para rolar pelo seu histórico e encontrar a linha de comando da qual deseja cortar, copiar e colar.

As teclas que você pode usar são:

  • Ctrl + C: Corte a palavra antes do cursor e adicione-a ao buffer da área de transferência.
  • Ctrl + K: Corte a parte da linha após o cursor e adicione-a ao buffer da área de transferência. Se o cursor estiver no início da linha, irá cortar e copiar a linha inteira.
  • Ctrl + você: Corte a parte da linha antes do cursor e adicione-a ao buffer da área de transferência. Se o cursor estiver no final da linha, irá cortar e copiar a linha inteira.
  • Ctrl + E: Cole o último texto que foi cortado e copiado.

Vamos passar para TTY3. (Use Ctrl + Alt + F1 para retornar à sua área de trabalho mais tarde).

Ctrl + Alt + F3
tty

Temos um arquivo que queremos deletar, vamos verificar se está aqui.

ls -l file_to_delete.txt

Se usarmos a tecla de seta para cima, vamos chamar o último comando que usamos fora do histórico de comandos. Poderíamos apenas editar esta linha, mas o objetivo é demonstrar como cortar, copiar e colar, portanto, cumpriremos nossa tarefa de excluir o arquivo de uma maneira um tanto demorada.

Iremos mover o cursor para a primeira letra do nome do arquivo e então pressionaremos Ctrl+K. Isto irá remover aquela parte da linha e copiar o texto para o buffer da área de transferência.

Vamos pressionar Backspace até deletarmos a linha.

Vamos digitar o rm para deletar o arquivo.

E agora podemos bater Ctrl+Y e cole o resto da linha.

Isso completa o nosso comando e podemos pressionar Enter para excluir o arquivo.

Este tipo de corte, copiar e colar não pode ser usado entre TTYs adicionais. Não pode cortar, copie e cole entre TTY3 e TTY4, como um exemplo.

É melhor pensar em TTYs adicionais como uma linha TTY física colocada lado a lado. Não há como cortar e colar entre os diferentes terminais físicos, e não há como fazer isso nessas emulações.

RELACIONADO: Como funcionam os sinais do Linux: SIGINT, SIGTERM y SIGKILL

Entendido, ao controle

Qualquer que seja a situação em que você esteja usando um computador Linux, haverá uma maneira de copiar e colar. Você tem opções. Alguns deles são opções estranhas, mas pelo menos existem opções.

setTimeout(função(){
!função(f,b,e,v,n,t,s)
{E se(f.fbq)Retorna;n = f.fbq = função(){n.callMethod?
n.callMethod.apply(n,argumentos):n.queue.push(argumentos)};
E se(!f._fbq)f._fbq = n;n.push = n;n.loaded =!0;n.version = ’2.0′;
n.queue =[];t = b.createElement(e);t.async =!0;
t.src = v;s = b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s) } (window, documento,'roteiro',
‘Https://connect.facebook.net/en_US/fbevents.js ’);
fbq('iniciar', ‘335401813750447’);
fbq('acompanhar', ‘PageView’);
},3000);

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.