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