Copiar e colar no Bash: Truques e atalhos para Linux!

Precisa copiar e colar comandos no shell Bash? Apresentaremos várias maneiras de realizar essa tarefa, seja utilizando o teclado ou o mouse. Esses métodos funcionam tanto em ambientes de área de trabalho gráfica quanto em terminais de texto tradicionais.

Atalhos de Teclado Comuns Não Funcionam

A funcionalidade de copiar e colar é essencial na utilização de um computador. Usuários iniciantes em Linux, vindos do Windows ou macOS, frequentemente se confundem ao tentar copiar e colar em janelas de terminal.

No Windows, Ctrl + C é usado para copiar texto selecionado, e Ctrl + V para colá-lo. No macOS, os comandos equivalentes são Command + C para copiar e Command + V para colar. Há uma consistência na utilização da letra “C” para copiar e “V” para inserir.

Essas mesmas combinações de teclas funcionam na maioria dos aplicativos gráficos do Linux, como o editor gedit ou a suíte de escritório LibreOffice. Ctrl + C copia o texto selecionado e Ctrl + V o cola no cursor. É provável que um novo usuário de Linux nem perceba que essas convenções estão em ação, já que as utiliza por memória muscular e prossegue com o trabalho.

Entretanto, a situação muda completamente quando o usuário abre uma janela de terminal e tenta copiar e colar no prompt de comando do shell Bash. Ctrl + C e Ctrl + V possuíam funções atribuídas a elas muito antes de a funcionalidade de copiar e colar ser concebida. Na realidade, essas combinações de teclas foram definidas antes mesmo do surgimento de shells gráficos, em uma época em que o teletipo (TTY) era um dispositivo físico.

Ctrl + C e Ctrl + V em TTYs

Nos primórdios dos TTYs físicos, Ctrl + C foi escolhido como atalho para gerar um sinal. Este sinal é o SIGINT, que indica ao processo atual que ele deve ser encerrado. Como uma janela de terminal é essencialmente um TTY emulado, essa combinação de teclas e outras foram mantidas e replicadas na emulação. É importante notar que a emulação ocorre na janela do terminal, e o shell Bash é apenas um programa sendo executado nesse TTY virtual.

Podemos facilmente observar as funções alocadas para Ctrl + C e Ctrl + V. Digamos que você digite o seguinte comando e pressione “Enter”:

ls -R /

Como estamos utilizando a opção -R (recursiva), o comando ls começará a listar todos os arquivos e diretórios, começando pelo diretório raiz. Após alguns instantes, se perceber que não era isso que você queria, pode encerrar o processo pressionando Ctrl + C.

Ctrl+C

O processo ls foi interrompido. A evidência do uso de Ctrl + C está destacada na imagem, sendo exibida como ^C.

A combinação de teclas Ctrl + V invoca o que chamamos de “inserção literal”. Isso permite inserir a representação de uma tecla em vez de executar a ação que ela representa. Para testar isso, tente os seguintes comandos (sem digitar as vírgulas): Para o primeiro exemplo, pressione Ctrl + V e depois pressione Enter.

Ctrl+V, Enter
Ctrl+V, PgDn
Ctrl+V, RightArrow
Ctrl+V, Esc

Como um breve aparte, observe que o Enter é representado por ^M. Anteriormente, vimos que Ctrl + C apareceu como ^C. Parece que ^ é uma representação de Ctrl. Assim, Ctrl + M provavelmente significa o mesmo que Enter. Será que podemos inserir o Enter digitando Ctrl + M? Tente em uma janela de terminal, você verá que funciona.

Portanto, não podemos simplesmente esperar que Ctrl + C e Ctrl + V realizem cópia e colagem de texto, já que eles têm funções históricas específicas. Então, o que podemos usar?

Ctrl + Shift + C e Ctrl + Shift + V

Fáceis de lembrar por serem bem semelhantes a seus equivalentes, Ctrl + Shift + C e Ctrl + Shift + V são substitutos diretos para Ctrl + C e Ctrl + V.

Ao selecionar texto na janela do terminal com o mouse e pressionar Ctrl + Shift + C, você copiará esse texto para a área de transferência.

Ctrl+Shift+C

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

Ctrl+Shift+V

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

Você também pode fazer o caminho inverso. Selecione texto no gedit e pressione Ctrl + C e depois cole em uma janela de terminal usando Ctrl + Shift + V.

A combinação de teclas Ctrl + Insert equivale a Ctrl + Shift + C, e a combinação Shift + Insert equivale a Ctrl + Shift + V. Uma ressalva é que elas só podem ser usadas na mesma janela de terminal.

Utilizando o Mouse: Clique com o Botão Direito

Você pode utilizar o mouse para copiar e colar em uma janela de terminal. Já que é necessário o mouse para selecionar o texto que será copiado, por que não o usar para as ações de copiar e colar?

Após selecionar o texto desejado, clique com o botão direito do mouse e selecione “Copiar” no menu de contexto.

Para colar o texto copiado, clique com o botão direito do mouse novamente e selecione “Colar” no menu de contexto.

O texto será colado na posição do cursor na linha de comando. Neste exemplo, o caminho relativo foi inserido incorretamente, e o Bash não conseguiu mudar de diretório. O usuário omitiu o “~/ ” no início do caminho. Após digitar “~/ “, ele copiou o resto do caminho da tentativa anterior e colou na segunda linha de comando.

Ao pressionar Enter, o usuário é direcionado ao diretório correto.

O exemplo acima mostrou a colagem na mesma janela de terminal, mas essa técnica de clique com o botão direito também pode ser usada para colar em janelas de terminais diferentes. Também é possível 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 usando o mouse, desde que ele possua um botão do meio. Se você pressionar a roda de rolagem (suavemente!) e ela clicar, significa que você tem um botão do meio.

Selecione algum texto em uma janela de terminal e pressione o botão do meio. O texto selecionado será colado na posição do cursor na linha de comando. O processo de copiar e colar acontece simultaneamente.

Selecione algum texto:

Em seguida, pressione o botão do meio:

Você pode utilizar este método para colar entre diferentes janelas de terminal e também em aplicativos gráficos. Basta selecionar o texto, ir para outra janela ou aplicativo e pressionar o botão do meio.

Modo Antigo – Sem Mouse

E quando você não tem um mouse? Se você não consegue selecionar nenhum texto, como fazer para copiar e colar?

Servidores Linux são frequentemente configurados sem um ambiente gráfico de desktop (GDE), o que significa que você não terá acesso a um mouse. Mesmo em um computador Linux que está executando um ambiente de área de trabalho gráfico, como o GNOME, e você tem um mouse, haverá ocasiões em que não será possível usar o mouse para selecionar texto.

Por exemplo, você pode ter mudado para um dos TTYs adicionais. Em distribuições modernas, eles estão localizados 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 o levará para a tela de login do GDE).

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

De qualquer forma, estas técnicas funcionarão para você. O ponto importante a lembrar é que isso não é copiar e colar, mas sim recortar, copiar e colar, e você só poderá recortar e copiar da linha de comando atual. É claro que você pode usar as teclas de seta para percorrer o histórico e encontrar a linha de comando que deseja recortar, copiar e colar.

As teclas que você pode utilizar são:

Ctrl + W: Recorta a palavra antes do cursor e adiciona-a ao buffer da área de transferência.
Ctrl + K: Recorta a parte da linha após o cursor e a adiciona ao buffer da área de transferência. Se o cursor estiver no início da linha, ele cortará e copiará toda a linha.
Ctrl + U: Recorta a parte da linha antes do cursor e a adiciona ao buffer da área de transferência. Se o cursor estiver no final da linha, ele cortará e copiará a linha inteira.
Ctrl + Y: Cola o último texto que foi recortado e copiado.

Vamos pular para o TTY3. (Use Ctrl + Alt + F1 para voltar à sua área de trabalho depois.)

Ctrl+Alt+F3
tty

Temos um arquivo que desejamos excluir, vamos visualizá-lo aqui.

ls -l file_to_delete.txt

Se utilizarmos a tecla de seta para cima, recuperaremos o último comando usado do histórico de comandos. Poderíamos simplesmente editar essa linha, mas o objetivo é demonstrar o recortar, copiar e colar. Portanto, realizaremos a tarefa de exclusão do arquivo de forma um pouco mais demorada.

Vamos mover o cursor para a primeira letra do nome do arquivo e, em seguida, pressionar Ctrl + K. Isso removerá essa parte da linha e copiará o texto para o buffer da área de transferência.

Vamos pressionar Backspace até limparmos a linha.

Vamos digitar o comando rm para deletar o arquivo.

<img decoding=”async” class=”alignnone size-full wp-image-440716″ src=”data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoYAAACTAgMAAABuYDDrAAAACVBMVEUAAAABAQHMzMygyw1NAAAD4UlEQVR42u3aQW7jOBAFUF/CDczsezOn8CU+gar9NyDepwz4ALVgTjkLUrKcdmxlRm5yMOUFQTFB8kCJpY9KDofxP0cM/jn9J4gyz/ng65oGIiavxJuJAHiBAQlpBKLIiigLcdLSnfjnVZ2izuvZ1Zmyq+tVXZ1MBvACZM9O6Ub8OVEolPM0CYWXBApJodCSAWw