Como usar o comando de tela do Linux

Conteúdo

Um terminal Linux em um laptop com outras sessões de terminal sobrepostas atrás.

Com Linux screen comando, você pode colocar aplicativos de terminal em execução em segundo plano e movê-los para frente quando quiser vê-los. Também é compatível com telas divididas e funciona por meio de conexões SSH, mesmo depois de desconectar e reconectar.

RELACIONADO: 10 comandos básicos do Linux para iniciantes

Qual é o comando da tela?

a screen o comando é um multiplexador de terminale está absolutamente repleto de alternativas. Dizer que você pode fazer muito é o avô dos eufemismos. A página de manual estende-se a mais de 4.100 linhas.

A seguir estão os casos mais comuns em que você usaria o screen comando, e vamos cobri-los mais neste post:

  • A operação padrão é criar uma nova janela com um shell nela, execute um comando e empurre a janela para o fundo (chamado “separar”). Quando você quiser ver como seu procedimento está funcionando, pode puxar a janela para o primeiro plano novamente (“reconectar”) e usar de novo. Isso é ideal para processos longos que você não deseja encerrar acidentalmente ao fechar a janela do terminal.
  • Depois de ter um screen sessão de corrida, pode criar novas janelas e executar outros processos nelas. Você pode facilmente pular entre as janelas para monitorar seu progresso. Além disso, você pode dividir sua janela de terminal em regiões verticais ou horizontais e exibir seus vários screen janelas em uma janela.
  • Pode se conectar a uma máquina remota, começar um screen sessão e lançar um procedimento. Pode se desconectar do host remoto, reconecte e seu procedimento continuará a ser executado.
  • Você pode compartilhar um screen sessão entre duas conexões SSH diferentes para que duas pessoas possam ver a mesma coisa, em tempo real.

Instalação de tela

Instalar screen en grátis, use este comando:

sudo apt-get install tela

Instalar screen em Manjaro, use o seguinte comando:

sudo pacman -Sy screen

No Fedora, escreva o seguinte:

tela de instalação do sudo dnf

Introdução à tela

Para iniciar screen, apenas digite como mostrado abaixo e pressione Enter:

tela

Você verá uma página com 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.

Permanece no prompt de comando e não parece que muita coisa aconteceu. Apesar disto, você agora está executando um shell dentro de um emulador de terminal multiplexado. Por que isso é uma coisa boa? Nós vamos, vamos iniciar um procedimento que levará muito tempo 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 faze-lo, nós escrevemos o seguinte:

https curl://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > latest_kernel.zip

Nosso download começa e o curl A saída nos mostra o progresso.

Não podemos mostrar uma imagem da próxima parte, porque é uma sequência chave. Escribe Ctrl + UMA, solte essas teclas e pressione d para destacar a tela.

O procedimento 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 screen sessão. Uma mensagem diz que um screen janela rotulada 23167.pts-0.systempeaker separou.

Você precisa do número do início do nome da janela para reanexá-la. Se você esquecer, você sempre pode usar o -ls (pronto) opção, como é mostrado a seguir, para obter uma lista das janelas separadas:

tela -ls

Quando estiver pronto, você pode usar o -r (reconectar) e o número da sessão para reconectar, Então:

tela -r 23167

A janela que estava rodando em segundo plano agora retorna para a janela do seu terminal como se nunca tivesse saído.

Uma sessão de tela reingressada restaurada para a janela do terminal.

Se for um procedimento que será executado até sua conclusão, eventualmente será completado. Se for um procedimento contínuo, eventualmente vai querer terminar. De qualquer maneira, quando o procedimento terminar, Você pode digitar exit para sair do screen. alternativamente, você pode pressionar Ctrl + A e depois K para matar à força uma janela.

Digite o seguinte comando:

saída

Você retornará à janela anterior do terminal, que ainda exibirá o comando que você usou para reanexar a janela. Porque fechamos nossa única janela separada, recebemos uma mensagem que screen está terminando.

RELACIONADO: Como usar o curl para baixar arquivos da linha de comando do Linux

Usando sessões de tela nomeadas

Você pode usar o -S (nome da sessão) opção de nomear o seu screen 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 escrevemos o seguinte para nomear nossa sessão “bigfile”:

tela -S bigfile

Quando screen comece nossa sessão, vemos uma janela em branco com um prompt de comando. Vamos baixar um arquivo grande, então podemos usar um procedimento de longo prazo como exemplo.

Nós escrevemos o seguinte:

curl http://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip

Quando o download começa, nós pressionamos Ctrl + UMA, e então pressione D para desconectar a sessão. Escrevemos o seguinte para usar o -ls (pronto) opção com screen para ver os detalhes de nossa sessão separada:

tela -ls

Atrás do identificador numérico (23266), nós vemos o nome da nossa sessão (bigfile). Nós escrevemos o seguinte, incluindo o nome da sessão, para reconectar:

screen -r bigfile

Nós nos reconectamos à nossa janela de download e vemos que o longo download ainda está em andamento.

Quando o download for concluído, nós escrevemos exit para fechar a janela da sessão.

Usando a exibição de várias janelas

Até agora, Nós usamos screen colocar um único procedimento em segundo plano em uma janela separada. Apesar disto, screen é capaz de fazer muito mais do que isso. A seguir, vamos executar alguns processos que nos permitirão monitorar alguns aspectos do nosso computador.

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 -w (espere por novas mensagens) opções. Isso vai mostrar mensagens de buffer do kernel; novas mensagens aparecerão à medida que ocorrerem.

Nós escrevemos o seguinte:

dmesg -H -w

As mensagens existentes aparecem. 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 screen janela. Pressionamos Ctrl + UMA, e depois C para criar uma nova janela. Vamos usar watch para correr repetidamente vmstat, então recebemos uma atualização frequente ver o uso de memória virtual no nosso computador.

No novo prompt de comando, nós escrevemos o seguinte:

assistir vmstat

a vmstat A saída aparece e é atualizada a cada dois segundos.

Nossos dois processos estão agora em execução. Para pular entre o screen janelas, presiona Ctrl + UMA, e o número da janela. O primeiro que criamos é a janela zero (0), próximo é a janela 1, e assim por diante. Para pular para a primeira janela (a dmesg 1), nós pressionamos Ctrl + Para e 0.

Se pressionarmos Ctrl + Para e 1, nos leva de volta para vmstat janela.

Isso é muito bacana!! Podemos pressionar Ctrl + UMA, e depois D para se desconectar desta sessão; podemos voltar mais tarde. Ambas as sessões continuarão a funcionar. Novamente, para alternar entre as janelas, nós pressionamos Ctrl + A e o numero (0 o 1) da janela para a qual queremos mudar.

Vamos para a próxima etapa e ver as duas telas em uma janela. Quando eu faço isso, irá aumentar a janela do seu terminal para um tamanho que torne este passo útil. Nossos exemplos são limitados ao tamanho de nossas capturas de tela, então nossas janelas parecerão um pouco estreitas.

Para fazer isso, nós pressionamos Ctrl + UMA, e depois Shift + S (um "S" maiúsculo é necessário).

A janela é dividida em duas “regiões”.

A região superior ainda está mostrando vmstate a região inferior está em branco. O cursor é destacado na próxima imagem. Para movê-lo para a região inferior, nós pressionamos Ctrl + UMA, e mais tarde Tab.

O cursor move-se para a região inferior, que é realmente apenas um espaço vazio. Não é uma concha, então não podemos escrever nada nele. Para obter uma tela útil, nós pressionamos Ctrl + UMA, e, em seguida, pressionar “0” para mostrar o dmesg janela nesta região.

Isso nos dá as duas saídas ao vivo em uma janela dividida. Se pressionarmos Ctrl + A e D para separar a janela, e depois nós colocamos de volta juntos, vamos perder a visão do painel dividido. Apesar disto, podemos restaurá-lo com os seguintes atalhos de teclado:

  • Ctrl + UMA, S: Divida a janela horizontalmente.
  • Ctrl + UMA, Aba: Mova para a região inferior.
  • Ctrl + UMA, 0: Janela de exibição zero na região inferior.

Podemos levar as coisas um passo adiante. Agora vamos dividir o painel inferior verticalmente e adicionar um terceiro procedimento à tela. Com o cursor na região inferior, nós pressionamos Ctrl + A e C para criar uma nova janela com um shell nela. A região inferior mostra a nova janela e nos dá um prompt de comando.

A seguir, nós executamos o df comando para verificar o uso do sistema de arquivos:

df

Quando virmos df com pressa, nós pressionamos Ctrl + A e barra vertical (|). Isso divide a região inferior verticalmente. Pressionamos Ctrl + A e Tab para mover para a nova região. A seguir, nós pressionamos Ctrl + Para e 0 para mostrar o dmesg janela.

Você também pode mover de uma região para outra e adicionar mais divisões verticais ou horizontais. Aqui estão alguns atalhos mais úteis:

  • Ctrl + UMA: Salta para a frente e para trás entre a região atual e a anterior.
  • Ctrl + UMA, Q: Fechar todas as regiões exceto a atual.
  • Ctrl + UMA, X: Fechar a região atual.

Usando a tela por SSH

Com screen, pode iniciar uma sessão de janela, desconecte-o para mantê-lo funcionando em segundo plano, saia ou faça login novamente e reconecte a sessão.

Vamos fazer um SSH conexão ao nosso computador de um diferente com ele ssh comando. Temos que fornecer o nome da conta com a qual vamos nos conectar e o endereço do computador remoto.

Para nosso exemplo, nós escrevemos o seguinte:

ssh [email protected]

Depois de autenticar no computador remoto e fazer login, escrevemos o seguinte para começar um screen sessão chamada “ssh-geek”:

tela -S ssh-geek

Para fins de demonstração, vamos executar top no screen janela, mas você pode iniciar qualquer procedimento longo ou interminável.

Nós escrevemos o seguinte:

principal

Uma vez top está correndo na janela, nós pressionamos Ctrl + UMA, e então D para separar a janela.

Voltamos à janela do terminal remoto original.

O usuário retornou à janela original do terminal

Se escrevermos exit, como é mostrado a seguir, desconecte a sessão SSH e voltamos ao nosso computador local:

saída

Escrevemos o seguinte para reconectar:

ssh [email protected]

Depois de reconectar e fazer login, podemos escrever o seguinte para reconectar o screen sessão:

screen -r ssh-geek

Agora estamos reconectados à nossa instância ainda em execução de top.

Isso é ótimo se você deseja iniciar um procedimento em uma máquina e continuar de onde parou em outra..

RELACIONADO: Como criar e instalar chaves SSH a partir do Linux Shell

Compartilhe uma sessão de tela

Você também pode usar um screen 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.

Eu escreveria o seguinte:

ssh [email protected]

Depois de conectar, inicia uma sessão de tela chamada “ssh-geek” usando a opção -S (nome da sessão). Ele também usa o -d (decolar) e -m (criação forçada) opções para criar um novo screen sessão que já está separada.

Escreva o seguinte:

screen -d -m -S ssh-geek

Escreva o seguinte, usando o -x (maneira multipantalla) anexar a sessão:

screen -x ssh-geek

Em um computador Manjaro, outra pessoa se conecta ao computador Ubuntu com as mesmas credenciais de conta, como é mostrado a seguir:

ssh [email protected]

Assim que estiver conectado, escreva o screen comando e use a opção -X (maneira multipantalla) para entrar na mesma sessão de janela, Então:

tela -X ssh-geek

Agora, qualquer coisa que uma pessoa escreve, o outro vai ver. Como um exemplo, quando uma pessoa emite o comando de data, ambos veem como está escrito, bem como sua partida.

Ambas as pessoas agora compartilham um screen sessão rodando em um computador Ubuntu remoto.


Para um software que viu a luz pela primeira vez em 1987, screen ainda tem um bom acerto de produtividade. Conhecê-lo será um tempo bem aproveitado!!

RELACIONADO: 37 Comandos importantes do Linux que você deve conhecer

Assine a nossa newsletter

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