Como Usar o tmux no Linux (e Porque É Melhor do Que a Tela)
- Dave McKay
@TheGurkha
- 14 de Maio de 2020, 8:00 EDT
O Linux tmux
comando é um multiplexador de terminal, como screen
. Seus defensores são muitos e vocais, então decidimos comparar os dois. Is tmux
really better, or is it just a case of prefring what you know?
- tmux vs. screen
- Qual é o comando do ecrã?
- Instalar o tmux
- Iniciar uma Sessão do tmux
- iniciando uma sessão tmux chamada
- adicionar mais janelas
- separar e anexar sessões
- Tratamento de Várias Sessões
- trabalhando com painéis de janelas
- a Ctrl+B Cheat Sheet
- comandos de sessão
- comandos da janela
- comandos do Painel
- Como Eles se Comparam
tmux vs. screen
Both the tmux
and GNUscreen
commands are terminal multiplexers. 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 de 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.
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á cheio 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, vamos mencionar como screen
lida com o mesmo recurso ou função.
apenas uma coisa nos irritou sobre screen
. Vamos cobrir isso quando chegarmos a ele, e ver se tmux
tarifas melhores.
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 o 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.
Iniciar uma Sessão do tmux
iniciar tmux
, apenas digite-a e pressione Enter:
tmux
A janela de terminal irá mostrar uma barra de status quando você está em um tmux
sessão.
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ãotmux
, 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.
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 de teclado, e há duas partes para isso. Primeiro, carrega em Ctrl+B para obter a atenção de tmux
. Você então pressiona 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 obter 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.
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 tmux
sessão é fechada e você é devolvido à linha de comando a partir da qual você lançoutmux
. Vais ver “” na janela do terminal.
isto 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 chamada
se iniciar regularmente várias sessões detmux
, 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.
iniciar tmux
com um nome de sessão, utilize o new
(nova sessão) de comando, e o -s
(nome da sessão) opção. A nossa sessão vai ser chamada de “geek-1”, por isso escrevemos o seguinte:
tmux new -s geek-1
quando o tmux
cargas de sessão,” geek-1 ” é apresentado como o primeiro item na barra de estado, à esquerda.
adicionar mais janelas
para criar uma nova janela na sessão actual, carregue em Ctrl+B E depois em C. Você terá uma janela de terminal em branco na sessão atual. Então nós vamos ter algo funcionando nesta nova janela, vamos começar o dmesg
comando com -w
(siga) opção:
dmesg -w
Agora temos duas janelas na sessão; é a execução de top
e o outro 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 ( * ) após 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: mostrar uma janela numerada de 0 a 9.
Você também pode escolher uma janela de uma lista. Se carregar em Ctrl+B e depois W, irá aparecer uma lista de janelas.
para mover a barra de realce âmbar, pressione as setas para cima ou para baixo, Home ou End. 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.
separar e anexar sessões
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.
we’ve startedtop
in the session so we have a running process to demonstrate with. Depois, carregamos em Ctrl+B, E depois D. a sessão desaparece e torna-se uma sessão de fundo.
voltamos à janela do terminal original. Há uma mensagem de tmux
dizendo-nos que a sessão está separada. 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 auto-explicativo attach-session
comando com a opção -t
(sessão alvo). Também forneceremos o nome da sessão que queremos recordar.
escrevemos o seguinte:
tmux attach-session -t geek-1
a nossa sessão retorna e torna-se uma sessão visível e interativa novamente.
qualquer processo de longa duração ou contínuo que tenha iniciado antes de desligar a sessão continuará a correr em segundo plano (a menos que tenha 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
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 executa dmesg
.se carregarmos em Ctrl+B, E depois D, destacamos essa sessão.
de volta na sessão “geek-1” tmux
, pressionamos Ctrl+B, E então S para ver uma lista de tmux
sessions.
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.
Carregue em Enter para mover para a sessão seleccionada 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
pode fazer isso também, através de um conjunto similar 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 áreas.
isto só afecta a janela actual; os outros na sessão não serão alterados. Usámos 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 digite o seguinte:
uname -a
ls -hl
Para mover a partir de um painel para outro, pressione Ctrl+B e, em seguida, para Cima, para Baixo, para a Esquerda ou Seta para a Direita.se carregar em Ctrl+B, e depois o sinal percentual (%)
divide a área actual verticalmente.
pressione Ctrl+B, E depois Q para fazertmux
brevemente piscar o número de cada painel.
estes números são usados em pedidos 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. A coisa que nos irrita sobre screen
é que se você desaperta uma sessão com pães, eles desaparecem quando você recoloca 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: Desligar a sessão actual.
- Ctrl+B, E depois ?: Display Help page in
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: mova-se para a área à esquerda.seta para a direita: Mova-se para o painel à direita.
- J ou seta para baixo: mova-se para a área abaixo.
- K ou seta para cima: mova-se para a área acima.
- Q: mostrar brevemente os números das áreas.
- O: mover através de painéis em ordem. Cada imprensa leva-te para a próxima, até passares por todas elas.
- }: troque a posição da área actual com a seguinte.
- {: trocar a posição da área actual com a anterior.
- X: fechar a área actual.
Como Eles se Comparam
Em termos de funcionalidade, screen
e tmux
ambos funcionam de forma semelhante e oferecer as mesmas funções. É 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.
a capacidade de mudar o nome das sessões e janelas em tmux
é puro, e o fato de que ele retém as páginas quando você recoloca uma sessão é uma mudança de jogo.
screen
, por outro lado, perde completamente os painéis quando se desloca 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 incrivelmente flexíveis de scripting. 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.Read Full Bio ”