A RedHat acabou o seu suporte ao screen. Porque? Quais as vantagens e desvantagens?

Olá a todos.

Ando a atrasar este post á quase seis meses e chegou finalmente a altura de o acabar e publicar.
Creio que todos que estão no ramo, já souberam do fim do suporte da RedHat ao screen, em favor do tmux. Este post vem falar precisamente disso, e nele exploraremos as razões por trás dessa decisão e as vantagens do TMUX em comparação com o Screen, além de fornecer exemplos práticos da utilização do TMUX em diferentes cenários para o adaptar ao nosso workflow diário.

Isto acaba por ser um reflexo do avanço da tecnologia onde as ferramentas que uma vez dominaram o cenário do desenvolvimento e administração de sistemas começam a ceder espaço para alternativas mais avançadas e eficientes como precisamente neste caso com a transição do Screen para o TMUX (Terminal Multiplexer).

How to Customize Tmux Using the Config File

O Fim do Suporte ao Screen pela RedHat

O Screen, uma ferramenta venerável que tem sido uma escolha popular entre os utilizadores de sistemas Unix-like por décadas, permitiu a gestão eficiente de sessões de terminal, facilitando a execução de várias tarefas simultaneamente. No entanto, com o surgimento de tecnologias mais avançadas e exigências crescentes dos utilizadores, suas limitações tornaram-se evidentes. A decisão da RedHat de encerrar o suporte ao Screen reflete a necessidade de adotar ferramentas mais modernas e flexíveis que possam atender às demandas atuais e futuras dos utilizadores.

Vantagens do TMUX sobre o Screen

  1. Interface Mais Amigável e Personalizável:
    Uma das principais vantagens do TMUX sobre o Screen é sua interface mais moderna e personalizável. Os utilizadores podem facilmente ajustar o esquema de cores, configurar atalhos de teclado e criar layouts de janelas que atendam às suas preferências individuais.
  2. Suporte a Divisão de ecrã/Screen split:
    O TMUX oferece suporte nativo para divisão de ecrã, permitindo que os utilizadores dividam uma única janela em várias regiões. Por exemplo, um desenvolvedor pode dividir o ecrã verticalmente para visualizar o código-fonte e a execução de testes em paralelo.
  3. Sessões Persistentes:
    Uma das características mais poderosas do TMUX é sua capacidade de manter sessões persistentes. Mesmo que a conexão com o servidor seja interrompida, as sessões permanecem ativas e podem ser restauradas assim que o utilizador se reconectar.
  4. Gestão Avançada de Janelas:
    Com o TMUX, os utilizadores têm um controle refinado sobre a gestão de janelas. Podem criar várias janelas dentro de uma sessão, alternar entre elas com facilidade e até mesmo renomeá-las para uma melhor organização.
  5. Scripting e Automação:
    O TMUX oferece uma API robusta que permite a automação de tarefas e a criação de scripts personalizados. Isso é particularmente útil para administradores de sistemas que desejam automatizar processos repetitivos.

tmux with three panes.

Exemplos Práticos da Utilização do TMUX:

  1. Web Development:
    Um web developer pode usar o TMUX para criar uma sessão dedicada ao desenvolvimento de um projeto específico. Ele pode então dividir o ecrã horizontalmente para ter uma seção para o editor de texto e outra para visualizar o servidor de desenvolvimento local em tempo real.
  2. Administração de Servidores:
    Um administrador de sistemas pode iniciar uma sessão TMUX para gerir vários servidores remotamente. Ele pode criar uma janela para cada servidor, permitindo visualizar logs, executar comandos e realizar tarefas de manutenção de forma eficiente.
  3. Compilação de Código:
    Um programador pode usar o TMUX para acelerar o processo de compilação de código. Ele pode dividir a tela verticalmente para ver o código-fonte e a saída do compilador ao mesmo tempo, facilitando a identificação de erros e a depuração.
  4. Treino e Demos:
    Um instrutor pode usar o TMUX para criar uma sessão durante uma aula ou demonstração. Ele pode compartilhar facilmente o seu ecrã e alternar entre diferentes ambientes ou exemplos de código sem perder o contexto.

Cheat sheets do TMUX e referencias rápidas:

O próprio consorcio por detrás do tmux, lançou uma excelente pagina sobre o tema que pode ser consultada aqui. A página é indexada para melhorar a nossa pesquisa do comando especifico em questão.

Para alguns exemplos básicos temos:

Criar uma Nova Sessão:

Para iniciar uma nova sessão no TMUX, nós podemos utilizar o comando tmux new-session ou simplesmente tmux new.

tmux new-session -A -s mysession
tmux new -s mysession

O primeiro comando inicia uma nova sessão ou se conecta a uma sessão existente chamada mysession. O segundo comando cria uma nova sessão com o nome mysession.

Encerrar uma Sessão:

Para encerrar uma sessão no TMUX, podemos usar o comando tmux kill-session.

tmux kill-session -t mysession
tmux kill-session -a
tmux kill-session -a -t mysession

O primeiro comando encerra a sessão chamada mysession. O segundo comando encerra todas as sessões, exceto a sessão atual. O terceiro comando encerra todas as sessões, exceto a sessão mysession.

Renomear uma Sessão:

Para renomear uma sessão no TMUX, teremos usar o comando tmux rename-session.

tmux rename-session -t oldname newname

Este comando renomeia a sessão com o nome oldname para newname.

Aceder uma Sessão Existente:

Para aceder a uma sessão existente no TMUX, podemos usar o comando tmux attach ou tmux attach-session.

tmux a
tmux at
tmux attach
tmux attach-session

Estes comandos ligar-se-ão à última sessão utilizada.

tmux a -t mysession
tmux at -t mysession
tmux attach -t mysession
tmux attach-session -t mysession

Estes comandos conectam-se a uma sessão específica com o nome mysession.

Listar de todas as sessões disponíveis para o utilizador onde o tmux está a ser usado:

Para listar todas as sessões activas no TMUX, pelo utilizador atual, podemos usar o comando tmux ls ou tmux list-sessions.

tmux ls
tmux list-sessions

Estes comandos irão todas as sessões ativas.

E para refugiados do screen? Como aproveitar décadas de memória muscular?

Este texto foi contribuído por um dos nossos leitores que me chamou a atenção do mesmo, e faz todo o sentido. Como recuperar a memória muscular de décadas de uso de screen?
Para tal, enviou-me esta página que adiciono aqui, e que ensina a colocar no tmux os mesmos bindings do screen. Divirtam-se.
Obrigado ao Rui Seabra pela contribuição.

Conclusão.

À medida que o TMUX se estabelece como a escolha preferida para a gestão de sessões de terminal em sistemas Unix-like, é essencial que os nossos utilizadores acompanhem essa tendência e adotem as ferramentas mais adequadas para suas necessidades.
O fim do suporte ao Screen pela RedHat é um lembrete bastante audível da importância de evoluir com as tecnologias emergentes e garantir que nossos fluxos de trabalho permaneçam eficientes e produtivos. Com suas vantagens notáveis e capacidade de adaptação a uma variedade de cenários de uso, o TMUX continua a ser uma ferramenta essencial para desenvolvedores, administradores de sistemas e outros profissionais que dependem do terminal em seus trabalhos diários.

Até ao próximo post, e ja sabem se notarem alguma coisa errada, pf digam. Sabem onde me encontrar.
Um abraço
Nuno

PS: Para os mais observadores, o blog tem agora um mecanismo de auto translate para todas as linguas disponíveis para leitores não lusófonos. Sejam bem vindos, restante população mundial.