Pesquisa de site

20 exemplos de comandos de tela para gerenciar terminais Linux


Resumo: Neste guia, discutiremos alguns exemplos úteis do comando de tela. Ao final deste guia, os usuários poderão trabalhar com múltiplas sessões de shell usando uma única janela de terminal Linux.

Como usuários do Linux, muitas vezes precisamos trabalhar em tarefas de longa duração, como baixar ou copiar arquivos grandes, executar consultas demoradas ao banco de dados e assim por diante. Às vezes, essas tarefas importantes são encerradas abruptamente devido ao tempo limite da sessão.

Para mitigar tais cenários, podemos usar o comando screen, que é um programa de software de tela inteira que pode ser usado para multiplexar um console físico entre vários processos (normalmente shells interativos). Ele oferece ao usuário a possibilidade de abrir várias instâncias de terminal separadas dentro de um único gerenciador de janelas de terminal.

A aplicação screen é muito útil se você estiver lidando com vários programas a partir de uma interface de linha de comando e para separar programas do shell do terminal. Também permite que você compartilhe suas sessões com outros usuários e desanexe/anexe sessões de terminal.

Neste guia, discutiremos como instalar, configurar e usar o comando screen em um sistema Linux. Ao longo deste guia, entenderemos o uso e os benefícios do comando de tela usando exemplos práticos.

Então vamos começar.

Instale o comando de tela no Linux

No meu Ubuntu Server Edition, o comando screen foi instalado por padrão. Porém, o Linux Mint não tem uma tela instalada por padrão, então preciso instalá-lo primeiro usando o comando apt-get antes de usá-lo .

Siga o procedimento de instalação da distribuição para instalar a tela.

sudo apt-get install screen      [On Debian, Ubuntu and Mint]
sudo yum install screen          [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/screen   [On Gentoo Linux]
sudo apk add screen              [On Alpine Linux]
sudo pacman -S screen            [On Arch Linux]
sudo zypper install screen       [On OpenSUSE]    

Agora, vamos verificar se o comando foi instalado com sucesso:

screen --version

Screen version 4.8.00 (GNU) 05-Feb-20

Na verdade, a tela é um programa multiplexador de terminal muito bom no Linux que está oculto em centenas de comandos do Linux.

Vamos começar a ver o uso do comando screen no Linux com os exemplos a seguir.

Sintaxe de comando de tela

A sintaxe do comando screen é a seguinte

screen [OPTIONS] [ CMD [ ARGS ] ]

Na sintaxe acima, podemos ver que todos os parâmetros são opções e são representados pelos colchetes ([]).

1. Tela inicial pela primeira vez

Basta digitar tela no prompt de comando. Então a tela mostrará uma interface exatamente como o prompt de comando.

screen

2. Mostrar parâmetro de tela

Ao entrar na tela, você pode fazer todo o seu trabalho como se estivesse no ambiente normal de linha de comando. Mas como a tela é uma aplicação, ela possui comandos ou parâmetros.

Digite “Ctrl-A” e “?” sem aspas. Então você verá todos os comandos ou parâmetros na tela.

Para sair da tela de ajuda, você pode pressionar o botão “barra de espaço” ou “Enter“. (Observe que todos os atalhos que usam “Ctrl-A” são feitos sem aspas).

3. Como listar todas as janelas abertas

No exemplo anterior, iniciamos uma nova sessão shell usando o comando screen. Agora vamos usar a combinação de teclas ctrl-a + " para listar todas as janelas abertas da sessão de tela atual:

Na saída acima, podemos ver o número e o nome da janela. A primeira coluna representa o número da janela e começa do zero.

A próxima coluna representa o nome da janela e seu formato padrão é @:.

4. Como encerrar a sessão da janela da tela

Podemos encerrar a sessão da janela ativa usando as combinações de teclas ctrl-a + k. É importante ressaltar que esta ação interromperá a execução do comando da janela virtual atual.

Na saída acima, podemos ver que o comando screen está aguardando a confirmação do usuário. Mostra a mensagem de aviso no canto inferior esquerdo.

Assim como outros comandos do Linux, podemos usar 'y' para continuar ou 'n' para abortar a operação.

5. Como iniciar uma sessão de tela com nome

O comando screen nos permite criar uma sessão com um nome definido pelo usuário, o que é útil quando há múltiplas sessões disponíveis.

Então, vamos usar a opção -S do comando para criar uma sessão nomeada:

screen -S demo-screen

No comando acima, demo-screen é o nome da sessão.

6. Desconecte a sessão do terminal com tela

Uma das vantagens de uma tela é que você pode retirá-la. Então, você pode restaurá-lo sem perder nada do que fez na tela. Aqui está o cenário de exemplo:

Você está no meio do SSH em seu servidor. Digamos que você esteja baixando um patch de 400 MB para seu sistema usando o comando wget.

Estima-se que o processo de download demore 2 horas. Se você desconectar a sessão SSH ou se a conexão for repentinamente perdida acidentalmente, o processo de download será interrompido. Você tem que começar do começo novamente. Para evitar isso, podemos usar uma tela e destacá-la.

Dê uma olhada neste comando. Primeiro, você tem que entrar na tela.

screen

Então você pode fazer o processo de download. Por exemplo, no meu Linux Mint, estou atualizando meu pacote dpkg usando o comando apt.

sudo apt install dpkg
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages will be upgraded:
  dpkg
1 upgraded, 0 newly installed, 0 to remove and 1146 not upgraded.
Need to get 2,583 kB of archives.
After this operation, 127 kB of additional disk space will be used.
Get:1 http://debian.linuxmint.com/latest/ 
testing/main dpkg i386 1.16.10 [2,583 kB]
47% [1 dpkg 1,625 kB/2,583 kB 47%]     14,7 kB/s

Durante o download em andamento, você pode pressionar “Ctrl-A” e “d“. Você não verá nada ao pressionar esses botões. A saída será assim:

[detached from 5561.pts-0.mint]
pungki@mint ~ $

7. Reconecte a sessão do terminal com tela

Depois de desconectar a tela, digamos que você esteja desconectando sua sessão SSH e indo para casa. Em sua casa, você inicia o SSH novamente para o seu servidor e deseja ver o andamento do seu processo de download. Para fazer isso, você precisa restaurar a tela. Você pode executar este comando:

pungki@mint ~ $ screen -r

E você verá que o processo que você deixou ainda está em execução.

Quando você tiver mais de uma sessão de tela, será necessário digitar o ID da sessão de tela. Use screen -ls para ver quantas telas estão disponíveis.

pungki@mint ~ $ screen -ls
pungki@mint ~ $ screen -ls
There are screens on:
        7849.pts-0.mint (10/06/2021 01:50:45 PM)        (Detached)
        5561.pts-0.mint (10/06/2021 11:12:05 AM)        (Detached)
2 Sockets in /var/run/screen/S-pungki

Se você deseja restaurar a tela 7849.pts-0.mint, digite este comando.

pungki@mint ~ $ screen -r 7849

8. Usando janelas de terminal de tela múltipla

Quando você precisa de mais de uma tela para realizar seu trabalho, isso é possível? É sim. Você pode executar várias janelas de tela ao mesmo tempo. Existem 2 (duas) maneiras de fazer isso.

Primeiro, você pode separar a primeira tela e executar outra tela no terminal real. Segundo, você cria uma tela aninhada conforme mostrado.

Para criar novas janelas, use a combinação de teclas ctrl-a + c duas vezes para criar duas novas janelas. A seguir, vamos usar a combinação de teclas ctrl-a + " para listar todas as janelas ativas:

Na saída acima, podemos ver que agora existem três janelas.

9. Como renomear uma janela de tela

No exemplo anterior, criamos duas novas janelas. No entanto, seus nomes padrão não fornecem detalhes sobre eles. Nesses casos, podemos atribuir-lhes alguns nomes significativos.

Podemos usar a combinação de teclas ctrl-a + A para renomear a sessão da janela atual. Esta combinação de teclas solicita que o usuário defina um título de janela:

10. Alternando entre janelas de terminal de tela

No exemplo anterior, criamos várias janelas. Agora vamos ver como alternar entre eles.

Primeiro, vamos listar todas as janelas ativas usando a combinação de teclas ctrl-a + ". Em seguida, use a tecla de seta para cima ou para baixo para selecionar a janela apropriada. Por fim, pressione a tecla Enter para mudar para a janela selecionada. janela.

Neste exemplo, selecionamos a janela com o título – db-query.

11. Como passar para a próxima janela da tela

Podemos usar a combinação de teclas ctrl-a + n para passar para as próximas janelas. Vamos entender isso com um exemplo.

Primeiro, mude para a primeira janela e verifique-a usando a combinação de teclas ctrl-a + ":

Agora, vamos pressionar a combinação de teclas ctrl-a + n duas vezes para ir para a terceira janela e usar a combinação de teclas ctrl-a + " para verificar a mesma.

Na saída acima, podemos ver que agora estamos na terceira janela.

12. Como passar para a janela da tela anterior

De forma semelhante, podemos usar a combinação ctrl-a + p para mudar para a janela anterior.

Atualmente, estamos na terceira janela. Então, vamos usar a combinação de teclas ctrl-a + p duas vezes e verificar se estamos na primeira janela novamente:

Na saída acima, podemos ver que agora voltamos à primeira janela.

13. Como alternar entre a janela atual e a anterior

Às vezes, queremos apenas alternar entre duas janelas. Nesses casos, podemos usar a combinação de teclas ctrl-a + ctrl-a.

Para entender isso, primeiro mude para a primeira janela:

Em seguida, mude para a última janela:

Finalmente, use a combinação de teclas ctrl-a + ctrl-a para pular para a primeira janela novamente.

14. Como pular para uma janela de tela específica

Nos exemplos anteriores, vimos várias maneiras de alternar entre janelas. No entanto, às vezes queremos pular para uma janela específica. Nesses cenários, podemos usar os números das janelas.

Primeiro, vamos usar a combinação de teclas ctrl-a + " para encontrar o número da janela:

Na saída acima, a primeira coluna representa o número da janela. É importante ressaltar que o comando da tela inicia a numeração do zero.

Agora, vamos usar a combinação de teclas ctrl-a + 2 para pular para a terceira janela e verificar se estamos na janela correta:

15. Como dividir uma janela de tela horizontalmente

Assim como os terminais normais, também podemos dividir a janela da tela. Podemos usar a combinação de teclas ctrl-a + S para dividir a janela horizontalmente.

Agora, podemos usar a combinação de teclas ctrl-a + tab para pular entre as regiões.

Por último, podemos usar a combinação de teclas ctrl-a + X para remover a região atual. É importante observar que aqui devemos usar um caractere X maiúsculo.

16. Como dividir uma janela de tela verticalmente

Da mesma forma, podemos usar a combinação de teclas ctrl-a + | para dividir a janela atual verticalmente:

Além disso, também podemos usar a combinação de teclas ctrl-a + tab para alternar entre as regiões e a combinação de teclas ctrl-a + X para fechar a região atual.

17. Habilite o registro de tela no Linux

Às vezes é importante gravar o que você fez enquanto estava no console. Digamos que você seja um administrador Linux que gerencia muitos servidores Linux.

Com esse registro de tela, você não precisa anotar todos os comandos que executou. Para ativar a função de registro de tela, basta pressionar “Ctrl-A” e “H“. (Tenha cuidado, usamos letras 'H' maiúsculas. Usar 'h' não maiúsculo criará apenas uma captura de tela da tela em outro arquivo chamado cópia impressa) .

No canto inferior esquerdo da tela, haverá uma notificação informando para você curtir: Criando arquivo de log “screenlog.0“. Você encontrará um arquivo screenlog.0 em seu diretório inicial.

Este recurso anexará tudo o que você fizer enquanto estiver na janela da tela. Para fechar a tela para registrar a atividade em execução, pressione “Ctrl-A” e “H” novamente.

Outra forma de ativar o recurso de registro, você pode adicionar o parâmetro “-L” na primeira vez que executar a tela. O comando será assim.

pungki@mint ~ $ screen -L

18. Bloqueie a tela do terminal Linux

A tela também possui um atalho para bloquear a tela. Você pode pressionar os atalhos “Ctrl-A” e “x” para bloquear a tela. Isso é útil se você deseja bloquear sua tela rapidamente. Aqui está um exemplo de saída da tela de bloqueio depois de pressionar o atalho.

Screen used by Pungki Arianto  on mint.
Password:

Você pode usar sua senha do Linux para desbloqueá-lo.

19. Adicionar senha à sessão de tela

Por motivos de segurança, você pode querer colocar a senha da sua sessão de tela. Uma senha será solicitada sempre que você quiser reanexar a tela. Esta senha é diferente do mecanismo Bloquear tela acima.

Para proteger sua tela com senha, você pode editar o arquivo “$HOME/.screenrc”. Se o arquivo não existir, você poderá criá-lo manualmente. A sintaxe será assim.

password crypt_password

Para criar a “crypt_password” acima, você pode usar o comando “mkpasswd” no Linux. Aqui está o comando com a senha “pungki123“.

pungki@mint ~ $ mkpasswd pungki123
l2BIBzvIeQNOs

mkpasswd irá gerar uma senha hash conforme mostrado acima. Depois de obter a senha hash, você pode copiá-la para o arquivo “.screenrc” e salvá-la. Portanto o arquivo “.screenrc” ficará assim.

password l2BIBzvIeQNOs

Na próxima vez que você executar a tela e desanexá-la, uma senha será solicitada quando você tentar reanexá-la, conforme mostrado abaixo:

pungki@mint ~ $ screen -r 5741
Screen password:

Digite sua senha, que é “pungki123” e a tela será anexada novamente.

Depois de implementar esta senha de tela e pressionar “Ctrl-A” e “x“, a saída será assim.

Screen used by Pungki Arianto on mint.
Password:
Screen password:

Uma senha será solicitada duas vezes. A primeira senha é a sua senha do Linux, e a segunda senha é a senha que você colocou no seu arquivo .screenrc.

20. Saindo da sessão do terminal de tela

Existem 2 (duas) maneiras de sair da tela. Primeiro, estamos usando “Ctrl-A” e “d” para separar a tela. Segundo, podemos usar o comando exit para encerrar a tela. Você também pode usar “Ctrl-A” e “K” para encerrar a tela.

Folha de referências de comandos de tela

screen -S <session_name>

Inicie uma nova sessão com o nome da sessão.

screen -ls

Lista sessões/telas em execução.

screen -x

Anexe a uma sessão em execução.

screen -r <session_name>

Anexe a uma sessão em execução com nome.

screen -d <session_name>

Desanexe uma sessão em execução.

Ctrl-a c

Crie uma nova janela.

Ctrl-a Ctrl-a

Mude para a janela ativa da última visita.

Ctrl-a <number>

Mude para janela por número.

Ctrl-a ' <number or title>

Mude para janela por número ou nome.

Ctrl-a n or Ctrl-a <space>

Mude para a próxima janela da lista.

Ctrl-a p or Ctrl-a <backspace>

Mude para a janela anterior na lista.

Ctrl-a "

Veja a lista de janelas.

Ctrl-a w

Mostrar barra da janela.

Ctrl-a k

Mate a janela atual.

Ctrl-a \

Mate todas as janelas.

Ctrl-a A

Renomeie a janela atual.

Ctrl-a S

Divida a exibição horizontalmente.

Ctrl-a | or Ctrl-a V

Divida a exibição verticalmente.

Ctrl-a tab

Ir para a próxima região de exibição.

Ctrl-a X

Remova a região atual.

Ctrl-a Q

Remova todas as regiões, exceto a atual.

Ctrl-a H

Habilite o registro na sessão de tela.

Ctrl-a x

Tela de bloqueio (proteção por senha).

Esses são alguns dos comandos screen usados diariamente. Ainda existem muitos recursos dentro do comando de tela. Você pode ver a página de manual da tela para obter mais detalhes.

Você conhece algum outro exemplo melhor do comando screen no Linux? Deixe-nos saber sua opinião nos comentários abaixo.