Header Ads

Defina um excelente perfil de tela GNU usando .screenrc

Shutterstock / Andrey Suslov

screen, o utilitário do Linux que permite iniciar uma & # 8216; tela &’ dentro de um terminal, é por padrão um pouco subconfigurado. Aprenda a criar um ótimo perfil de tela, que é carregado automaticamente sempre que você usa a tela.

O que é tela?

O Screen é um utilitário GNU (GNU é uma grande coleção de software de código aberto, e o agrupamento do mesmo em um sistema operacional é comumente conhecido como Linux) que permite iniciar uma ou mais telas dentro do seu terminal.

Você pode perguntar por que eu iria querer iniciar uma tela dentro do meu terminal, e você pode definir a tela melhor / mais detalhadamente? Certo. Imagine que você está usando um servidor remoto SSH e de repente sua conexão de rede é interrompida, bem no meio da migração do banco de dados ou backup de produção, que estava sendo executado dentro da janela do seu terminal. Isso acontece regularmente, e o problema é que qualquer comando que estava sendo executado quando a conexão foi interrompida agora é encerrado, independentemente do estado em que estava.

Esta situação claramente irritante é aquela que você deseja evitar a todo custo. Isso pode não apenas deixar o sistema ou pacote de software em um estado indefinido, mas todo o seu trabalho feito até agora pode ser simplesmente perdido.

Bem-vindo à tela, o utilitário Linux que permite iniciar uma sessão de terminal virtual (uma & # 8216; tela & # 8216;) dentro de sua sessão de terminal, com o principal e grande benefício de que essa sessão de tela não será encerrada sempre que a conexão de rede for interrompida ou quando você fechar a sessão de terminal que iniciou a sessão de tela (o processo pai). Você pode simplesmente esperar até que sua conexão de rede seja restabelecida ou abrir outro terminal se você não estiver conectado via SSH e trabalhando apenas na máquina local, e simplesmente reconectar à sua sessão de tela.

Ótimo? Vamos instalar rapidamente a tela, se você ainda não:

Tela de instalação

Para instalar a tela em sua distribuição Linux baseada em Debian / Apt (como Ubuntu e Mint), execute o seguinte comando em seu terminal:

tela de instalação do sudo apt

Para instalar a tela em sua distribuição Linux baseada em RedHat / Yum (como RHEL, Centos e Fedora), execute o seguinte comando em seu terminal:

tela de instalação do sudo yum

Agora que a tela está instalada, você pode começar a usá-la imediatamente. Basta executar a tela na linha de comando e você estará pronto. Talvez seja necessário pressionar Enter ou espaço para passar pela tela inicial da tela.

Você verá um novo prompt de comando. Pressione a sequência de teclas CTRL + a > CTRL + d para retornar ao prompt de comando da sessão shell pai. Então, você pode executar screen -ls para ver uma lista de sessões de tela ativas. Digitando o comando (no shell pai você está agora se seguiu o texto de forma idêntica), screen -d -r o trará de volta à sessão de tela, desde que haja apenas uma sessão de tela ativa (você pode iniciar várias).

Se houver mais de uma sessão de tela em execução em seu sistema (e pertencente a você), você pode digitar screen -d -r NAME onde NAME é o nome de uma tela listada por screen -ls, por exemplo 367434. pts-1. roel1, embora apenas especificar qualquer parte antes ou depois do ponto (como 367 ou pts), que ainda identifica exclusivamente uma sessão de tela específica, também é suficiente.

Vamos ver como podemos agora definir um ótimo perfil de tela, com base em um trecho de setup_server. sh, localizado no repositório GitHub Percona-QA (licenciado GPLv2) , um script criado para configurar um servidor para teste de garantia de qualidade. Não recomendo que você execute este script porque ele está desatualizado, é usado apenas como referência e geralmente é executado manualmente, passo a passo. A única seção que usaremos é o código . screenrc, reproduzido abaixo.

Definição de uma ótima configuração . screenrc

O arquivo . screenrc é um arquivo de configuração oculto em seu diretório inicial. Para editá-lo (provavelmente ainda não existirá, especialmente se você acabou de instalar a tela, basta usar seu editor de texto favorito e abrir o arquivo ~ / . screenrc. Se você tiver experiência com o Vim, pode simplesmente digitar no prompt do terminal vi ~ / . screenrc. Se você quiser saber mais sobre o Vi / Vim, considere a leitura de nosso artigo Definir um ótimo perfil do Vim usando . vimrc.

Depois de abrir ~ / . screenrc, basta adicionar o seguinte bloco de texto:

 # Configurações gerais vbell on vbell_msg '! Bell!' autodetach on startup_message off defscrollback 10000 # Termcapinfo para xterm termcapinfo xterm * Z0 = \ E [? 3h: Z1 = \ E [? 3l: is = \ E [r \ E [m \ E [2J \ E [H \ E [ ? 7h \ E [? 1; 4; 6l # Não redimensionar a janela termcapinfo xterm * OL = 1000 # Aumentar o buffer de saída para a velocidade # Remover vários vínculos do teclado x # Não bloquear o vínculo da tela ^ x # Idem vincular h # Não grava a cópia da tela no bind de disco ^ h # Idem bind ^ \ # Não elimina todas as janelas / sai do bind de tela. # Desativar dumptermcap # Adicionar vinculação de teclado} vinculação de histórico k kill 

Se você não quiser usar um editor de texto, ou quiser de alguma forma fazer o script da instalação deste arquivo . screenrc em muitos sistemas, você pode usar o seguinte código, que irá – sempre que colado ou executado a partir de outro script, crie o arquivo ~ / . screenrc para o usuário que está executando o script. Vamos chamar nosso script de make_screenrc. sh ou similar.

 #! / bin / bash # Criar script de tela ~ / . screenrc touch ~ / . screenrc if [-z "$ (cat ~ / . screenrc | grep 'termcapinfo xterm')"]; então cat < < EOF > ~ / . screenrc # Configurações gerais vbell on vbell_msg '! Bell!' autodetach on startup_message off defscrollback 10000 # Termcapinfo para xterm termcapinfo xterm * Z0 = \ E [? 3h: Z1 = \ E [? 3l: is = \ E [r \ E [m \ E [2J \ E [H \ E [ ? 7h \ E [? 1; 4; 6l # Não redimensionar a janela termcapinfo xterm * OL = 1000 # Aumentar o buffer de saída para a velocidade # Remover vários vínculos do teclado x # Não bloquear o vínculo da tela ^ x # Idem vincular h # Não grava a cópia da tela no bind de disco ^ h # Idem bind ^ \ # Não elimina todas as janelas / sai do bind de tela. # Desativar dumptermcap # Adicionar bindings de teclado bind} history bind k kill EOF fi 

O script pré-define uma série de configurações, e a maioria das aqui são bastante autoexplicativas. Por exemplo, startup_message off simplesmente desativa a tela inicial que vimos anteriormente. defscrollback 10000 define nossa rolagem para trás para 10.000 linhas (você pode acessar o modo de rolagem / edição pressionando a sequência de teclas CTRL + a > CTRL + ESC e você pode sair desse modo pressionando ESC uma ou duas vezes).

Também ligamos uma campainha virtual (já que não podemos ouvir o alto-falante de um servidor remoto bipando) usando o vbell on e vbell_msg '! Bell!' comandos que definem a mensagem da campainha virtual como '! Bell!'. No entanto, descobri que o sino virtual geralmente não funciona.

A seguir, definimos alguns códigos termcapinfo específicos para ampliar o buffer de saída e ajustar o redimensionamento da janela. Também removemos várias combinações de teclas potencialmente irritantes e adicionamos algumas configurações de teclado úteis.

Tudo o que precisamos fazer para ativar essa nova configuração . screenrc é abrir uma nova sessão de tela. Agora vamos nos beneficiar das configurações recém-definidas.

Concluindo

Definir um ótimo arquivo . screenrc padrão ajuda quando você usa muito a tela. Desligar a tela inicial, aumentar o scrollback e melhorar o buffer de saída para velocidade são apenas algumas das coisas que fizemos em nosso modelo . screenrc. Divirta-se usando a tela e o modelo . screenrc!

Nenhum comentário