Emulador de terminales virtuales
root@localhost# sudo aptitude install screen
Para abrir nuestro programita tan sólo tenemos que escribir su nombre en consola:
root@localhost# screen
Nos mostrará un texto con la licencia. Para continuar tan sólo tenemos que pulsar la tecla “Espacio” o “Enter“.
root@localhost# vim ~/.screenrc
startup_message off
teclado
“C-a c“ (“Ctrl+a” + “c“).
Esto quiere decir que primero se pulsaría “Ctrl+a“, soltamos las teclas y pulsamos ‘c‘.
Scroll de screen / Copiar y pegar
Estamos en una consola de screen. Haced un listado de /etc por ejemplo:
$ ls /etc
(C-a [ o C-a C-Esc).
Luego podremos desplazarnos con los cursores como si estuviéramos en un editor de texto normal. Si subimos, la pantalla hará scroll junto con el cursor. Cuando acabemos tan sólo tenemos que pulsar
"Esc" o '['
y volveremos al modo normal.
Estando en ese modo cuando pulsamos
"Enter" comenzará a seleccionar texto, nos desplazamos y estemos al final de lo que queremos copiar, volvemos a pulsar
"Enter".
Finalmente podremos pegar la copia del texto que hemos hecho pulsando la combinación
"C-a ]“.
Resumiendo:
Entrar en modo copia/scroll
C-a [ / C-a C-Esc
desplazamiento del cursor (si estamos en modo copia/scroll)
cursor
Comenzar selección texto / Finalizar selección texto, copiar y salir modo copia/scroll
Enter
Salir del modo copia/scroll sin copiar nada
ESC / [
Pegar el texto copiado
C-a ]
Multiconsola en screen
Crear otra consola, con la pulsación de “C-a c“, o bien escribiendo “screen” detro de una consola del propio screen. Podemos hacer un listado de las consolas que tenemos abiertas con “C-a w“.
0-$ bash 1$ bash 2*$ bash 3$ bash
Si os dais cuenta hay dos de ellas distintas al resto. Una tiene un ‘*’ y otra un ‘-’ entre el número y el ‘$’. La consola que tiene el ‘*’ es la consola actual, la que estamos viendo. La que tiene el ‘-’ es la que se activó antes que la actual.
Podremos cambiar entre ambas con la combinación
“C-a a”
o navegar con siguiente consola
(C-a n)
y la anterior
(C-a p)
.
Para cambiar a una específica podemos hacerlo con “C-a num” donde num es el número de la consola en cuestión que se ha listado anteriormente.
Otra forma de hacerlo es con ” C-a ‘ “, que nos preguntará a cual queremos cambiar; introducimos el número y pulsamos “Enter“.
Y otra quizá mejor es mediante C-a “, se nos presentará un menú con las consolas abiertas, seleccionamos con las flechas abajo/arriba y confirmamos con “Enter“.
Pero no os aclaráis mucho con los nombres, ¿verdad? Bueno, también se le pueden poner nombres a las consolas para que a la hora de verlos con el listado (C-a w) o el menú (C-a “) nos aparezcan los nombres en lugar del intérprete bash. Nos colocamos en la consola a la que queremos bautizar y pulsamos “C-a A”, borramos el nombre “bash“, ponemos el que queramos y confirmamos con “Enter“.
Resumimos:
C-a c / screen: crea una nueva consola virtual en screen
C-a w: lista las consolas abiertas
C-a C-a: cambia ente las dos últimas consolas seleccionadas
C-a n: cambia a la siguiente consola
C-a p: cambia a la consola previa
C-a num: cambia a la consola determinada por num
C-a ‘: cambia a la consola que le indiquemos posteriomente con el número que la identifica
C-a “: menú que nos permite cambiar a la consola que queramos
C-a A: nos permite ponerle un nombre a la consola actual
.
Desligar/ligar sesiones en screen
Mandarla a un segundo plano a modo de daemon) pulsar “C-a d“. Veréis este mensaje:
[detached]
Para recuperar la sesión y volver a ver su contenido escribimos en la consola: “screen -r“.
En caso de tener más de una sesión desligada, al intentar recuperar una con “screen -r” nos dirá lo siguiente:
There are several suitable screens on:
20535.pts-8.belgarath (Detached)
20169.pts-1.belgarath (Detached)
screen -r 20169
Ahora bien, si estamos en la oficina, la casa de un amigo, la universidad o donde sea y queremos ligar una sesión de nuestra casa tendríamos que:
Conectar por SSH
Desligar la sesión que queramos
Ligarla
En caso de que sólo tuvíeramos una sesión abierta en casa primero conectaríamos por SSH y después podríamos desligar la sesión de casa y ligarla en el ordenador remoto con un sólo comando:
$ screen -dr
La ‘d‘ desliga la sesión y la ‘r‘ la liga a la terminal que estamos usando. Si hubiera varias sesiones tendríamos que ver qué sesiones hay y hacer lo mismo que antes pero indicando el número de la sesión deseada:
$ screen -dr 20169
El argumento ‘d‘ es normal usarlo remotamente para desligarlo del ordenador donde puede estar previamente ligado. Si estamos en el ordenador local no se usa tanto a no ser que queramos llevar una sesión de un terminal a otro dentro del mismo sistema.
Resumimos:
C-a d: desliga la sesión actual
screen -r: liga la sesión (si es única) a la terminal actual (local o remota). Si hay varias sesiones, mostrará sus identificadores numéricos
screen -r número: liga la sesión identificada por “número“.
screen -dr: desliga la sesión (si es única) del terminal asociado y la liga al terminal actual (local o remota). Si hay varias sesiones, mostrará sus identificadores numéricos
screen -dr número: desliga la sesión especificada por “número” del terminal asociado y la liga al terminal actual
Cerrar consola virtual
tecleamos “exit“, o bien puedes usar el atajo “C-a k“
Si queremos cerrar todas las consolas virtuales de una sesión y salir de screen, basta con usar el atajo “C-a \”
Resumimos:
C-a k / exit: cierra la consola actual de screen. Si es la última se sale del programa
C-a \: Cierra todas las consolas y se sale de screen
$ man screen
“C-a ?” y os saldrá un completo listado de todos los shortcuts del programa.
fuente: http://tuxpepino.wordpress.com/2007/05/24/%C2%BFconocias-screen/