Skip to content
Skip to content
Menu
Info Cafe
Info Cafe

Como usar o comando de ecrã do Linux

By admin on Fevereiro 23, 2021

  • Dave McKay

    @TheGurkha

  • 27 de Março de 2020, 8:00am EDT

Um terminal Linux num portátil com outras sessões terminais sobrepostas atrás dele.
fatmawati achmad zaenuri/

Com o comando Linux screen, pode empurrar as aplicações terminais em execução para o fundo e puxá-las para a frente quando as quiser ver. Suporta também ecrã dividido e funciona sobre ligações SSH, mesmo depois de desligar e voltar a ligar!

Qual é o comando do ecrã?

O comando screen é um multiplexador de terminal, e está absolutamente repleto de opções. Dizer que pode fazer muito é o avô dos understatatements. A página man corre para mais de 4.100 linhas.

Os seguintes são os casos mais comuns em que utilizaria o comando screen, e iremos abordar estes casos mais adiante neste artigo:

  • A operação padrão é criar uma nova janela com uma concha, executar um comando, e depois empurrar a janela para o fundo (chamado “detaching”). Quando quiser ver como está o seu processo, pode puxar novamente a janela para o primeiro plano (“reatar”) e utilizá-la novamente. Isto é óptimo para processos longos que não quer terminar acidentalmente fechando a janela do terminal.
  • li>Após ter uma screen sessão em execução, pode criar novas janelas e executar outros processos nelas. Pode facilmente saltar entre janelas para monitorizar o seu progresso. Pode também dividir a sua janela terminal em regiões verticais ou horizontais, e exibir as suas várias screen janelas numa janela.

  • Pode ligar-se a uma máquina remota, iniciar uma screen sessão, e iniciar um processo. Pode desligar da máquina remota, voltar a ligar, e o seu processo continuará a correr.
  • Pode partilhar uma sessão screen entre duas ligações SSH diferentes para que duas pessoas possam ver a mesma coisa, em tempo real.

Ecrã de instalação

Para instalar screen no ubuntu, use este comando:

sudo apt-get install screen

O comando "sudo apt-get install screen" numa janela de terminal."sudo apt-get install screen" command in a terminal window.

Para instalar screen no Manjaro, usar o seguinte comando:

sudo pacman -Sy screen

O comando "sudo pacman -Sy screen" numa janela de terminal."sudo pacman -Sy screen" command in a terminal window.

No Fedora, digite o seguinte:

sudo dnf install screen

O comando "sudo dnf install screen" numa janela de terminal."sudo dnf install screen" command in a terminal window.

Arrancar com ecrã

Para começar screen, basta digitar como se mostra abaixo e premir Enter:

screen

O comando "ecrã" numa janela de terminal."screen" command in a terminal window.

Publicidade

Verá uma página de informação de licença. Pode premir a barra de espaço para ler a segunda página ou Enter para voltar ao prompt de comando.

O comando "ecrã" informação da licença numa janela de terminal."screen" command license information in a terminal window.

É deixado no prompt de comando, e nada de mais parece ter acontecido. No entanto, está agora a correr uma shell dentro de um emulador de terminal multiplexado. Porque é que isto é uma coisa boa? Bem, vamos iniciar um processo que vai demorar muito tempo a concluir. Vamos descarregar o código fonte para o último kernel Linux e redireccioná-lo para um ficheiro chamado latest_kernel.zip.

Para o fazer, digitamos o seguinte:

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

O comando "curl latest_kernel.zip" numa janela de terminal."curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > latest_kernel.zip" command in a terminal window.

O nosso download começa, e a saída curl mostra-nos o progresso.

A saída do "curl latest_kernel.zip".comando "zip" numa janela terminal."curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > latest_kernel.zip" command in a terminal window.

Publicidade

Não podemos mostrar uma imagem do bit seguinte, porque é uma sequência de teclas. Digita-se Ctrl+A, solte essas teclas, e depois prima d para destacar o ecrã.

O processo de descarga ainda está a decorrer, mas a janela que mostra a descarga é removida. Volta à janela do terminal a partir da qual lançou a sessão screen. Uma mensagem diz-lhe que um screen janela rotulada 23167.pts-0.howtogeek foi destacado.

É necessário o número desde o início do nome da janela para o voltar a ligar. Se o esquecer, pode sempre usar a opção -ls (lista), como mostrado abaixo, para obter uma lista das janelas destacadas:

screen -ls

O comando "screen -ls" numa janela terminal."screen -ls" command in a terminal window.

Quando estiver pronto, pode usar a opção -r (reatar) e o número da sessão para a reatar, como assim:

screen -r 23167

O comando "ecrã -3 23167" numa janela de terminal."screen -3 23167" command in a terminal window.

Publicidade

A janela que tem estado a funcionar em segundo plano é agora trazida de volta à sua janela terminal como se nunca tivesse saído.

Uma sessão de ecrã reintegrada restaurada à janela terminal.

Se for um processo que vai até à sua conclusão, acabará por ser concluído. Se for um processo contínuo, acabará por querer terminá-lo. Seja como for, quando o processo terminar, poderá digitar exit para sair do screen. Em alternativa, pode pressionar Ctrl+A, e depois K para matar à força uma janela.

Digite o seguinte comando:

exit

The "exit" command in a terminal window.O comando “exit” numa janela terminal.

É devolvido à janela terminal anterior, que ainda mostrará o comando que usou para voltar a ligar a janela. Porque fechámos a nossa única janela, e só a destacamos, recebemos uma mensagem que screen está a terminar.

O comando "ecrã" mensagem de terminação numa janela terminal."screen" command terminating message in a terminal window.

RELATADO: Como usar o “curl” para descarregar ficheiros da linha de comando do Linux

Usando sessões de ecrã nomeadas

P>Pode usar a opção -S (nome da sessão) para nomear a sua screen sessão. Se utilizar um nome memorável em vez da identidade numérica da sessão, é mais conveniente reconectar-se a uma sessão. Escrevemos o seguinte para nomear a nossa sessão “bigfile”:

screen -S bigfile

O comando "screen -S bigfile" numa janela terminal."screen -S bigfile" command in a terminal window.

Anúncio

Quando screen lança a nossa sessão, vemos uma janela em branco com um prompt de comando. Vamos descarregar um ficheiro grande, para podermos usar um processo de longa duração como exemplo.

Escrevemos o seguinte:

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

O "ficheiro grande de ondulação".comando "zip" numa janela terminal."curl http://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip" command in a terminal window.

Quando o download começa, premimos Ctrl+A, e depois premimos D para destacar a sessão. Digitamos o seguinte para utilizar a opção -ls (lista) com screen para ver os detalhes da nossa sessão destacada:

screen -ls

O comando "screen -ls" numa janela de terminal."screen -ls" command in a terminal window.

Atrás do identificador numérico (23266), vemos o nome da nossa sessão (bigfile). Escrevemos o seguinte, incluindo o nome da sessão, para a recolocar:

screen -r bigfile

O comando "screen -r bigfile" numa janela de terminal."screen -r bigfile" command in a terminal window.

Estamos novamente ligados à nossa janela de descarga e vemos que a descarga longa ainda está em curso.

Descarregar a saída numa sessão de ecrã reatrelado numa janela terminal.

Publicidade

Quando a descarga está completa, escrevemos exit para fechar a janela da sessão.

Tela de utilização com múltiplas janelas

Até agora, utilizámos screen para colocar um único processo em segundo plano numa janela separada. Contudo, screen é capaz de fazer muito mais do que isso. A seguir, vamos executar alguns processos que nos permitem monitorizar alguns aspectos do nosso computador.

Digitamos o seguinte para iniciar uma sessão de ecrã chamada “monitor”:

screen -S monitor

O comando "screen -S monitor" numa janela terminal."screen -S monitor" command in a terminal window.

No prompt de comando na nossa nova sessão de janela, vamos lançar dmesg e usar as opções -H (human-readable) e -w (wait for new messages). Isto irá exibir as mensagens de buffer do kernel; novas mensagens aparecerão à medida que ocorrem.

Escrevemos o seguinte:

dmesg -H -w

O comando "dmesg -H -w" numa janela terminal."dmesg -H -w" command in a terminal window.

Publicidade

As mensagens existentes aparecem. Não voltamos ao prompt de comando porque dmseg está à espera de novas mensagens, e irá exibi-las à medida que chegam.

The "dmsesg" output in a terminal window.A saída “dmsesg” numa janela terminal.

RELATADO: Como utilizar o comando dmesg no Linux

Queremos executar outra aplicação, por isso precisamos de uma nova janela screen. Pressionamos Ctrl+A, e depois C para criar uma nova janela. Vamos utilizar watch para executar repetidamente vmstat, de modo a obter uma exibição frequentemente actualizada da utilização da memória virtual no nosso computador.

No novo prompt de comando, digitamos o seguinte:

watch vmstat

O comando "watch vmstat" numa janela terminal."watch vmstat" command in a terminal window.

O comando vmstat aparece e actualiza cada dois segundos.

O comando "vmstat" numa janela de terminal."vmstat" output in a terminal window.

Os nossos dois processos estão agora em execução. Para saltar entre as janelas screen, prima Ctrl+A, e o número da janela. A primeira que criámos é a janela zero (0), a seguinte é a janela 1, e assim por diante. Para saltar para a primeira janela (o dmesg one), premimos Ctrl+A e 0.

Retornando ao ecrã "dmesg" numa janela terminal."dmesg" screen in a terminal window.

Se premirmos Ctrl+A e 1, voltamos ao vmstat janela.

Retornando ao ecrã "vmstat" numa janela terminal."vmstat" screen in a terminal window.

Publicidade

Isso é muito elegante! Podemos premir Ctrl+A, e depois D para nos separarmos desta sessão; podemos voltar a colocar mais tarde. Ambas as sessões ainda estarão a decorrer. Mais uma vez, para alternar entre as janelas, premimos Ctrl+A e o número (0 ou 1) da janela que queremos alternar para.

Vamos para o próximo passo e vemos ambos os ecrãs numa só janela. Quando o fizer, esticará a sua janela terminal para um tamanho que torne este passo útil. Os nossos exemplos estão limitados ao tamanho das nossas capturas de ecrã, pelo que as nossas janelas ficarão um pouco apertadas.

Para fazer isto, premimos Ctrl+A, e depois Shift+S (é necessário um “S” maiúsculo).

A janela divide-se em duas “regiões”.”

Uma sessão da janela "ecrã" dividida em duas regiões horizontais numa janela terminal."screen" window session split into two horizontal regions in a terminal window.

A região superior ainda exibe vmstat, e a região inferior está em branco. O cursor é realçado na imagem de ecrã abaixo. Para o mover para a região inferior, premimos Ctrl+A, e depois Tab.

Uma sessão da janela "ecrã" dividida em duas regiões horizontais com o cursor na região inferior numa janela terminal."screen" window session split into two horizontal regions with cursor in the bottom region in a terminal window.

Publicidade

O cursor move-se para a região inferior, que na realidade é apenas um espaço vazio. Não é uma concha, pelo que não podemos escrever nada nela. Para obter uma exibição útil, premimos Ctrl+A, e depois premimos “0” para exibir a janela dmesg nesta região.

A sessão "ecrã" com uma janela dividida horizontal mostrando um processo diferente em cada região numa janela terminal."screen" session with a horizontal split pane showing a different process in each region in a terminal window.

Isto dá-nos ambas as saídas em directo numa janela dividida. Se pressionarmos Ctrl+A e D para destacar a janela, e depois voltarmos a colocá-la, perderemos a vista do painel dividido. No entanto, podemos restaurá-la com os seguintes atalhos de teclado:

  • Ctrl+A, S: Dividir a janela horizontalmente.
  • Ctrl+A, Tab: Ir para a região inferior.
  • Ctrl+A, 0: Mostrar a janela zero na região inferior.

Podemos levar as coisas ainda um passo mais longe. Vamos agora dividir o painel inferior verticalmente, e adicionar um terceiro processo à visualização. Com o cursor na região inferior, pressionamos Ctrl+A e C para criar uma nova janela com uma concha dentro. A região inferior mostra a nova janela e dá-nos um comando prompt.

Uma sessão de "ecrã" com um painel horizontal dividido mostrando uma nova janela na região inferior, numa janela terminal."screen" session with a horizontal split pane showing a new window in the lower region in a terminal window.

P>Próximo, executamos o comando df para verificar a utilização do sistema de ficheiros:

df

Uma sessão de "ecrã" com um painel horizontal dividido, e "df" digitado na região inferior numa janela de terminal."screen" session with a horizontal split pane, and "df" typed in the lower region in a terminal window.

Publicidade

Quando vemos df a correr, batemos em Ctrl+A e o caracter de canalização (|). Isto divide a região inferior verticalmente. Pressionamos Ctrl+A e Tab para nos deslocarmos para a nova região. A seguir, premimos Ctrl+A e 0 para exibir o dmesg window.

Uma sessão "ecrã" mostrando três painéis numa janela terminal."screen" session showing three panes in a terminal window.

Também se pode mover de região para região, e adicionar mais divisões verticais ou horizontais. Aqui estão algumas combinações chave mais úteis:

  • Ctrl+A: Saltar para trás e para a frente entre a região actual e a anterior.
  • Ctrl+A, Q: Fechar todas as regiões excepto a actual.
  • Ctrl+A, X: Fechar a região actual.

Utilizar ecrã Sobre SSH

Com screen, pode iniciar uma sessão em janela, desligá-la para que ainda esteja a correr em segundo plano, sair ou voltar a entrar, e voltar a colocar a sessão.

Vamos fazer uma ligação SSH ao nosso computador a partir de uma ligação diferente com o comando ssh. Temos de fornecer o nome da conta com a qual nos vamos ligar e o endereço do computador remoto.

Para o nosso exemplo, escrevemos o seguinte:

ssh [email protected]

O comando "ssh dave@192.168.4.30" numa janela de terminal."ssh dave@192.168.4.30" command in a terminal window.

Anúncio

Após autenticarmos no computador remoto e iniciarmos sessão, digitamos o seguinte para iniciar uma sessão chamada “ssh-geek”:

screen -S ssh-geek

O comando "screen -S ssh-geek" numa janela terminal."screen -S ssh-geek" command in a terminal window.

Para fins de demonstração, executaremos top na janela screen, mas poderá iniciar qualquer processo de longa duração ou interminável.

Digitamos o seguinte:

top

O comando "top" numa janela terminal."top" command in a terminal window.

Once top está a correr na janela, clicamos em Ctrl+A, e depois D para destacar a janela.

O processo "top" a correr numa janela "screen" numa janela de terminal."top" process running in a "screen" window in a terminal window.

Voltamos à janela do terminal remoto original.

O utilizador regressou à sua janela de terminal original

Se digitarmos exit, como se mostra abaixo, desliga a sessão SSH e estamos de volta ao nosso computador local:

exit

O comando "exit" numa janela de terminal."exit" command in a terminal window.

Digitamos o seguinte para reconectar:

ssh [email protected]

O comando "ssh dave@192.168.4.30" numa janela de terminal."ssh dave@192.168.4.30" command in a terminal window.

Anúncio

Após estarmos reconectados e logados, podemos digitar o seguinte para reatar a sessão screen:

screen -r ssh-geek

O comando "screen -r ssh-geek" numa janela terminal."screen -r ssh-geek" command in a terminal window.

Estamos agora reconectados à nossa instância ainda em curso de top.

The "top" process running in a terminal window.O processo “top” a correr numa janela de terminal.

Isto é óptimo se quiser iniciar um processo numa máquina, e depois retomar onde parou noutra.

RELACIONADO: Como criar e instalar chaves SSH a partir da shell Linux

Partilhar uma sessão de ecrã

P>Pode também usar uma sessão screen para permitir que duas pessoas vejam e interajam com a mesma janela. Digamos que alguém a correr o Fedora no seu computador quer ligar-se ao nosso servidor Ubuntu.

Ele escreveria o seguinte:

ssh [email protected]

O comando "ssh dave@192.168.4.30" numa janela de terminal."ssh dave@192.168.4.30" command in a terminal window.

Depois de ligado, inicia uma sessão de ecrã chamada “ssh-geek” usando a opção -S (nome da sessão). Ele também usa as opções -d (detach) e -m (criação forçada) para criar uma nova screen sessão que já está destacada.

Ele digita o seguinte:

screen -d -m -S ssh-geek

O comando "screen -d -m -S ssh-geek" numa janela terminal."screen -d -m -S ssh-geek" command in a terminal window.

Anúncio

Ele digita o seguinte, usando a opção -X (modo multi-ecrãs) para anexar a sessão:

screen -X ssh-geek

O comando "screen -X ssh-geek" numa janela de terminal."screen -X ssh-geek" command in a terminal window.

Num computador Manjaro, outra pessoa liga-se ao computador Ubuntu com as mesmas credenciais de conta, como mostrado abaixo:

ssh [email protected]

O comando "ssh dave@192.168.4.1" numa janela de terminal."ssh dave@192.168.4.1" command in a terminal window.

Após ela estar ligada, ela digita o comando screen e usa a opção -X (modo multi-ecrãs) para entrar na mesma sessão da janela, assim:

screen -X ssh-geek

Agora, tudo o que uma pessoa digitar, a outra verá. Por exemplo, quando uma pessoa emite o comando “data” numa janela de terminal.

O comando "data" numa janela de terminal."date" command in a terminal window.

Esaída do comando "data" numa janela de terminal."date" command in a terminal window.

Anúncio

ambos estão agora a partilhar uma sessão screen que está a correr num computador Ubuntu remoto.

Para um software que viu a luz do dia pela primeira vez em 1987, screen ainda tem uma boa produtividade wallop. Familiarizar-se com ele será tempo bem passado!

RELATADO: 37 Comandos importantes do Linux que deve saber

Dave McKay
Dave McKay usou pela primeira vez computadores quando a fita de papel perfurado estava na moda, e tem vindo a programar desde então. Após mais de 30 anos na indústria das TI, é agora um jornalista de tecnologia a tempo inteiro. Durante a sua carreira, trabalhou como programador freelance, gestor de uma equipa internacional de desenvolvimento de software, gestor de projectos de serviços de TI e, mais recentemente, como responsável pela protecção de dados. Dave é um evangelista Linux e defensor do código aberto. Leia a biografia completa ”

Navegação de artigos

Porquê os meus suplementos estão a tornar-me náusea?
What is Altitude Sickness?

Deixe uma resposta Cancelar resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Artigos recentes

  • Firebush (Português)
  • Previsão da taxa de CD para 2021: As taxas manter-se-ão provavelmente baixas, mas poderão aumentar mais tarde no ano
  • Como estruturar a documentação do sistema de gestão da qualidade
  • Dor pélvica crónica e prostatite: sintomas, diagnóstico e tratamento
  • Mixed Berry Crisp (Português)
  • Wheat Ales (Americana)
  • Os benefícios da amamentação após um ano
  • É seguro despejar café moído na pia | Canalização atómica
  • Cool-Down After Your Workout
  • Our Work

Meta

  • Iniciar sessão
  • Feed de entradas
  • Feed de comentários
  • WordPress.org

Arquivo

  • Março 2021
  • Fevereiro 2021
  • Janeiro 2021
  • Dezembro 2020
  • DeutschDeutsch
  • NederlandsNederlands
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • PolskiPolski
  • 日本語日本語
©2021 Info Cafe | WordPress Theme by SuperbThemes.com