Como usar o comando de tela do Linux
Com o Linux tela
comando, você pode colocar os aplicativos de terminal em execução em segundo plano e puxá-los para frente quando quiser vê-los. Ele também oferece suporte a exibições em tela dividida e funciona em conexões SSH, mesmo depois de você desconectar e reconectar!
O que é o comando da tela?
O tela
O comando é um multiplexador de terminal e está totalmente repleto de opções. Dizer que pode fazer muito é o avô dos eufemismos. A página do manual tem mais de 4.100 linhas.
A seguir estão os casos mais comuns em que você usaria o tela
comando, e vamos cobrir isso mais adiante neste artigo:
- A operação padrão é criar uma nova janela com um shell nela, executar um comando e, em seguida, empurrar a janela para o fundo (chamado de “desanexação”). Quando você quiser ver como está o seu processo, você pode puxar a janela para o primeiro plano novamente (“reconectar”) e usá-la novamente. Isso é ótimo para processos longos que você não deseja encerrar acidentalmente fechando a janela do terminal.
- Assim que você tiver um
tela
sessão em execução, você pode criar novas janelas e executar outros processos nelas. Você pode facilmente pular entre as janelas para monitorar seu progresso. Você também pode dividir sua janela de terminal em regiões verticais ou horizontais, e exibir seus váriostela
janelas em uma janela. - Você pode se conectar a uma máquina remota, iniciar um
tela
sessão e lançar um processo. Você pode se desconectar do host remoto, reconectar e seu processo ainda estará em execução. - Você pode compartilhar um
tela
sessão entre duas conexões SSH diferentes para que duas pessoas possam ver a mesma coisa, em tempo real.
Tela de instalação
Para instalar tela
no ubuntu, use este comando:
sudo apt-get install tela
Para instalartela
no Manjaro, use o seguinte comando:
sudo pacman -Sy screen
No Fedora, você digita o seguinte:
tela de instalação do sudo dnf
Introdução à tela
Para iniciar tela
, simplesmente digite-o conforme mostrado abaixo e pressione Enter:
tela
Você verá uma página de informações sobre a licença. Você pode pressionar a barra de espaço para ler a segunda página ou Enter para retornar ao prompt de comando.
Você fica no prompt de comando e nada mais parece ter acontecido. No entanto, agora você está executando um shell dentro de um emulador de terminal multiplexado. Por que isso é uma coisa boa? Bem, vamos iniciar um processo que vai demorar muito para ser concluído. Vamos baixar o código-fonte do kernel Linux mais recente e redirecioná-lo para um arquivo chamado latest_kernel.zip
.
Para fazer isso, digitamos o seguinte:
curl //cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz> latest_kernel.zip
Nosso download começa, e o ondulação
saída nos mostra o progresso.
Não podemos mostrar uma imagem do próximo bit, porque é uma sequência de teclas. Você digita Ctrl + A, libera essas teclas e, em seguida, pressiona d para destacar a tela.
O processo de download ainda está em execução, mas a janela que mostra o download foi removida. Você retornará à janela do terminal a partir da qual iniciou o tela
sessão. Uma mensagem diz que um tela
janela rotulada 23167.pts-0.howtogeek
foi desanexado.
Você precisa do número do início do nome da janela para reanexá-la. Se você esquecer, você sempre pode usar o -ls
(lista) opção, conforme mostrado abaixo, para obter uma lista das janelas desanexadas:
tela -ls
Quando estiver pronto, você pode usar o -r
opção (reanexar) e o número da sessão para reanexá-lo, assim:
tela -r 23167
A janela que estava funcionando em segundo plano agora é trazida de volta para a janela do terminal como se nunca tivesse saído.
Se for um processo que vai chegar à sua conclusão, ele acabará por ser concluído. Se for um processo contínuo, você eventualmente desejará encerrá-lo. De qualquer forma, quando o processo termina, você pode digitarsaída
para sair do tela
. Como alternativa, você pode pressionar Ctrl + A e, em seguida, K para encerrar à força uma janela.
Digite o seguinte comando:
saída
Você retornará à janela anterior do terminal, que ainda mostrará o comando usado para reanexar a janela. Porque fechamos nossa única janela destacada, recebemos uma mensagem que tela
está encerrando.
RELACIONADO:Como usar curl para baixar arquivos da linha de comando do Linux
Usando sessões de tela nomeada
Você pode usar o -S
(nome da sessão) opção para nomear seu tela
sessão. Se você usar um nome memorável em vez da identidade numérica da sessão, é mais conveniente se reconectar a uma sessão. Nós digitamos o seguinte para nomear nossa sessão “bigfile”:
tela -S bigfile
Quando tela
inicia nossa sessão, vemos uma janela em branco com um prompt de comando. Vamos baixar um arquivo grande, para que possamos usar um processo de longa duração como exemplo.
Nós digitamos o seguinte:
curl //ipv4.download.thinkbroadband.com/1GB.zip> bigfile.zip
Quando o download começa, pressionamos Ctrl + A e, em seguida, D para desanexar a sessão. Nós digitamos o seguinte para usar o -ls
(lista) opção com tela
para ver os detalhes de nossa sessão separada:
tela -ls
Atrás do identificador numérico (23266), vemos o nome da nossa sessão (bigfile). Nós digitamos o seguinte, incluindo o nome da sessão, para anexá-la novamente:
screen -r bigfile
Estamos reconectados à nossa janela de download e vemos que o longo download ainda está em andamento.
Quando o download é concluído, nós digitamos saída
para fechar a janela da sessão.
Usando a tela com várias janelas
Até agora, temos usado tela
para colocar um único processo em segundo plano em uma janela destacada. Contudo,tela
é capaz de fazer muito mais do que isso. A seguir, executaremos alguns processos que nos permitem monitorar alguns aspectos do nosso computador.
Nós digitamos o seguinte para iniciar uma sessão de tela chamada “monitor”:
tela -S monitor
No prompt de comando em nossa nova sessão de janela, vamos lançar dmesg
e usar o -H
(legível por humanos) e -C
(aguarde novas mensagens) opções. Isso exibirá as mensagens do buffer do kernel; novas mensagens aparecerão à medida que ocorrerem.
Nós digitamos o seguinte:
dmesg -H -w
As mensagens existentes são exibidas. Não voltamos ao prompt de comando porque dmseg
está esperando por novas mensagens e as exibirá assim que chegarem.
RELACIONADO:Como usar o comando dmesg no Linux
Queremos executar outro aplicativo, então precisamos de um novo tela
janela. Pressionamos Ctrl + A e, em seguida, C para criar uma nova janela. Vamos usar ver
correr repetidamente vmstat
, para obtermos uma exibição freqüentemente atualizada do uso de memória virtual em nosso computador.
No novo prompt de comando, digitamos o seguinte:
assistir vmstat
O vmstat
a saída aparece e é atualizada a cada dois segundos.
Nossos dois processos estão em execução. Para pular entre otela
janelas, você pressiona Ctrl + A, e o número da janela. A primeira que criamos é a janela zero (0), a próxima é a janela 1 e assim por diante. Para pular para a primeira janela (o dmesg
um), pressionamos Ctrl + A e 0.
Se pressionarmos Ctrl + A e 1, isso nos levará de volta ao vmstat
janela.
Isso é muito legal! Podemos pressionar Ctrl + A e, em seguida, D para se desconectar desta sessão; podemos reconectar mais tarde. Ambas as sessões ainda estarão em execução. Novamente, para alternar entre as janelas, pressionamos Ctrl + A e o número (0 ou 1) da janela para a qual queremos mudar.
Vamos para a próxima etapa e ver as duas telas em uma janela. Ao fazer isso, você aumentará a janela do terminal para um tamanho que torne esta etapa útil. Nossos exemplos são restritos ao tamanho de nossas capturas de tela, então nossas janelas parecerão um pouco apertadas.
Para fazer isso, pressionamos Ctrl + A e, em seguida, Shift + S (um “S” maiúsculo é necessário).
A janela se divide em duas "regiões".
A região superior ainda exibe vmstat
, e a região inferior fica em branco. O cursor é destacado na imagem abaixo. Para movê-lo para a região inferior, pressionamos Ctrl + A e, em seguida, Tab.
O cursor se move para a região inferior, que na verdade é apenas um espaço vazio. Não é um shell, então não podemos digitar nada nele. Para obter uma exibição útil, pressionamos Ctrl + A e, em seguida, pressionamos “0” para exibir o dmesg
janela nesta região.
Isso nos dá ambas as saídas ao vivo em uma janela dividida. Se pressionarmos Ctrl + A e D para destacar a janela e, em seguida, reconectá-la, perderemos a visualização do painel dividido. No entanto, podemos restaurá-lo com os seguintes atalhos de teclado:
- Ctrl + A, S: Divida a janela horizontalmente.
- Ctrl + A, Aba: Vá para a região inferior.
- Ctrl + A, 0: Exibir janela zero na região inferior.
Podemos levar as coisas um passo adiante. Agora vamos dividir o painel inferior verticalmente e adicionar um terceiro processo à tela. Com o cursor na região inferior, pressionamos Ctrl + A e C para criar uma nova janela com uma concha. A região inferior exibe a nova janela e nos dá um prompt de comando.
Em seguida, executamos o df
comando para verificar o uso do sistema de arquivos:
df
Quando virmos df
em execução, pressionamos Ctrl + A e a barra vertical (|)
. Isso divide a região inferior verticalmente. Pressionamos Ctrl + A e Tab para mover para a nova região. Em seguida, pressionamos Ctrl + A e 0 para exibir o dmesg
janela.
Você também pode mover de região para região e adicionar mais divisões verticais ou horizontais. Aqui estão algumas combinações de teclas mais úteis:
- Ctrl + A: Salte para a frente e para trás entre a região atual e a anterior.
- Ctrl + A, Q: Feche todas as regiões, exceto a atual.
- Ctrl + A, X: Feche a região atual.
Usando a tela sobre SSH
Com tela
, você pode iniciar uma sessão de janela, desanexá-la para que continue em execução em segundo plano, fazer logoff ou login novamente e reconectar a sessão.
Vamos fazer uma conexão SSH ao nosso computador de um diferente com ossh
comando. Temos que fornecer o nome da conta com a qual vamos nos conectar e o endereço do computador remoto.
Para nosso exemplo, digitamos o seguinte:
ssh [email protected]
Depois de autenticar no computador remoto e fazer login, digitamos o seguinte para iniciar um tela
sessão chamada “ssh-geek”:
tela -S ssh-geek
Para fins de demonstração, vamos executarprincipal
no tela
janela, mas você pode iniciar qualquer processo longo ou interminável.
Nós digitamos o seguinte:
principal
Uma vezprincipal
está sendo executado na janela, pressionamos Ctrl + A e, em seguida, D para desanexar a janela.
Voltamos à janela original do terminal remoto.
Se digitarmos saída
, conforme mostrado abaixo, ele desconecta a sessão SSH e estamos de volta ao nosso computador local:
saída
Nós digitamos o seguinte para reconectar:
ssh [email protected]
Depois de reconectar e fazer login, podemos digitar o seguinte para reconectar o tela
sessão:
screen -r ssh-geek
Agora estamos reconectados à nossa instância ainda em execução de principal
.
Isso é ótimo se você deseja iniciar um processo em uma máquina e continuar de onde parou em outra.
RELACIONADO:Como criar e instalar chaves SSH a partir do shell do Linux
Compartilhando uma sessão de tela
Você também pode usar um tela
sessão para permitir que duas pessoas vejam e interajam com a mesma janela. Digamos que alguém executando o Fedora em seu computador deseja se conectar ao nosso servidor Ubuntu.
Ele digitaria o seguinte:
ssh [email protected]
Depois de conectado, ele inicia uma sessão de tela chamada “ssh-geek” usando a opção -S (nome da sessão). Ele também usa o -d
(separar) e-m
(criação forçada) opções para criar um novo tela
sessão que já está desconectada.
Ele digita o seguinte:
screen -d -m -S ssh-geek
Ele digita o seguinte, usando o -X
(modo multiscreen) opção para anexar a sessão:
tela -X ssh-geek
Em um computador Manjaro, outra pessoa se conecta ao computador Ubuntu com as mesmas credenciais de conta, conforme mostrado abaixo:
ssh [email protected]
Uma vez que ela está conectada, ela digita otela
comando e usa a opção -X (modo multiscreen) para ingressar na mesma sessão de janela, assim:
tela -X ssh-geek
Agora, qualquer coisa que qualquer uma das pessoas digitar, a outra verá. Por exemplo, quando uma pessoa emite o comando de data, ambas vêem como foi digitado, bem como sua saída.
Ambas as pessoas agora estão compartilhando um tela
sessão que está sendo executada em um computador Ubuntu remoto.
Para um software que viu a luz do dia pela primeira vez em 1987, tela
ainda traz um bom golpe de produtividade. Familiarizar-se com ele será um tempo bem aproveitado!
RELACIONADO:37 Comandos importantes do Linux que você deve saber