Multiplexando seu Terminal com GNU Screen

Se quiser crie até uma barra de status no terminal estilo Vim.


Multiplexando seu Terminal com GNU Screen

Já faz tempo que nós mostramos em um vídeo Como Utilizar o TMUX , pois é, o GNU Screen possui ainda mais recursos que ele.

Introdução

GNU Screen é um software livre multiplexador de terminal de linha de comando desenvolvido pelo Projeto GNU. Permite que o usuário acesse múltiplas sessões separadas de terminal a partir de uma mesma janela ou mesmo remotamente. É muito útil para manipular vários programas em uma mesma janela ou mesmo para manter processos em execução de fundo.

GNU Screen pode ser considerado como uma versão modo texto dos gerenciadores de janelas gráficas. Além de permitir que vários programas modo texto sejam executados ao mesmo tempo, provê funcionalidades tais como:

  • Persistência. Similar ao VNC, GNU Screen permite que o usuário inicie uma aplicação em um computador e então se conecte remotamente e continue a utilizar o mesmo programa, facilitando assim integração entre os diversos ambientes computacionais utilizados pelo usuário. A abstração do tipo de terminal em uso facilita ainda mais tal tarefa, pois as aplicações podem ser utilizadas independentemente do tipo de terminal disponível para o acesso.
  • Múltiplas janelas. Múltiplas sessões de terminal podem ser criadas, cada uma numerada de modo a permitir a transição entre elas a partir do teclado.
  • Compartilhamento de sessões. Screen permite que múltiplos computadores se conectem a uma mesma sessão ao mesmo tempo, possibilitando assim a colaboração entre usuários. Outra forma seria a utilização de um mesmo computador ligado a vários monitores, compartilhando assim um mesmo recurso computacional entre os usuários.

Instalação

Use o gerenciador de pacotes da sua distribuição, mas antes rode o comando screen para ver se não já está instalado, exemplo: emerge screen Exemplos:

emerge app-misc/screen
sudo apt install screen
sudo pacman -S screen
# ...

Utilização

Você pode iniciar o GNU Screen com o comando:

screen

Agora saiba que a combinação de tecla que o screen escuta é Ctrl + a, e essa combinação é simplesmente resumida como C-a , ou seja, toda vez que você ler C-a quer dizer Ctrl + a . Exemplos:

  • Para dividir a janela na horizontal tecle Ctrl + a e em seguinda a letra S (maiúscula → Shift + s) => C-a S.
  • C-a | (pipe) → Para dividir na vertical.
  • C-a TAB para pular para destacar a nova janela e assim que estiver nela, a mesma não haverá um prompt , então você não criou, para criar tecle: C-a c.
  • C-a SHIFT TAB → Para voltar para a janela anterior.

    Lembrando que se você estiver na janela 1 e quiser passar, por exemplo, pra janela de número 9, você pode usar: C-a 9

  • Para fechar uma divisão, use: C-a K e para fechar uma janela C-a Q

Resumindo: supondo que você acabou de rodar o comando screen, supondo que você rodou C-a | então para passar para essa nova janela: C-a TAB e depois C-a c. 😃

Os atalhos podem ainda ser visualizados com: C-a ? ou usando o help e o manual:

screen --help
man screen

Criando uma Barra de Status estilo Vim

Para isso você precisa criar um arquivo ~/.screenrc e inserir nele o seguinte conteúdo:hardstatus alwayslastline " %d-%m-%y %c:%s | %w", ou rode simplesmente o comando abaixo:

echo 'hardstatus alwayslastline " %d-%m-%y %c:%s | %w"' >> $HOME/.screenrc; screen

Toda vez que você abrir o screen automaticamente essa barra fará presença. Se quiser removê-la, é só apagar o conteúdo ou o arquivo ~/.screenrc .

Isso vai mostrar a data e hora e seu nome de usuário e o host , além no número da janela.

Se quiser que quando você abrir o terminal automáticamente crie essa barra, insira esse conteúdo no seu .bashrc:

if [ -z "$STY" ]; then
    exec screen
fi

Se ainda quiser que ele mate automáticamente qualquer outra sessão, incluindo o terminal, troque o exec screen por exec screen -dR.

Conclusão

O GNU Screen é bastante utilizado para conexões remotas de sessões . Por exemplo, se você deixou algo compilando ou instalando no seu trabalho ou qualquer outro lugar, daí você deseja conectar via ssh , mas recuperar a sessão (como se estivesse lá na frente do computador), você pode usar o GNU Screen . Exemplo:

ssh -t host.example.com screen -R -d

Espero que você tenha gostado e não esqueça de ver a documentação, manual, help, ajuda e se quiser esse Cheat Sheet

Abraços!


gnu screen terminal vim wm


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!