guias ao usar 'tela'


20

Estou usando o Ubuntu 10.04. Depois que eu instalei screen:

sudo apt-get install screen

Fiz duas conexões ssh com dois servidores remotos, executando as seguintes ações passo a passo (execute as seguintes etapas de acordo com o documento aqui ):

1. abra uma janela terminal, execute o comandoscreen

2. pressione Ctrl+ A+ cpara criar um novo console virtual

3) ssh usr@IP1

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

4. pressione Ctrl+ A+ cpara criar um novo console virtual

5) ssh usr@IP2

Então, agora eu me conectei a dois servidores remotos (IP1 e IP2). Mas , eu não tenho duas guias em uma janela de terminal, em vez disso, eu tenho que usar Ctrl+ A+ pe Ctrl+ A+ npara alternar entre o console virtual duas em uma janela de terminal.

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

Respostas:


26

Aqui está o meu .screenrcque eu uso em todos os lugares para ver meus screennúmeros como guias na parte inferior da janela e uma linha informativa acima das guias . A parte que você realmente precisa está em "aparência e 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 a screenprimeira é criada:

screen ssh usr@IP1
screen ssh usr@IP2

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

if [ 'screen' == "${TERM}" ]; then
  export PROMPT_COMMAND='printf "\e]2;%s %s\a" "${USER}" "${PWD}" '
fi

4
Eu sempre me perguntei por que, invariavelmente, é necessária alguma configuração incondicional para tornar a tela não uma droga para trabalhar. PS Tente shelltitle "$ |shell:"anexar o nome do comando ao título.
Amphetamachine

7

Quando você pressiona Ctrl+ ae "pode ver as "guias" da tela, elas não deveriam ser guias na GUI do terminal, você pode fazer isso manualmente criando uma nova guia na GUI do terminal que você está usando e depois executando na nova GUI do terminal. guia screen -rpara retornar à sua sessão de tela e navegue para sua sessão desejado com Ctrl+ ae um número ou "para ver um menu com todos os seus guias.

Você pode dar um nome a cada uma das "guias" da tela pressionando Ctrl + a e A .


11
Deve ser necessário executar screen -r -xse essa tela já estiver anexada na primeira guia.
Arcege

3

Eu acho que você está confundindo as guias dos terminais gráficos, como o konsole, com as da tela. Na tela, você alterna apenas o conteúdo de uma janela com os ^ A-Kombinations mencionados. Isso funciona também em um ambiente não gráfico.


2

Você pode configurar screenpara mostrar uma linha de status que pode informá-lo de muitas coisas, suponho também em qual janela da tela você está, mas eu não uso uma linha de status, por isso não posso dizer com certeza.

Pelo que sei, screennão crie guias, mas você deve alternar entre as telas com o comando que você indicou, ou como eu preferir Ctrl- A 1, Ctrl- A 2, etc.

Para ter mais de uma guia, você pode usar os gnome-terminalrecursos, também sem tela: Ctrl- Shift- Tcriará uma nova guia e Alt- 1, Alt- 2, etc. alternará entre as guias.

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


2

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

Crie 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 "janelas"
    • janela atual: texto em vermelho sobre fundo preto
    • outras janelas: texto em 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 do que US $ 0,02, porque eu lutei bastante nisso ;-)

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

bindkey -k k6 prev
bindkey -k k7 next
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.