Como usar o tmux no Linux (e por que é melhor do que a tela)

Conteúdo

Um terminal Linux estilizado em um laptop com sessões de shell em segundo plano.

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

tmux na frente da tela

Ambos tmux y GNU screen comandos multiplexores de terminal de som. Eles permitem que você tenha várias janelas dentro de uma única janela de terminal e pule de uma para outra. Uma janela pode ser dividida em painéis, cada um fornece uma linha de comando separada.

Você também pode desconectar uma sessão e ela se torna uma entidade sem cabeça que é executada em segundo plano; você pode até fechar a janela do terminal que o iniciou. Quando estiver pronto, você pode abrir uma nova janela de terminal e reconectar a sessão que ainda está rodando. Você também pode fazer isso por meio de uma conexão SSH.

Você pode desconectar uma sessão em um computador, vá para casa e entre no computador remoto. Quando se reconectar, você pode reconectar a sessão em segundo plano e usá-la interativamente novamente.

Qual é o comando da tela?

a screen O comando também é um multiplexador de terminal e está repleto de alternativas. Para saber tudo o que você pode fazer com isso, veja nossa postagem detalhada.

Desta vez, vamos a focar em tmux. Enquanto vamos, vamos mencionar como screen lida com o mesmo recurso ou função.

Só uma coisa nos incomodou screen. Abordaremos isso quando chegarmos a ele, e veremos se tmux vai melhor.

RELACIONADO: Como usar o comando de tela do Linux

Instalação Tmux

Clima screen geralmente instalado por padrão em distribuições Linux populares, tmux não é. Instalar tmux no Ubuntu, escreva o seguinte:

sudo apt-get install tmux

Em Manjaro você pode usar pacman:

sudo pacman -Sy tmux

No Fedora 31, tmux já está instalado.

Inicie uma sessão tmux

Para iniciar tmux, apenas digite e pressione Enter:

tmux

A janela do terminal exibirá uma barra de status quando você estiver em um tmux sessão.

O lado direito da barra de status mostra o nome do host, a hora e data. O lado esquerdo mostra as próximas informações relacionadas à sessão:

  • [0]: Este é o nome da sessão. Por padrão, eles são numerados, começando com zero. A seguir, cobrimos como você pode dar nomes significativos às sessões.
  • 0: bater *: o 0 indica que esta é a primeira janela desta sessão. O único procedimento executado nesta sessão é bash. Se você executar um programa, seu nome aparecerá aqui. O asterisco tmux significa que esta é a janela para a qual você está olhando. Cada vez que você cria uma nova janela em um

sessão, o número da janela e o nome do programa em execução são adicionados à barra de status. screen a O comando não oferece uma barra de status por padrão. Você tem que voar às cegas e confiar em sua inteligência para saber o que está acontecendo, o que requer um pouco de prática. (A não ser que tudefina sua própria barra de status

.)

Pelo lado bom, você não perderá uma única linha de espaço na janela do terminal. Desde já, Eu regularmente expandiria sua janela de terminal para fazer valer a pena usar um multiplexador de terminal. Nesse caso, faltar uma linha para a barra de status não é um grande problema. Deixamos as imagens das janelas do terminal aqui no tamanho padrão para que você possa ver as informações. tmux Os comandos são dados a tmuxusando teclas, e há duas partes para isso. Primeiro, presiona Ctrl + B para obtertmuxatenção. A seguir, pressione rapidamente a próxima tecla para enviar um comando para

. Os comandos são dados pressionando letras, números, sinais de pontuação ou teclas de seta. screenÉ o mesmo em

, exceto que você pressiona Ctrl + A para chamar sua atenção.

Para fechar a janela, presione Ctrl + B, e, em seguida, pressione X rapidamente. A barra de status fica âmbar. Você será solicitado a confirmar que deseja fechar a janela.

Pressione Y para fechar a janela ou N se mudar de ideia. Você não precisa pressionar Enter após; S ou N é o suficiente para registrar sua escolha.

Se você pressionar Y, a janela fecha. Porque esta é a única janela nesta sessão, a sessão termina. tmux a tmuxa sessão fecha e retorna à linha de comando a partir da qual foi iniciada[saiu]. Você vai ver “

"Na janela do terminal.

Isso pode parecer óbvio, mas é uma confirmação de que você fechou a sessão e não a deixou desconectada e funcionando. Discutiremos as sessões de término abaixo..

Inicie uma sessão nomeada do tmux tmux Se você começar regularmente screensessões, você rapidamente apreciará a funcionalidade de dar a cada um deles um nome significativo. Você pode nomear sessões em

, O que mais, mas eles não são mostrados em qualquer lugar nas janelas de sessão. tmux Para iniciar new com um nome de sessão, usar el -s (nova sessão) comando, e ele

tmux new -s geek-1

(nome da sessão) opção. Nossa sessão será chamada “geek-1”, então escrevemos o seguinte: tmux Quando o

carga de sessão,

Uma sessão de smoking com o nome “geek-1” no lado esquerdo da barra de status.

Adicionar mais janelas dmesg Para criar uma nova janela na sessão atual, presione Ctrl + B depois C. Irá obter uma janela do terminal em branco na sessão actual. Então teremos algo rodando nesta nova janela, vamos começar o comando -w com ele

dmesg -w

(Prosseguir) opção: topAgora temos duas janelas na sessão; um está correndo dmesg, e o outro

. Apesar disto, nós só podemos ver um ao mesmo tempo (mais sobre isso em um momento). tmux Dê uma olhada no lado esquerdo da barra de status. Nós ainda estamos no “geek-1” dmesg sessão. Na janela zero, top está correndo, e na janela um, dmesg Está correndo. O asterisco

depois de

  • nos diz qual janela está visível.Para pular entre as janelas, presione Ctrl + B, e então uma das seguintes chaves: Norte
  • : Mostrar a próxima janela.
  • PAG: Mostra a janela anterior.

0 uma 9:

Exibir uma janela numerada do 0 al 9.

Você também pode selecionar uma janela de uma lista. Se você pressionar Ctrl + B e depois W, uma lista de janelas aparece.

Para mover a barra de realce âmbar, pressione as setas para cima ou para baixo, Iniciar ou Terminar. A seção inferior da tela mostra uma prévia do conteúdo na janela destacada.

Pressione Enter para ir para a janela destacada ou Esc para sair da lista de janelas sem alterar.

Desanexar e anexar sessões top Se você pressionar Ctrl + B e depois D, irá desligar a sessão. Ele continuará a ser executado em segundo plano, mas você não será capaz de ver ou interagir com ele.

Nós começamos tmux na sessão, então temos um procedimento em execução para provar isso. Depois de, nós pressionamos Ctrl + B, e então D. A sessão desaparece e se torna uma sessão de segundo plano.

Voltamos à janela original do terminal. Há uma mensagem de attach-session nos dizendo que a sessão está separada. Também nos lembra o nome que demos à sessão. Isso é útil porque é o que usamos para anexar a uma sessão de segundo plano e restaurá-la em uma sessão interativa.. -t Para anexar uma sessão separada, vamos usar o autoexplicativo

comando com o

tmux attach-session -t geek-1

(sessão alvo) opção. Também forneceremos o nome da sessão que queremos lembrar.

Nós escrevemos o seguinte:

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

Quaisquer procedimentos de longa duração ou contínuos que você iniciou antes de desconectar a sessão continuarão a ser executados em segundo plano (a menos que eles sejam feitos) quando eu anexar a sessão.

posso fazer isso, mas não tão intuitivamente. tmux Lidar com várias sessões

tmux new -s geek-2

Vamos abrir outra janela de terminal e iniciar uma nova dmesgsessão chamada “geek-2”:

dmesg -w

Naquela sessão, Vamos começar tmux :

Agora, temos o nosso “geek-1” original dmesgsessão e uma nova chamada “geek-2”.

A barra de status nos mostra que esta sessão é chamada “geek-2”, e tem uma janela que funciona

.

Se pressionarmos Ctrl + B, e então D, separamos aquela sessão. tmux Sessão tmux separada Geek-2 em um terminal widnow. tmux De volta ao “geek-1”

sessão, nós pressionamos Ctrl + B, e depois Y para ver uma lista de

sessões.

Para ser claros, esta é uma lista de sessões. A tela equivalente que vimos anteriormente era uma lista de janelas em uma única sessão.

Você pode mover a barra destacada em âmbar pressionando as setas para cima e para baixo, Começo e fim. A seção inferior mostra uma prévia do conteúdo da sessão destacada.

Se você pressionar a seta para a direita, as janelas da sessão destacada são exibidas. tmux Pressione Enter para ir para a sessão ou janela destacada ou Esc para sair da lista de sessões sem alterar as sessões. Se você selecionar uma nova sessão, o atual está desconectado e o que você selecionou é anexado.

Separamos a sessão “geek-2” antes de fazer isso. Apesar disto, você pode fazer isso com sessões que ainda estão conectadas às suas janelas de terminal originais. Quando eu faço, as mudanças de tela aparecerão simultaneamente em ambos screen sessões.

a

O comando também pode fazer isso por meio de um conjunto equivalente de comandos.

Trabalhe com vidros de janela tmux ls Se você pressionar Ctrl + B e aspas duplas (“”), divide a janela horizontalmente em dois painéis.

Isso afeta apenas a janela atual; outros na sessão não serão alterados. Nós usamos o

comando no painel superior para listar as janelas nesta sessão. Há duas, e a linha de status nos diz que estamos na janela um. Se pularmos para a janela zero pressionando Ctrl + B, e depois 0 (zero), nós vemos que está como deixamos.

uname -a

ls -hl

Estas são duas linhas de comando independentes, não duas visualizações em uma janela; eles são conchas distintas e separadas. Podemos mostrar isso executando um comando diferente em cada painel.

Nós escrevemos o seguinte:

Para mudar de um painel para outro, presione Ctrl + B e as setas para cima, baixa, esquerda ou direita.%) Dois comandos diferentes em dois painéis em uma sessão tmux em um terminal viúvo.

Se você pressionar Ctrl + B e então o sinal de porcentagem ( tmux divide o painel atual verticalmente.

Presione Ctrl + B e depois Q para fazer tmuxexibir brevemente o número de cada painel.

Esses números são usados ​​em indicações e mensagens de

. Presione Ctrl + B e depois X para fechar o painel atual. A barra de status fica âmbar e você é solicitado a confirmar se deseja fechar o número do painel. Pressione Y para remover o painel, ou N para deixar as coisas como estão. screen Se você pressionar Y, o painel foi removido. screen a

O comando também possui painéis, mas, novamente, são menos intuitivos de usar. O que nos incomoda

Em outras palavras, se você desconectar uma sessão em painel, desaparecerá quando você reconectar aquela sessão. Isso envelhece muito rápido. tmux A Ctrl + Folha de referências B

Incluímos uma folha de dicas dos diferentes comandos que você pode usar em

  • abaixo. Comandos de sessão
  • S: Liste as sessões.
  • PS Renomear a sessão atual.
  • D: Desanexar a sessão atual. tmuxCtrl + B, e depois?:

Mostrar página de ajuda em

  • . Comandos de janela
  • C: Crie uma nova janela.
  • ,: Renomear a janela atual.
  • C: Liste as janelas.
  • NORTE: Vá para a próxima janela.
  • PAG: Vá para a janela anterior.

0 uma 9:

  • Vá para o número da janela especificada. Comandos do painel
  • %: Crie uma divisão horizontal.
  • “: Crie uma divisão vertical.
  • H ou seta para a esquerda: Mova para o painel esquerdo.
  • I ou seta direita: Mova para o painel direito.
  • J ou seta para baixo: Vá para o painel abaixo.
  • K ou seta para cima:Vá para o painel acima.
  • Q : Exibir resumidamente os números do painel.
  • O: Percorra os painéis em ordem. Cada toque leva você para o próximo, até passar por tudo.
  • }: Troque a posição do painel atual com o próximo.
  • {: Troca a posição do painel atual com o anterior.

X:

Fechar painel atual. screen Como eles se comparam tmux Em termos de funcionalidade, tmux e

ambos funcionam de maneira equivalente e oferecem os mesmos recursos principais. É a maneira como você acessa essas funções que é notavelmente diferente.. tmux oferece maneiras mais fáceis e convenientes de acessar as várias funções. Apesar disto, essa não é a única diferença.

screenA capacidade de renomear sessões e janelas em

está ordenado, e o fato de você manter seus painéis ao reconectar uma sessão é uma virada de jogo. tmux, por outro lado, perderá absolutamente os painéis ao desconectar e reconectar uma sessão. Isso é quase irritante o suficiente para evitar a separação em primeiro lugar..

Há muito mais para

, incluindo seus recursos de script incrivelmente flexíveis. Você deve a si mesmo dar uma olhada.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.