pestañas al usar 'pantalla'

20

Estoy usando Ubuntu 10.04. Después de instalar screen:

sudo apt-get install screen

Hice dos conexiones ssh a dos servidores remotos haciendo lo siguiente paso a paso (hago los siguientes pasos de acuerdo con el documento aquí ):

1. abra una ventana de término, ejecute el comandoscreen

2. presione Ctrl+ A+ cpara crear una nueva consola virtual

3) ssh usr@IP1

En este punto, tengo una consola virtual que muestra que me he conectado al servidor remoto (IP1).

4. presione Ctrl+ A+ cpara crear una nueva consola virtual

5) ssh usr@IP2

Entonces, ahora me he conectado a dos servidores remotos (IP1 e IP2). Pero , no tengo dos pestañas en una ventana de terminal, en su lugar, tengo que usar Ctrl+ A+ py Ctrl+ A+ npara cambiar entre las dos consolas virtuales en una ventana de terminal.

¿No es así que al usar screen, podría tener dos pestañas en una ventana de terminal, con cada pestaña mostrar una conexión a un servidor remoto? ¿Por qué no tengo las pestañas en la ventana de mi terminal?

Mellon
fuente

Respuestas:

26

Aquí está mi .screenrcque uso en todas partes para ver mis screennúmeros como pestañas en la parte inferior de la ventana y una línea informativa sobre las pestañas . La parte que realmente necesita está bajo "mirar y sentir".

# 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

También puede agregar lo siguiente para agregar automáticamente dos pestañas cuando screense crea inicialmente:

screen ssh usr@IP1
screen ssh usr@IP2

Además, el contenido del estado se puede actualizar utilizando códigos de escape emitidos por comandos y avisos de shell. Por ejemplo, actualizo el estado con el directorio actual usando esto en mi .bashrc:

if [ 'screen' == "${TERM}" ]; then
  export PROMPT_COMMAND='printf "\e]2;%s %s\a" "${USER}" "${PWD}" '
fi
nicerobot
fuente
44
Siempre me he preguntado por qué invariablemente se necesita una configuración hardcore para que la pantalla no funcione con la que funciona. PD: intente shelltitle "$ |shell:"agregar el nombre del comando al título.
anfetamáquina
7

Cuando presiona Ctrl+ ay "puede ver las "pestañas" de la pantalla, no se supone que sean pestañas en su GUI de terminal, puede hacerlo manualmente creando una nueva pestaña en la GUI de terminal que está usando y luego ejecutar en la nueva pestaña screen -rpara regresar a su sesión de pantalla y luego navegar a la sesión deseada con Ctrl+ ay un número o "para ver un menú con todas sus pestañas.

Puede asignar un nombre a cada una de las "pestañas" de la pantalla presionando Ctrl + y a luego A .

Hanan N.
fuente
1
Debería ejecutarse screen -r -xsi esa pantalla ya está adjunta en la primera pestaña.
Arcege
3

Supongo que estás confundiendo las pestañas en terminales gráficos como konsole con las de la pantalla. En la pantalla, solo cambia el contenido de una ventana con las ^ A-Kombinations mencionadas. Esto funciona también en un entorno no gráfico.

Nikodemus RIP
fuente
2

Puede configurar screenpara mostrar una línea de estado que puede informarle de muchas cosas, supongo que también en qué ventana de pantalla se encuentra, pero no uso una línea de estado, por lo que no puedo decirlo con certeza.

Por lo que sé, screenno cree pestañas, pero debe cambiar entre pantallas con el comando que indicó, o como prefiero Ctrl- A 1, Ctrl- A 2, etc.

Para tener más de una pestaña, puede usar gnome-terminalfunciones, también sin pantalla: Ctrl- Shift- Tcreará una nueva pestaña, y Alt- 1, Alt- 2, etc. cambiará entre pestañas.

También le pregunto por qué no ejecuta la pantalla en el servidor, por lo que solo usa una conexión ssh (pero en este caso sin ninguna pestaña).

enzotib
fuente
2

Sé que esto es bastante antiguo, pero como Google me trajo aquí, otros pueden leer esto también. Así que aquí está mi truco de $ 0.02 para imitar pestañas dentro de una sesión de "pantalla":

Construya una línea de estado con:

  • en el lado izquierdo: fecha / hora
  • en el lado derecho: nombre de host local + carga promedio
  • en el medio: los nombres de la pantalla "windows"
    • ventana actual: texto rojo sobre fondo negro
    • otras ventanas: texto blanco en el color de fondo de la línea de estado (azul, aquí)

Poner en ~/.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}]"

(Tal vez esto valga más de $ 0.02 porque luché bastante por esto ;-)

Para cambiar de la ventana actual a la anterior / siguiente con las teclas F6/ F7:

bindkey -k k6 prev
bindkey -k k7 next
Httqm
fuente