Defina um grande perfil de tela GNU usando .screenrc

Conteúdo

tela, o utilitário Linux que permite que você inicie uma 'tela’ dentro de um terminal, é por padrão um pouco mal configurado. Aprenda a criar um ótimo perfil de tela que carrega automaticamente toda vez que você usa a tela.

O que é tela?

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

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

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

bem-vindo a screen, o utilitário Linux que permite iniciar uma sessão de terminal virtual (uma ‘tela‘) dentro de sua sessão de terminal, com a principal e grande vantagem de que a referida sessão de tela não será encerrada toda vez que a conexão de rede for interrompida, ou quando você fecha a sessão de terminal que iniciou o screen sessão (o procedimento pai). Você pode apenas esperar até que sua conexão de rede volte, ou abra outro terminal se você não estiver conectado via SSH e trabalhando apenas na máquina local, e apenas reconectar à sua sessão de tela.

Excelente? Vamos instalar rapidamente tela então, se você ainda não fez:

Instalando tela

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

sudo apt install screen

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

sudo yum install screen

Agora que a tela está instalada, você pode começar a usar imediatamente. Apenas corra screen na linha de comando e você já está dentro. Você pode precisar pressionar Enter ou espaço para percorrer o screen Tela de boas vindas.

Tela de boas-vindas do Linux GNU

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 principal. Então, pode executar screen -ls para ver uma lista de sessões de tela ativas. Escreva o comando (no shell principal você está agora se você seguiu o texto de forma idêntica), screen -d -r vai te trazer de volta para screen sessão, contanto que haja apenas uma sessão de tela ativa (pode começar muitos).

Se houver mais de uma sessão de tela em execução no seu sistema (e é propriedade dele), Você pode digitar screen -d -r NAME Onde NAME é o nome de uma tela de acordo com a lista screen -ls, como um exemplo 367434.pts-1.roel1, mesmo se você só especificar qualquer parte antes ou depois do ponto (O que 367 o pts), que ainda identifica uma sessão de tela específica, também é suficiente.

Vamos ver como podemos definir um ótimo perfil de tela, baseado em um trecho de setup_server.sh, localizado no repositório GitHub Percona-QA (GPLv2 licenciado), um script criado para configurar um servidor para teste de controle de qualidade. Eu não recomendo que você execute este script, uma vez que está desatualizado, é usado apenas para referência e, em geral, executar manualmente passo a passo. A única seção que usaremos é a .screenrc código, reproduzido abaixo.

Definindo uma grande configuração .screenrc

a .screenrc O arquivo é um arquivo de configuração escondido em seu diretório pessoal. Para editá-lo (provavelmente ainda não existe, especialmente se você acabou de instalar screen, apenas use seu editor de texto favorito e abra o arquivo ~/.screenrc. Se você tem experiência com o Vim, você pode simplesmente digitar no prompt do seu terminal vi ~/.screenrc. Para mais informações sobre o Vi / Vim, considere a leitura de nossa postagem Estabelecendo um ótimo perfil do Vim usando .vimrc.

Depois de abrir ~/.screenrc, apenas adicione o seguinte bloco de texto:

# Configuración general vbell en vbell_msg '! Bell!'  autodetach en startup_message off defscrollback 10000 # Termcapinfo para xterm termcapinfo xterm * Z0 =  E[?3h:Z1=E[?3eu:is=E[rE[mE[2JE[HE[?7hE[?1;4;6eu   # Do not resize window
termcapinfo xterm* OL=1000                                                    # Increase output buffer for speed

# Remove various keyboard bindings
bind x    # Do not lock screen
bind ^x   # Idem
bind h    # Do not write out copy of screen to disk
bind ^h   # Idem
bind ^   # Do not kill all windows/exit screen
bind .    # Disable dumptermcap

# Add keyboard bindings
bind } history
bind k kill

Our .screenrc template

If you do not want to use a text editor, or want to somehow script the installation of this .screenrc file into many systems, you could use the following code instead, which will – whenever pasted, or executed from another script, create the file ~/.screenrc for the user who is executing the script. Let’s call our script make_screenrc.sh or similar.

#!/bin / bash
# Create screen script ~/.screenrc
touch ~/.screenrc
if [ -Com "$(cat ~/.screenrc|grep 'termcapinfo xterm')" ];  después cat << EOF> ~ / .screenrc # Configuración general vbell on vbell_msg '! Bell!'  autodetach on startup_message off defscrollback 10000 # Termcapinfo para xterm termcapinfo xterm * Z0 =  E[? 3h: Z1 = E[? 3eu: é = E[r E[mim[2J E[ELE[ ? 7ele[? 1; 4; 6eu # Não redimensione a janela do termcapinfo xterm * OL = 1000 # Aumente o buffer de saída para velocidade # Remover vários links de teclado vincular x # Não bloqueie o link da tela ^ x # Idem enlazar h # Não escreva uma cópia da tela no link do disco ^ h # Idem enlazar ^  # Não mate todas as janelas / sair da conexão da tela.  # Limite de termo de despejo de Deshabilitar # Adicionar links de ligação de teclado} história vincular k matar EOF fi

O script pré-define uma série de configurações, e a maioria dos mostrados aqui são autoexplicativos. Como um exemplo, startup_message off apenas desligue a tela inicial que vimos antes. defscrollback 10000 define nossa rolagem para trás para 10000 linhas (pode entrar no modo de rolagem / edição pressionando a sequência de teclas CTRL+a > CTRL+ESC e você pode, portanto, sair pressionando ESC uma ou duas vezes).

Também ativamos um sino virtual (uma vez que não podemos ouvir o bipe do alto-falante de um servidor remoto) usando o vbell on e vbell_msg '!Bell!' comandos que configuram a mensagem da campainha virtual em '!Bell!'. Apesar disto, Eu descobri que o capô virtual muitas vezes não funciona.

A seguir, nós estabelecemos alguns termcapinfo códigos para expandir o buffer de saída e ajustar o tamanho da janela. Além disso, removemos vários atalhos de teclado potencialmente irritantes e adicionamos algumas configurações de teclado úteis.

Tudo o que faremos para ativar este novo .screenrc configuração é abrir um novo screen sessão. Agora vamos nos beneficiar da nova configuração estabelecida.

Final

Definindo uma grande falha .screenrc o arquivo ajuda quando você usa screen Muito de. Desligue a tela inicial, aumentar a rolagem para trás e melhorar o buffer de saída para velocidade são apenas algumas das coisas que fizemos em nosso .screenrc modelo. Divirta-se usando a tela e o modelo .screenrc!!

Assine a nossa newsletter

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