Maneira rápida de acessar telas no Linux (comando shell screen)

1

Usar o comando screen no Linux é uma maneira eficaz de ter várias "janelas" para trabalhar. Uma tela pode ser o bash shell, outra linha de comando mysql aberta em um banco de dados e outra sessão vim para editar arquivos de código-fonte .

No Windows, pode-se usar alt-tab para mudar rapidamente o foco para outra janela. No Linux eu posso ter que:

  1. Digite Ctrl-a + "d" (para desanexar a tela atual)
  2. Digite "screen -ls" para ver pid's para telas ativas (supondo que não me lembro do pid da outra tela)
  3. Digite "tela -r [pid]" (para retomar a tela selecionada)

Agora, o uso normal da linha de comando pode ser rápido depois que os comandos e atalhos apropriados forem adquiridos. No entanto, a mudança entre as telas não parece elegante e rápida, em comparação com apenas pressionar Alt-tab no Windows. Na verdade, parece extenso, desajeitado e tedioso ter que digitar comandos e pid.

(O ponto 3 acima pode ser melhorado digitando "scr" + Ctrl-r para voltar ao histórico de comandos, supondo que eu tenha acessado a outra tela antes, mas ainda não é realmente elegante)

Então, eu me pergunto se há uma maneira de mudar rapidamente entre as telas com um único ou poucos toques de tecla - de preferência um que não precisa ser configurado novamente toda vez que se inicia uma nova sessão de terminal contra o servidor.

Atualização: Como o Sr. Lister ressalta, o aplicativo terminal nos desktops Linux (e até mesmo no Windows) oferece uma opção para abrir vários consoles e alternar entre eles com atalhos, por exemplo. Ctrl + PgUp / Dn no Ubuntu. No entanto, neste caso, estou usando o terminal bash básico em um servidor sem cabeçalho na nuvem, portanto a solução aceita é perfeita no sentido de que a funcionalidade descrita reside no bash no próprio servidor e não depende da abertura de conexões adicionais para o servidor.

    
por Orion 03.07.2016 / 11:47

1 resposta

2

Por que executar instâncias de tela separadas? O que eu acho que você quer fazer pode ser feito muito mais eficientemente (tanto qua recursos e com menos digitação da seguinte forma:)

  1. Inicie apenas uma instância da tela.
  2. Controle - A C

Agora você tem um programa de tela com dois shells ativos.

Você pode alternar entre janelas com o número Controle - A .
Você pode ver quais janelas são executadas com Controle A "
Você pode atribuir um nome à janela ativa atual com Controle - A A

Se você tem algumas telas que você usa consistentemente, você pode comprar isso em um .screenrc. Exemplo de um arquivo que inicia 4 shells ao mesmo tempo e atribui nomes fáceis de lembrar:

$ cat ~/.screenrc
vbell off
startup_message off
screen -t ele        0
screen -t OS         1
screen -t A2         2
screen -t Universes  3

E com apenas uma tela em execução, não há necessidade de screen -ls . Qualquer screen -d e screen -r ou screen -x será suficiente.

    
por 03.07.2016 / 12:06