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 asteriscotmux
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 tmux
usando teclas, e há duas partes para isso. Primeiro, presiona Ctrl + B para obtertmux
atençã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 tmux
a 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 screen
sessõ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
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: top
Agora 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 dmesg
sessão chamada “geek-2”:
dmesg -w
Naquela sessão, Vamos começar tmux
:
Agora, temos o nosso “geek-1” original dmesg
sessã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.
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 tmux
exibir 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.
tmux
Ctrl + 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.
screen
A 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.