Uma introdução aos multiplexadores de terminais

Uma introdução aos multiplexadores de terminais

20 de abril de 2016
por rares aioanei

Introdução

Se você é novo na administração e na linha de comando do servidor, talvez não tenha ouvido falar de multiplexadores de terminais ou o que eles fazem. Você quer aprender a ser um bom linux sysadmin e como usar as ferramentas do comércio. Ou talvez você já seja um administrador experiente e administre algumas máquinas, e deseja tornar sua vida um pouco mais fácil. Ou talvez você esteja em algum lugar entre.

De qualquer maneira, este artigo explicará o que são os multiplexadores do terminal, o que fazem e o mais importante, como você pode se beneficiar de usá -los.

Um multiplexador de terminal nada mais é do que um programa que permite ao seu usuário uma ou mais sessões virtuais, para que o usuário possa ter várias sessões dentro de um único terminal. Um dos recursos mais úteis desses programas é o fato de os usuários podem anexar e destacar essas sessões; Como isso é útil ficará claro em breve.

Casos de uso

Sessões persistentes

Digamos que você tenha que administrar um servidor remoto via SSH/linha de comando, mas sua conexão não é muito estável. Isso significa que você precisa se reconectar com frequência e não quer começar a trabalhar novamente. Os multiplexadores de terminais oferecem o recurso para salvar suas sessões entre as conexões para que você possa continuar exatamente onde começou.

Observe que essas sessões não são persistentes entre as reinicializações (no nosso caso acima, reinicializações do servidor que você está se conectando), por isso é melhor saber disso para não esperar esse recurso. A razão para isso é o fato de o multiplexador executar sessões de shell, das quais você pode estar executando um editor de texto, uma ferramenta de monitoramento e outros enfeites. Como todos esses processos não estarão mais lá após uma reinicialização, não há razão para que esse recurso seja implementado, pois não teria nenhum uso real.

Conversamos em nossa introdução sobre anexamento e destacamento: é exatamente isso que esse recurso faz. Continuando com o nosso caso de uso, onde você tem uma conexão instável, depois de se desconectar, você pode apenas SSH no servidor novamente e recolocar para a sessão em execução (ou escolher entre sessões para se recolocar) e você estará exatamente onde você
deixado de fora.

Mais de uma janela

Se você está acostumado a gerentes de janelas de ladrilhos - como DWM, XMONAD ou I3 - você pode pensar em multiplexadores terminais como o equivalente terminal de tais WMs.

Alguns mais que outros, eles oferecem várias janelas, a capacidade de alternar facilmente entre eles, alterar layouts ou até redimensionar as janelas. Talvez você queira usar um ambiente gráfico somente quando necessário e gastar o resto do tempo em um console, ou talvez você não tenha nenhuma escolha, pois trabalhar em um servidor geralmente significa
Linha de comando apenas assim, como dissemos, qualquer coisa que facilite sua vida, pois um usuário da CLI é mais do que bem-vindo.

Outra vantagem é o gerenciamento de recursos - se você estiver trabalhando em uma máquina restrita, ter apenas um terminal aberto um multiplexador é mais fácil para o consumo de CPU/RAM, em vez de várias janelas ou guias. Ou talvez, dependendo do que você precisa, você pode substituir a interface gráfica.

Trabalho colaborativo

As sessões não podem ser apenas anexadas e recolocadas, como descrito acima, mas também podem ser compartilhadas. Em termos práticos, significa que mais de um usuário pode anexar a uma sessão existente e trabalhar juntos como acharem o ajuste.

Multiplexadores de terminais

Lista de multiplexadores de terminal

O que se segue é uma lista de multiplexadores de terminais e tudo o que você precisa para começar, incluindo instalação, uso básico, recursos e, é claro, alguma comparação entre eles para que você possa decidir mais fácil o que se adapta a você e suas necessidades melhores.

Se você está apenas começando, talvez seja uma boa ideia experimentar todos eles, pois não é uma lista longa, e veja por si mesmo o que é melhor para você. De qualquer forma, forneceremos capturas de tela para o impaciente, mas é nossa opinião que nada é melhor quando se trata de decidir o que usar do que o uso direto, por isso. Como sempre, não tentaremos substituir as páginas manuais de nenhum dos programas apresentados abaixo; portanto, para uma referência completa, use 'Man $ Program' para obter as informações completas.

Tela GNU

Um dos softwares de multiplexação de terminal mais populares (se não líder, na verdade) em sistemas do tipo UNIX é a tela GNU - a partir de então, nomeado como simplesmente 'tela' por causa da brevidade. A tela oferece uma infinidade grande o suficiente de recursos para torná -la um grupo estável e devoto de usuários. Como o nome indica, a tela é liberada sob o GPLV3 e está associada ao projeto GNU como um todo. Um conceito essencial para o uso diário da tela (e outro software semelhante) é o atalho de comando. Um atalho de comando é uma ligação de chave, que é personalizável por meio de um arquivo de configuração ou por outros meios (como o código -fonte, por exemplo), que é seguido por um pressionamento de tecla que permite ao usuário enviar um comando para o multiplexador.

Vamos dar um exemplo simples: talvez o comando mais usado no software se esse tipo for aquele que cria uma nova janela. Então, o que teremos que fazer é pressionar o atalho de comando seguido por uma chave que diz à tela para criar uma nova janela para nós. O atalho de comando padrão na tela é Ctrl+A (para o restante deste artigo, usaremos a notação C-A), e o comando que se segue é 'C', que significa Criar. Mas vamos começar com o começo e vamos ver como instalar a tela. Em Debian/Ubuntu e outras distribuições Linux baseadas em Debian, o comando para instalar é

Tela de instalação de $ sudo apt-get 

Nas distribuições baseadas em Fedora e Redhat, você pode instalar a tela emitindo o seguinte comando Linux:

tela de instalação $ sudo yum 

Em relação ao Fedora, nas versões mais recentes dele, você pode precisar substituir Yum por DNF, pois se tornou a ferramenta de gerenciamento de pacotes de linha de comando padrão. Mas o comando acima deve funcionar, porque ele avisará que Yum está preso e redirecioná -lo para DNF. Dado o fato de a tela GNU ter uma longa história por trás dela (o primeiro anúncio de lançamento foi feito na rede.Fontes em 1987), tornou -se bastante onipresente em quase qualquer sistema operacional que tenha algo a ver com o Unix.

Se você estiver dentro do x, abra uma janela do terminal (ou use um TTY) e digite 'tela'. Talvez você note que seu tipo de terminal mudou para 'tela'. Isso pode ser verificado digitando

$ echo $ termo 

Depois de iniciar a tela.

Agora que você está iniciado com a tela, digite o comando para criar uma nova janela e ver o que acontece (C-A + C). Se você está esperando algum sinal gráfico mostrando que agora você tem duas janelas, ficará um pouco decepcionado. Você será levado para uma nova janela, mas é isso. Então agora teremos que ver como navegar entre o Windows. Se você souber qual janela você deseja ir - especialmente útil quando você tem apenas alguns abertos - você pode usar o C -A seguido por um personagem '. Você será solicitado a entrar no identificador da janela e, ao entrar, você será levado para a referida janela. A troca de janelas também pode ser feita mais direta com o identificador C-A + $, onde o $ Identifier é, pelo menos por enquanto, o número da janela ou, ainda mais simples, usando o C-A + TAB (assim como o ALT + TAB em muitos gerentes de janela ). Para ir para a última janela usada apenas digite C-A duas vezes. Se você, por exemplo, precisar seguir a saída de um console enquanto trabalha em outra coisa, você tem o comando dividido - C -A + S (observe o capital S lá).

Um recurso sobre o qual estamos conversando anteriormente é o que permite separar/anexar sessões à vontade. Como exemplo, talvez você queira fechar o terminal do cliente para, digamos, uma reinicialização e depois poder voltar à sua sessão remota. Use C-A + C-D para fazer a parte do destacamento e, ao voltar, basta adicionar -s como um argumento para exibir, seguindo o nome da sessão. Para obter a lista de telas anexadas, use C-A, seguido de * (Asterisk).

Outros recursos incluem cópia e colagem (C-A + [para copiar e C-A +] para pasta), nomear janelas (C-A + A) ou Informações da janela (ou seja, você pode exibir algumas informações sobre a janela atual na linha de mensagem-use C-A + C-I por esta). Finalmente, matar uma janela é feito usando C-A + K.

Algumas notas que valem a pena lembrar: primeiro, o que você lê acima apenas arranha a superfície; A tela é um programa capaz e selecionamos apenas o que consideramos mais importante para um usuário começar. Consulte a documentação, online ou a página manual, para obter o conjunto completo de recursos. Segundo, se você está usando Bash e/ou
EMACS, você pode querer alterar o atalho de comando padrão (C-A), porque ele interferirá mais cedo ou mais tarde nos respectivos atalhos de programas. Como alterar o atalho de comando é deixado como um exercício para o leitor.

tmux

Provavelmente a alternativa mais popular à tela GNU é tmux. Ao contrário, é licenciado por BSD e faz parte da instalação padrão de alguns sistemas operacionais BSD, como OpenBSD e NetBSD. No entanto, isso não significa que não esteja prontamente disponível na maioria das distribuições Linux. Para o Debian/Ubuntu, apenas digite

$ sudo apt-get install tmux 

, Enquanto para Redhat/Fedora, o comando de instalação seria

$ sudo yum install tmux 

Agora que você está um pouco familiarizado com os multiplexadores de terminais, vamos pular o básico, como a definição de um atalho de comando e assim. Então inicie um terminal e simplesmente digite 'tmux'. Você verá, se o processo de instalação foi concluído com êxito, algo muito semelhante a isso:

A primeira coisa que você notará é o fato de que o TMUX é exibido por padrão uma linha de mensagem, em oposição à tela. Mas vamos começar com o início: o atalho de comando padrão no tmux é Ctrl + B (C-B), seguido pelo respectivo comando. Depois de rolar neste artigo, você notará que alguns dos comandos básicos são semelhantes entre os multiplexadores do terminal; Assim, para criar uma nova janela no tmux, o comando é 'c' (o comando completo seria c-b + c). Observe como a linha de mensagem agora exibe o Windows, juntamente com seus identificadores padrão, que são números inteiros positivos, começando de 0. Para navegar para outra janela, você pode usar seu respectivo identificador (e.g. C-B + 1) ou, para acessar a última janela usada, use C-B + L.

Os comandos são geralmente bastante diretos e fáceis de se acostumar, pois geralmente seguem a regra de letra inicial - 'c' para criar, 'l' para o último e assim por diante. Novamente, consulte a página manual para obter uma lista completa de comandos.

Com um emulador de terminal simples (isto é, sem nenhum multiplexador), você notará que pode rolar facilmente usando a roda de rolagem ou o shift + page -up do mouse. O TMUX, como outros multiplexadores, tem suas próprias regras sobre cópia/colar/rolagem, então a rolagem usual, como descrito acima, não funcionará mais. C-B + [entra no estágio: este comando permitirá que você copie o texto ou role para cima para o texto. Com c-b +] você pode colar o texto selecionado mais recentemente e, se quiser sair do modo de cópia/rolagem, digite 'Q'.

Como a tela, o TMUX oferece a opção de anexar/destacar sessões; Esse recurso, como observado anteriormente, é um dos mais importantes para qualquer multiplexador de terminal que se preze.

Um dos cenários mais simples é aquele em que o usuário tem, por vários motivos, sair da sessão ativa e quer voltar o mais rápido possível. C-B + D é usado para destacar a sessão (a atual) e, depois, ao voltar ao terminal, tudo o que se deve fazer é digitar 'Tmux Anex' e é isso, estamos de volta exatamente de onde saímos de onde saímos deí. Como você pode anexar à sessão de sua escolha, desde que haja mais de um, seja deixado como um exercício para o usuário.

dvtm

Por último, mas com certeza, não menos importante, temos DVTM, do qual se pode dizer primeiro que é o mais parecido (pelo menos da nossa humilde lista) de um gerente de janela de ladrilhos.

Não que a tela ou o TMUX não tenham os recursos necessários, é apenas que o DVTM se parece com isso por padrão, como você pode ver aqui:

Para começar do início, a fim de instalar no Fedora ou no CentOS, apenas faça

$ sudo yum install dvtm 

, Observando que no CentOS você precisará do repositório EPEL habilitado e funcionando, já que os repositórios padrão não têm DVTM disponível. Nas distribuições baseadas em Debian, o comando usado para instalar deve ser

$ sudo apt-get install dvtm 

Como agora você está mais familiarizado com os multiplexadores, vamos entrar nele. Basta digitar 'DVTM' em um terminal e você está definido. O atalho de comando aqui é Ctrl + G (C-G), então, como vimos antes, para criar uma nova janela, basta fazer C-G + C. Você pode simplesmente alterar o atalho de comando padrão para, digamos, C -Y (verifique se isso não interferirá em outros atalhos como definido pelo seu gerenciador de janelas ou ambiente de desktop primeiro), você pode invocar/iniciar o DVTM assim: 'dvtm -m ^ você.

O fechamento do Windows é alcançado por padrão com C-G + X, e a comutação é feita usando as teclas J e K. Você irá, especialmente se você for um usuário ávido de VI/VIM, algumas semelhanças com um determinado textim de um editor de texto, então você deve estar em casa se VI/VIM for o seu. Como vimos na seção TMUX, o uso de C-G + $ window_number deve levá-lo à janela que você precisa, e o DVTM também ostenta um recurso que permite enviar entrada para todas as janelas visíveis: use C-G + A para isso, seguido de o comando/entrada a ser enviado; Use C-G + A novamente para restaurar o comportamento normal.

Agora estamos chegando à parte em que já sugerimos antes, as semelhanças com o ladrilho WMS. DVTM ostenta as seguintes opções quando se trata de layouts:

  • pilha vertical - isso significa que a chamada área mestre recebe a metade esquerda da tela e o restante é empilhado na metade direita
  • Pilha inferior - como você já adivinhou, basicamente o mesmo, mas a área principal está na metade superior e o restante empilhado na metade inferior
  • Grid - Todas as janelas recebem uma parcela igual da tela
  • tela cheia - o nome diz tudo - todas as janelas obtêm toda a propriedade de tela disponível

Em relação aos modos de cópia/pasta, conforme descrito na seção TMUX, o princípio é o mesmo, como é feito e os atalhos diferem. C-G + E tubos o buffer de rolagem para um editor externo, enquanto o que o editor disse na saída padrão pode ser colado com C-G + P.

Finalmente, a funcionalidade de destacar/anexar está lá, apenas é alcançada usando ferramentas externas. Embora isso possa parecer um desligamento no início, lembre-se de que o DVTM tem tudo a ver com simplicidade e aderência ao princípio do Unix de fazer uma coisa e fazê-lo bem. A ferramenta externa que vamos usar é chamada Abduco e você pode usá -la assim:

$ abduco -c dvtm -sessão 

anexar. Geralmente é uma instalação separada e isso pode ser feito da mesma maneira que você já usou para instalar o TMUX e, novamente, no CentOS e em outros derivados de Rhel, você precisará do EPEL ativado para que a instalação funcione. Seguindo em frente, o desapego é feito usando C-g + \ e a recolocação é feita com

$ abduco -a dvtm -sessão 

Como alternativa a Abduco, você pode usar o dtach e como é feito como um exercício para o leitor.

Conclusão

Esperamos ter lhe dado tudo o que você precisa para começar a usar multiplexadores de terminais ou pelo menos oferecer novas informações sobre o assunto se você já usou alguns ou até todos eles. Provavelmente agora você está perguntando: “Ok, entendi, mas qual devo usar?” - A resposta para isso é“ aquela que melhor lhe convier ”.

Há duas coisas aqui: uma, existem muitos cenários de usuário e casos de uso para poder dar uma resposta definitiva e dois, lembre -se de que os três multiplexadores terminais que abordamos são provavelmente os mais populares no campo, mas de modo os únicos. Então, dizemos usá -los, experimente, modifique -os para atender às suas necessidades da melhor maneira possível e então você saberá o que deseja usar.

Melhor ainda, se você tiver tempo e as habilidades e precisará de um recurso que ainda não esteja lá, abra uma solicitação de recurso ou, melhor ainda, hackeie o programa e compartilhe seu código. Só podemos esperar que você goste dessas ferramentas e se torne mais eficiente em seu trabalho.

Tutoriais do Linux relacionados:

  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para instalar no Ubuntu 20.04
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Mastering Bash Script Loops
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Ubuntu 20.04 Guia
  • Coisas para instalar no Ubuntu 22.04
  • Como fazer bota dupla kali linux e windows 10
  • Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…
  • Com que frequência você tem que reiniciar seu servidor Linux?