Uma introdução ao tmux
Tmux é um programa de terminal que permite exibir e executar vários programas de terminal de forma simultânea e gerenciar sessões, permitindo usos avançados do terminal.
Exibir a execução de vários programas simultâneamente é quase um requisito em diversos terminais modernos, como o Terminator, Tilda, iTerm2, Konsole e Terminology, mas com o tmux não é necessário o uso de um terminal específico, possibilitando o uso desta função até em conexões SSH.
Também é possível rodar vários programas simultâneos em uma só sessão, desta forma é possível desconectar e reconectar à sessão sem interromper a execução dos programas. Também é possível que várias pessoas conectem-se a mesma sessão realizando trabalhos simultâneos ou para demonstração da execução de programas.
Instalação
O tmux pode ser instalado pelo gerenciador de pacotes nas maioria das distribuições. A versão pode variar, como mostra a seguinte tabela:
| Distribuição | Comando | Versão (Em 03/03/2020) |
|---|---|---|
| Arch Linux 9.2.1 | pacman -S tmux | 3.0a |
| CentOS 8 (Core) | yum install tmux | 2.7 |
| Debian 10 | apt install tmux | 2.8 |
| OpenSUSE 20200301 | zypper install tmux | 3.1-rc |
| Ubuntu 18.04.4 LTS | apt install tmux | 2.6 |
Caso você queira utilizar a versão mais nova e não use OpenSUSE, ou os repositórios da sua distribuição não têm o tmux, é possível fazer a compilação do código. As bibliotecas libevent e ncurses são necessárias na execução e para fazer a compilação são necessários um compilador para C e os programas make e pkg-config, além das dependências de desenvolvimento das bibliotecas libevent e ncurses.
Você pode encontrar mais informações aqui.
Executando
As telas seguintes serão tiradas de uma máquina virtual rodando Debian, portanto versão 2.8 do tmux. Estou rodando a VM pelo Vagrant, por este motivo o nome do usuário da máquina.
Ao executar tmux no terminal teremos a seguinte tela:

Note que há uma barra de cor verde na parte inferior da tela. Esta barra é chamada de barra de status. A presença da barra de status mostra que o tmux já está sendo executado. Execute um comando qualquer, como cat /etc/os-release

Nada diferente do uso normal de um terminal. Agora vamos começar a usar os comandos do tmux. Os comandos devem ser executados após pressionar <Ctrl-b> (pressionar a tecla b enquanto segura a tecla Ctrl). Esta combinação é chamada de prefixo.
Execute <Ctrl-b> + d (executar o prefixo, soltar a tecla Ctrl e pressionar a tecla d). Este comando desconecta o tmux da sessão.

A sessão ainda permanece ativa e executando os comandos dentro dela. Para ver as sessões ativas execute o comando tmux list-sessions no terminal. Assim estaremos enviando o comando list-sessions para o tmux.

Para reconectar a esta sessão execute o comando tmux attach-session. Veja que a tela é igual ao que era antes de desconectar, mostrando que os programas dentro da sessão ainda continuaram executando.
Execute <Ctrl-b> + c. A tela aparentemente foi limpa. Note que a barra de status está diferente. Com o comando anterior criamos uma nova janela no tmux.

Execute <Ctrl-b> + 0. Agora retornamos à janela anterior. Por padrão as janelas são numeradas a partir de 0 e podemos acessá-las pelo número, por exemplo, <Ctrl-b> + 3 vai para a janela de índice 3. Crie mais uma janela e verifique a barra de status.

Cada janela aparece na barra de status no formato {índice}:{nome}{status}. Agora é possível ver dois símbolos de status, o símbolo * que indica a janela atual e o símbolo - que indica a janela ativa anteriormente. Para trocar facilmente para a janela anterior basta executar <Ctrl-b> + l. Também podemos nos mover pelas janelas utilizando os comandos <Ctrl-b> + n para ir para a próxima janela da lista e <Ctrl-b> + p para ir para a anterior.
Vá até a janela 1 e execute <Ctrl-b> + &. Este comando remove uma janela. O tmux, por padrão, pede a confirmação ao realizar a remoção.

Vá até a janela 0. No tmux também é possível criar divisões em uma única janela. Execute <Ctrl-b> + % e verifique que a janela 0 foi dividida em duas. Cada divisão é chamada de painel. Para fazer a divisão na horizontal execute <Ctrl-b> + "

Execute <Ctrl-b> + q e você poderá ver o índice de cada painel.

Para mover-se para um painel usando o índice basta executar o comando anterior seguido do índice desejado. Por exemplo, executando <Ctrl-b> + q + 0 iriamos mover o cursor para o painel da esquerda, o de índice 0. Podemos também usar o prefixo junto às setas do teclado para mover o cursor entre os paineis, por exemplo, <Ctrl-b> + ➡ move o cursor para o painel da direita. A mesma ação pode ser feita com as outras setas do teclado.
Execute <Ctrl-b> + w. Este comando permite escolher a janela de forma interativa, inclusive mostrando um preview do conteúdo.

Basta usar as setas do teclado para escolher a janela e ao final usar a tecla Enter. Para remover um painel basta executar <Ctrl-b> + x. O tmux também pede confirmação.

Ao sair do último painel da última janela o tmux também remove a sessão. Para sair do tmux removendo a sessão sem precisar fechar todas as janelas basta digitar o comando tmux kill-session o terminal. Cuidado, pois o tmux não pedirá confirmação para remover a sessão.
