Como Usar o tmux no Linux (e Porque É Melhor do Que a Tela de)

  • Dave McKay

    @TheGurkha

  • 14 de Maio de 2020, 8:00 am EDT
fatmawati ela zaenuri/

O Linux tmux comando é um multiplexador de terminal, como o screen. Seus defensores são muitos e vocais, então decidimos comparar os dois. É tmux realmente melhor, ou é apenas um caso de preferir o que você sabe?

tmux vs. screen

ambos os comandos tmux e GNU screen são multiplexadores terminais. Eles permitem que você tenha várias janelas dentro de uma única janela terminal, e para saltar para trás e para a frente entre eles. Uma janela pode ser dividida em painéis, cada um dos quais lhe dá uma linha de comando independente.

você também pode separar uma sessão e ela se torna uma entidade sem cabeça rodando em segundo plano-você pode até fechar a janela terminal que a lançou. Quando estiver pronto, pode abrir uma nova janela de terminal e voltar a ligar a sessão ainda em execução. Você também pode fazer isso através de uma conexão SSH.

anúncio

você pode destacar uma sessão em um computador, ir para casa, e entrar no computador remoto. Quando reconectado, você pode voltar a ligar a sessão de fundo e usá-lo interativamente novamente.Qual é o comando do ecrã?

o comando screen também é um multiplexador de terminal, e está repleto de opções. Para saber tudo o que pode fazer com ele, veja o nosso artigo em profundidade.Desta vez, vamos concentrar-nos em tmux. À medida que avançamos, mencionaremos como screen lida com o mesmo recurso ou função.

publicidade

apenas uma coisa nos irritou com screen. Vamos cobrir isso quando chegarmos a ele, e ver se tmux está melhor.

RELACIONADOS: Como Usar o Linux a tela de Comando

Instalar o tmux

Enquanto screen geralmente é instalado por padrão em populares distribuições Linux, tmux não. Para instalar tmux no Ubuntu, digite o seguinte:

sudo apt-get install tmux

No Manjaro você pode usar pacman:

sudo pacman -Sy tmux

No Fedora 31, tmux já está instalado.

iniciando uma sessão de tmux

para iniciar tmux, digite apenas e bata Enter:

tmux

a janela do terminal irá mostrar uma barra de estado quando estiver numa sessão tmux.

o lado direito da barra de estado mostra o nome da máquina, a hora e a data. O lado esquerdo mostra a seguinte informação relacionada com a sessão:

  • : este é o nome da sessão. Por padrão, eles estão numerados, começando com zero. Nós cobrimos como você pode dar nomes significativos para as sessões abaixo.
  • 0:bash*: o 0 indica que esta é a primeira janela desta sessão. O único processo em execução nesta sessão é bash. Se você executar um programa, seu nome aparecerá aqui. O asterisco ( * ) significa que esta é a janela que você está olhando. Cada vez que cria uma nova janela numa sessão tmux, o seu número de janela e o nome do programa que está a correr nela são adicionados à barra de Estado.

o comando screen não lhe dá uma barra de Estado. Tens de voar às cegas e confiar na tua inteligência para saber o que se passa, o que requer um pouco de prática.

anúncio

no lado positivo, você não vai perder uma linha de terminal janela imóveis. Claro, você normalmente expandiria sua janela de terminal para fazer com que o uso de um multiplexador de terminal valesse a pena. Nesse caso, a perda de uma linha para a barra de status não é muito de um problema. Deixámos as imagens das janelas do terminal aqui no tamanho padrão para que possa ver a informação.

comandos são dados a tmux usando teclas, e há duas partes para isso. Primeiro, carrega em Ctrl+B para chamar a atenção de tmux. Em seguida, pressione rapidamente a próxima tecla para enviar um comando paratmux. Os comandos são dados carregando em letras, números, marcas de pontuação ou teclas de cursores.

é o mesmo em screen, excepto se carregar em Ctrl+A para chamar a sua atenção.

para fechar a janela, carregue em Ctrl+B e depois carregue rapidamente em X. A barra de Estado torna-se âmbar. Você é então solicitado a confirmar que você quer matar a janela.

publicidade

Pressione Y para fechar a janela ou n Se mudar de ideias. Você não tem que pressionar Enter depois; Y ou N é suficiente para registrar sua escolha.Se carregar em Y, a janela fecha-se. Como esta é a única janela nesta sessão, a sessão é terminada.

a sessão tmux está fechada e é devolvido à linha de comandos a partir da qual lançou tmux. Vais ver “” na janela do terminal.Pode parecer que está a afirmar o óbvio, mas é uma confirmação de que fechou a sessão e não a deixou desligada e em execução. Discutiremos as sessões de separação abaixo.

iniciando uma sessão tmux nomeada

se começar regularmente várias sessões tmux, irá apreciar rapidamente a funcionalidade de dar a cada uma delas um nome significativo. Você pode nomear sessões em screen, também, mas elas não são exibidas em qualquer lugar nas janelas de sessão.

anúncio

para iniciar tmux com um nome de sessão, use o comando new (nova sessão), e a opção -s (nome da sessão). A nossa sessão vai ser chamada de “geek-1”, por isso escrevemos o seguinte::

tmux new -s geek-1

quando as cargas de sessão tmux,” geek-1 ” é apresentado como o primeiro item na barra de estado, à esquerda.

adicionando mais janelas

para criar uma nova janela na sessão actual, carregue em Ctrl+B e, em seguida, C. irá obter uma janela de terminal em branco na sessão actual. Então teremos algo correndo nesta nova janela, vamos iniciar o comando dmesg com a opção -w (seguir) :

dmesg -w
publicidade

agora temos duas janelas na sessão; uma está rodando top, e a outra dmesg. Só podemos ver um de cada vez, porém (mais sobre isso em um momento).

dê uma olhada no lado esquerdo da barra de Estado. Ainda estamos na sessão” geek-1 ” tmux. Na janela zero, o topo está em execução, e na janela um, dmesg está em execução. O asterisco ( * ) depois de dmesg nos diz qual janela é visível.

para saltar entre as janelas, carregue em Ctrl+B e depois numa das seguintes teclas:

  • n: Mostra a próxima janela.
  • P: mostra a janela anterior.
  • 0 a 9: mostra uma janela numerada de 0 a 9.

pode também escolher uma janela a partir de uma lista. Se carregar em Ctrl+B e depois W, irá aparecer uma lista de janelas.

anúncio

para mover a barra de realce âmbar, pressione as setas para cima ou para baixo, para casa ou para o fim. A secção inferior da visualização mostra uma antevisão do conteúdo na janela seleccionada.

Carregue em Enter para mover para a janela seleccionada, ou Esc para sair da lista de janelas sem mudar de assunto.Se carregar em Ctrl+B E depois D, irá desligar a sessão. Ele vai continuar a correr em segundo plano, mas você não será capaz de ver ou interagir com ele.

começamos top na sessão então temos um processo em execução para demonstrar com. Depois, carregamos em Ctrl+B, E depois D. a sessão desaparece e torna-se uma sessão de fundo.

publicidade

voltamos à janela do terminal original. Há uma mensagem de tmux a dizer-nos que a sessão está desligada. Recorda-nos também o nome que demos à sessão. Isto é útil porque é o que usamos para anexar a uma sessão de fundo, e, em seguida, restaurá-lo a um interativo.

para anexar uma sessão separada, usaremos o comando auto-explicativo attach-session com a opção -t (sessão alvo). Também forneceremos o nome da sessão que queremos recordar.

nós digitar o seguinte:

tmux attach-session -t geek-1

nossa sessão retorna e se torna uma sessão visível e interativa novamente.

quaisquer processos de longa duração ou contínuos que tenha iniciado antes de desligar a sessão, continuarão a correr em segundo plano (a menos que tenham terminado) quando anexar a sessão.

screen pode fazer isso, mas não como intuitivamente.

Tratamento de Várias Sessões

Vamos abrir outra janela de terminal e iniciar um novo tmux sessão chamada “geek-2”:

tmux new -s geek-2

nessa sessão, vamos começar dmesg:

dmesg -w
Anúncio

Agora, nós temos a nossa “original” geek-1″ tmux sessão, e um novo chamado “geek-2.”

a barra de estado mostra-nos que esta sessão é chamada “geek-2”, e tem uma janela que está a correr dmesg.Se carregarmos em Ctrl+B, E depois D, destacamos essa sessão.

anúncio

de volta na sessão” geek-1 ” tmux, pressionamos Ctrl+B, E então S para ver uma lista de tmux sessões.

para ser claro, esta é uma lista de sessões. A exibição similar que vimos anteriormente era uma lista de janelas em uma única sessão.

pode mover a barra de realce âmbar pressionando as setas para cima e para baixo, Home e End. A secção inferior mostra uma antevisão do conteúdo na sessão seleccionada.

se carregar na seta para a direita, as janelas para a sessão seleccionada são apresentadas.

anúncio

pressione Enter para mover para a sessão realçada ou janela ou Esc para sair da lista de sessões sem alterar as sessões. Se Seleccionar uma nova sessão, a sua actual distancia-se e a que seleccionou é anexada.Separámos a sessão “geek-2” antes de fazermos isto. No entanto, você pode fazer isso com sessões que ainda estão ligadas às suas janelas de terminal originais. Quando o fizer, quaisquer alterações de ecrã irão aparecer simultaneamente em ambas as sessões tmux.

o comando screen também pode fazer isto, através de um conjunto semelhante de comandos.

trabalhando com painéis de janelas

se carregar em Ctrl+B, e depois em aspas duplas (“”), irá dividir a janela horizontalmente em duas janelas.

anúncio

isto só afecta a janela actual; os outros na sessão não serão alterados. Nós usamos o comando tmux ls na área superior para listar as janelas nesta sessão. Há dois, e a linha de Estado diz-nos que estamos na janela um. Se saltarmos para a janela zero, carregando em Ctrl+B, e depois 0 (zero), vemos que é exactamente como o deixámos.

estas são duas linhas de comando independentes, Não duas vistas numa janela; são conchas distintas e separadas. Podemos mostrar isto executando um comando diferente em cada painel.

nós digitar o seguinte:

uname -a

ls -hl

para passar de uma área para outra, carregue em Ctrl+B, e depois na seta para cima, para baixo, para a esquerda ou para a direita.

se carregar em Ctrl+B, e depois o sinal percentual (%) divide a área actual verticalmente.

anúncio

pressione Ctrl+B, E depois Q para fazer tmux brevemente piscar o número de cada painel.

estes números são usados em indicações e mensagens de tmux. Carregue em Ctrl+B e depois em X para fechar a área actual. A barra de estado muda para âmbar, e você é solicitado a confirmar que você quer fechar esse número de painel. Pressione Y para remover o painel, ou N para deixar as coisas como estão.Se carregar em Y, a área é removida.

o comando screen também tem painéis, mas, novamente, eles são menos intuitivos de usar. O que nos irrita em relação ao screen é que, se separarmos uma sessão com o panes, eles desaparecem quando recolocamos essa sessão. Isto envelhece muito depressa.

A Ctrl+B Cheat Sheet

incluímos uma “cheat sheet” dos diferentes comandos que pode usar em tmux abaixo.

comandos de sessão

  • S: sessões de Lista.
  • $: mudar o nome da sessão actual.
  • D: destacar a sessão actual.
  • Ctrl+B, E depois ?: Mostra a página de Ajuda em tmux.

comandos da janela

  • C: criar uma nova janela.
  • ,: Mudar o nome da janela actual.
  • W: listar as janelas.
  • N: mover para a próxima janela.
  • P: mover para a janela anterior.
  • 0 a 9: mover para o número da janela indicado.

comandos do Painel

  • %: criar uma divisão horizontal.
  • “: criar uma divisão vertical.
  • H ou seta para a esquerda: Mover para a área à esquerda.
  • I ou seta para a Direita: Mover para a vidraça à direita.
  • J ou seta para baixo: mova-se para a área abaixo.
  • K ou seta para cima: mova-se para a área acima.
  • Q: mostra brevemente os números das vidraças.
  • o: mover através de painéis em ordem. Cada imprensa leva-te para a próxima, até passares por todas elas.
  • }: trocar a posição da área actual com a seguinte.
  • {: trocar a posição do painel actual com a anterior.
  • X: fechar a área actual.

como eles comparam

em termos de funcionalidade, screen e tmux ambos apresentam similarmente e oferecem as mesmas características principais. É a forma como você acede a essas características que é marcadamente diferente. tmux oferece ao slicker, formas mais confortáveis de chegar às várias funções. No entanto, essa não é a única diferença.

O anúncio

a capacidade de mudar o nome das sessões e janelas em tmux é puro, e o fato de que ele retém os painéis quando você recoloca uma sessão é uma mudança de jogo.

screen, por outro lado, perde completamente o panes quando se separa e recoloca uma sessão. Isto é quase irritante o suficiente para fazer você evitar a separação em primeiro lugar.

há muito mais para tmux, incluindo suas capacidades de scripts incrivelmente flexíveis. Deves a ti próprio verificar.

Dave McKay usou pela primeira vez computadores quando a fita de papel perfurado estava em voga, e ele tem estado programando desde então. Depois de mais de 30 anos na indústria de TI, ele é agora um jornalista de tecnologia em tempo integral. Durante sua carreira, ele trabalhou como programador freelance, gerente de uma equipe internacional de desenvolvimento de software, um gerente de projeto de serviços de TI, e, mais recentemente, como um oficial de proteção de dados. Dave é um evangelista Linux e defensor de código aberto.Ler A Bio Completa”