Usando a tela GNU com exemplos

Usando a tela GNU com exemplos

Você já esteve na situação em que estava executando uma cópia ou script de 3 horas em uma máquina remota, apenas para descobrir que ela quebrou a 2h 45min porque sua conexão de rede ou conexão SSH caiu momentaneamente? Nesse caso, você sabe o quão doloroso se sente bem -vindo à tela GNU, o utilitário que permite iniciar uma concha separada que não será interrompida se a conexão de rede quebrar. Continue lendo para descobrir como usá -lo e mais!

Neste tutorial, você aprenderá:

  • Como instalar e usar o utilitário de tela GNU
  • Como configurar o utilitário de tela GNU para funcionar melhor
  • Exemplos básicos de uso sobre como usar o utilitário de tela GNU na linha de comando Bash
Usando a tela GNU com exemplos

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Independente da distribuição Linux
Programas Linha de comando Bash, sistema baseado em Linux
Outro O utilitário de tela pode ser instalado usando Tela de instalação sudo apt-get (ou yum em vez de apt-get para sistemas baseados em redhat)
Convenções # - requer que o Linux -Commands seja executado com privilégios de raiz diretamente como usuário root ou por uso de sudo comando
$-exige que o Linux-Commands seja executado como um usuário não privilegiado regular

Exemplo 1: Iniciando uma sessão de tela

$ sudo sudo apt-get Screen $ tela 

Uma sessão de tela é iniciada e a entrada pode ser necessária para fechar a tela Splash. Em seguida, iniciamos um processo de sono dentro da sessão de tela:

$ Sleep 3600 

Agora você pode pressionar Ctrl+A+D (pressione Ctrl, imprensa a, liberar a, imprensa d, liberar d, liberar Ctrl). Você verá o seguinte, na sua sessão de shell original (com um número de identificação de processo diferente):

[Declarado de 1130130.PTS-10.abc] 

Agora que estamos desapegados da sessão de tela, vamos digitalizar sessões de tela ao vivo no sistema:

$ tela -ls Há uma tela em: 1130130.PTS-10.ABC (06/08/20 13:41:43) (destacado) 1 soquete in/run/screen/s-abc. $ tela -D -R 113 $ SLUGA 3600 # Nosso sono ainda está em execução 

Em seguida, você pode usar Ctrl+c Para encerrar o sono. Você pode então usar saída Para fechar nossa sessão de tela e o retorno é para a nossa sessão de shell anterior/original. Observe que você também poderia ter usado tela -d -r sem o 112, Como havia apenas uma tela em execução.

No exemplo dele, instalamos tela (pode ou não ser necessário, dependendo da sua distribuição Linux usada), abriu uma sessão de tela e começou a dormir com o tempo de sono. Posteriormente, desconectamos da sessão de tela (que você pode considerar como outro shell que continuará existindo mesmo que o usuário registre ou desconecte) e questionamos o sistema na execução da sessão de tela.

Então nos reconectamos usando o -d -r taquigrafia frequentemente usada. Isso taquigrafia basicamente significa desconectado qualquer conexão pré-existente da sessão que está sendo referida e me conecte a ela. É útil apenas aprender e sempre usar esta abreviação. O motivo é que, se você estiver conectado remotamente a um servidor, provavelmente terá várias sessões de shell abertas e já poderá ter conectado a um tela Sessão de outra sessão de shell.

Nosso tela -ls Sessão mostra que nosso atual tela sessão foi Destacado que agora deve fazer sentido; Não estamos conectados a/LIVE na sessão de tela.

Exemplo 2: Matar e limpar uma sessão de tela

Às vezes, especialmente quando você inicia trabalhos de alto perfil/intensivo, sua sessão de tela pode ter problemas e terminar - não por causa de um bug no tela utilidade - mas por causa do seu trabalho em execução, por exemplo, em problemas de OOM (fora da memória), etc. Nesse caso, você verá:

$ tela -ls Há uma tela em: 1130130.PTS-10.ABC (06/08/20 13:41:43) (morto???) 

Assim que uma sessão de tela é marcada como Morto??? há pouco que pode ser feito com isso. Uma maneira de limpar esta sessão de tela é matar a sessão e depois limpá -la:

$ kill -9 1130130 $ tela -wipe Há uma tela em: 1130130.PTS-10.ABC (06/08/20 13:41:43) (removido) 1 soquete eliminado. Nenhum soquetes encontrados em/run/screen/s-abc. 

Exemplo 3: Tela de ajuste para ser mais amigável

Um dos desafios de usar tela é isso - fora da caixa - não é muito amigável. Por exemplo, ele abre uma tela de respingo toda vez que você o inicia. Outros itens incluem às vezes as principais ligações de chave potencialmente frustrantes e um back de rolagem limitado.

A maioria deles pode ser resolvida criando um ~/.ScreenRC arquivo. Para fazer isso, use seu editor de texto favorito para criar um .ScreenRC Arquivo dentro do seu Homedir. Observe que o ponto principal torna o arquivo invisível e é significativo para que as coisas funcionem corretamente. Dentro do arquivo, você pode colar o seguinte:

DefScrollback 20000 startup_message Off Autodetach em Vbell em vbell_msg 'Bell!'TermCapinfo xterm* z0 = \ e [?3h: z1 = \ e [?3L: IS = \ e [r \ e [m \ e [2J \ e [h \ e [?7h \ e [?1; 4; 6L TermCapinfo xterm* ol = 2000 bind . ligação h liga ^h liga x bind ^x bind ^\ 

O DefScrollback 20000 define o rolagem para 20k linhas. Em seguida, desligamos a tela do Splash com startup_message desligado. Também ligamos automaticamente e criamos uma campainha virtual (que não gera som e usa saída visual) e definimos sua mensagem (para exibição na tela) como 'Bell!'.

Em seguida, definimos dois terminCapinfo's para xterm, onde o primeiro evita redimensionar a janela, e o segundo aumenta o buffer de saída para velocidade. Finalmente, removemos alguns atalhos de teclado pré-existentes (configurando-os em branco). Isso desativa o dumptermcap (vincular .), deficiente escrevendo uma cópia da tela para disco (h e Ctrl+H ^h), desligue o bloqueio da tela (x e Ctrl+X ^x) e finalmente matando toda a tela de janelas/saída (^\).

Dica final: se você deseja acessar a tela interna de rolagem, muitas vezes você pode não simplesmente 'rolar para cima'. Em vez disso, pressione Ctrl+A+ESC (imprensa Ctrl, imprensa a, liberar a, imprensa ESC, liberar ESC, liberar Ctrl), em seguida, use o cursor para cima Chave para rolar para cima até onde quiser (até as linhas de 20k em que você definiu ~/.ScreenRC). Imprensa ESC novamente para sair do modo de rolagem/cópia.

Conclusão

Neste tutorial, exploramos como instalar e usar o tela utilidade e como configurá -lo para que funcione melhor. Nós também parecíamos alguns básicos tela exemplos de uso na linha de comando Bash. tela pode ser uma ferramenta versátil no bolso de qualquer desenvolvedor ou usuário do Bash, e convidamos você a postar seu próprio tela exemplos de uso ou comentários abaixo!

Aproveitar!

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…
  • Coisas para instalar no Ubuntu 22.04
  • Ubuntu 20.04 Guia
  • Sistema Linux Hung? Como escapar para a linha de comando e…
  • Instale Arch Linux na estação de trabalho VMware
  • Como aproveitar ao máximo o OpenSsh
  • Como usar o ADB Android Debug Bridge para gerenciar seu Android…