abas ao usar 'screen'

18

Estou usando o Ubuntu 10.04. Depois de instalar o screen :

sudo apt-get install screen

Eu fiz duas conexões ssh para dois servidores remotos, fazendo o seguinte passo a passo (eu faço os seguintes passos de acordo com o documento aqui ):

1. abra uma janela final, execute o comando screen

2. pressione Ctrl + A + c para criar um novo console virtual

3. ssh usr@IP1

Neste ponto, eu tenho um console virtual que mostra que eu me conectei ao servidor remoto (IP1).

4. pressione Ctrl + A + c para criar um novo console virtual

5. ssh usr@IP2

Agora, conectei-me a dois servidores remotos (IP1 e IP2). Mas , eu não tenho duas abas em uma janela de terminal, em vez disso, eu tenho que usar Ctrl + A + p e Ctrl + A + n para alternar entre os dois consoles virtuais em um .

Não é assim que usando screen , eu poderia ter duas abas em uma janela de terminal, com cada aba exibindo uma conexão com um servidor remoto. Por que eu não tenho as guias na minha janela de terminal?

    
por Mellon 07.12.2011 / 10:22

5 respostas

20

Aqui está o meu .screenrc que eu uso em todos os lugares para ver meus screen números como guias na parte inferior da janela e uma linha informativa acima das guias . A parte que você realmente precisa está sob "aparência".

# skip the startup message
startup_message off

# go to home dir
chdir

# Automatically detach on hangup. 
autodetach on

# Change default scrollback value for new windows
defscrollback 10000

# start with visual bell as default
vbell on
vbell_msg "bell on %t (%n)"

# look and feel
caption always "%{= bb}%{+b w}%n %t %h %=%l %H %c"
hardstatus alwayslastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"

activity "Activity in %t(%n)"

shelltitle "shell"
shell -$SHELL

Além disso, você pode adicionar o seguinte para adicionar automaticamente duas guias quando o screen for criado inicialmente:

screen ssh usr@IP1
screen ssh usr@IP2

Além disso, o conteúdo do status pode ser atualizado usando os códigos de escape emitidos pelos comandos shell e prompts. Por exemplo, eu atualizo o status com o diretório atual usando isso no meu .bashrc :

if [ 'screen' == "${TERM}" ]; then
  export PROMPT_COMMAND='printf "\e]2;%s %s\a" "${USER}" "${PWD}" '
fi
    
por 07.12.2011 / 14:02
6

Quando você pressiona Ctrl + a e " você pode ver as" abas "da tela, elas não devem ser guias sua GUI terminal, você pode fazer isso manualmente criando uma nova guia na GUI do terminal que estiver usando e, em seguida, executando na nova guia screen -r para retornar à sua sessão de tela e navegando até a sessão desejada com Ctrl + a e um número ou " para ver um menu com todas as suas abas.

Você pode dar um nome a cada uma de suas "abas" de tela pressionando Ctrl + a e então A .

    
por 07.12.2011 / 10:46
3

Eu acho que você está confundindo as guias em terminais gráficos como o Konsole com aqueles na tela. Na tela, você alterna apenas o conteúdo de uma janela com o Kombination-A mencionado. Isso funciona também em um ambiente não gráfico.

    
por 07.12.2011 / 12:10
2

Você pode configurar screen para mostrar uma linha de status que pode informar muitas coisas, eu suponho também em qual tela você está, mas eu não uso uma linha de status, então não posso dizer com certeza.

Para o que eu sei, screen não cria abas, mas você tem que alternar entre telas com o comando que você indicou, ou como eu prefiro Ctrl - A 1 , Ctrl - A 2 , etc.

Para ter mais de uma guia você pode usar gnome-terminal features, também sem screen: Ctrl - Shift - T criará um nova aba, e Alt - 1 , Alt - 2 , etc. alternará entre as abas.

Também pergunto por que você não roda a tela no servidor, usando apenas uma conexão ssh (mas, neste caso, sem nenhuma aba).

    
por 07.12.2011 / 10:38
1

Eu sei que isso é bem antigo, mas como o Google me levou até aqui, outros podem ler isso também. Então, aqui está meu hack de US $ 0,02 para imitar guias em uma sessão de "tela":

Construa uma linha de status com:

  • no lado esquerdo: data / hora
  • no lado direito: nome do host local + carga média
  • no meio: os nomes da tela "windows"
    • janela atual: texto vermelho em fundo preto
    • outras janelas: texto branco na cor de fundo da linha de status (azul, aqui)

Coloque em ~/.screenrc :

hardstatus alwayslastline "%{kb}%{c}[%{w}%D %d/%m/%Y %c:%s%{c}] %{w}%-w%{rk}%n %t%{wb}%+w %=%{c}[%{W}%H %l%{c}]"

(Talvez isso valha mais de US $ 0,02 porque eu passei bastante tempo com isso; -)

Para mudar da janela atual para a anterior / seguinte com as teclas F6 / F7 :

bindkey -k k6 prev
bindkey -k k7 next
    
por 27.10.2016 / 18:17

Tags