Leyendo unos feeds de RedHat Magazine, me encontre con un articulos sobre Screen que por cierto me resulto muy util.
GNU Screen es como una version de un manejador de ventana que funciona en la terminal pero para mantener multiples terminales virtual, varias sesiones y programas de modo texto ejecutandose simultaneamente en la misma consola.
Existen muchos programas utiles para correr en la consola, por ejemplo puedes chequear el correo con mutt o pine, chatear en el irc con irssi, administrar un servidor remoto via ssh, editar archivos con el vim o emacs, o simplemente ejecutar comandos.
Ademas de ser persistente, puedes iniciar una sesion y luego reconectarte a la misma sin necesidad de reiniciarla, se puede compartir la sesion con otro usuario como si fuera VNC y los programas se pueden mantener en multiples ventanas que hasta puedes renombrar.
Instalamos la aplicacion, usando ya sea apt-get (debian), o yum segun la distro que se tenga.
luego utilizamos una configuracion basica como esta, igual que la mayoria de programas en linux la configuracion se puede guarda en el homedir. o sea: ~/.screenrc
Configuracion de Ejemplo:
Ejecutamos screen en la consola y tendremos algo como esto:

Los atajos del teclado mas utilizados para moverse a traves de los screens, si no se han modificado en el screenrc son:
Ctrl+a y luego
0 - 9 – para cambiar entre ventanas o screens
Ctrl+n – para cambiar a la siguiente ventana disponible
Backspace – regresa a la ventana previa
Ctrl+a – cambia a la ultima ventana previa
A – cambia el nombre de la sesion en la ventana
K – elimina la session en la ventana
c – Crea una nueva ventana
[ – permite usar en scroll hacia arriba y abajo en la ventana
para mas informacion sobre los atajos se puede leer la pagina del manual con:
lo interesante de screen es que puede quedar ejecutandose y desde una session remota ssh, retomar lo que se dejo en la pantalla de screen en la maquina remota.
Nos conectamos remotamente via ssh revisamos la sesiones de screen abiertas con:
si la screen quedo activo veremos algo como esto:

solo basta con ejecutar :
y retomaremos las cosas tal y como las dejamos.
Para para compartir el screen con otro usuario parecido al VNC.
via SSH nos conectamos a la estacion remota, buscamos por la sesion de screen y ejecutamos en la terminal:
user2 seria el nombre de usuario que comparte la sesion de screen la / es necesaria para conectarse a la sesion con esto ambos usuarios pueden ejecutar comandos en la misma terminal.
una vez acostumbrados a screen podras tener un desktop mas organizado y eficiente sin demasiadas ventanas abiertas.
GNU Screen es como una version de un manejador de ventana que funciona en la terminal pero para mantener multiples terminales virtual, varias sesiones y programas de modo texto ejecutandose simultaneamente en la misma consola.
Existen muchos programas utiles para correr en la consola, por ejemplo puedes chequear el correo con mutt o pine, chatear en el irc con irssi, administrar un servidor remoto via ssh, editar archivos con el vim o emacs, o simplemente ejecutar comandos.
Ademas de ser persistente, puedes iniciar una sesion y luego reconectarte a la misma sin necesidad de reiniciarla, se puede compartir la sesion con otro usuario como si fuera VNC y los programas se pueden mantener en multiples ventanas que hasta puedes renombrar.
Instalamos la aplicacion, usando ya sea apt-get (debian), o yum segun la distro que se tenga.
# yum install -y screen
luego utilizamos una configuracion basica como esta, igual que la mayoria de programas en linux la configuracion se puede guarda en el homedir. o sea: ~/.screenrc
Configuracion de Ejemplo:
# Linea de status para informacion ( hosts, screens, hora)
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d %{W}%c %{g}]'
# screens y programas a iniciar
# screen -t NameOfScreen ScreenNumber ShellCommand
screen -t logs_checking 0 sudo tail -f /var/log/messages
screen -t irc 1 irssi
screen -t ssh_server 2 ssh me@myserver
Ejecutamos screen en la consola y tendremos algo como esto:

Los atajos del teclado mas utilizados para moverse a traves de los screens, si no se han modificado en el screenrc son:
Ctrl+a y luego
0 - 9 – para cambiar entre ventanas o screens
Ctrl+n – para cambiar a la siguiente ventana disponible
Backspace – regresa a la ventana previa
Ctrl+a – cambia a la ultima ventana previa
A – cambia el nombre de la sesion en la ventana
K – elimina la session en la ventana
c – Crea una nueva ventana
[ – permite usar en scroll hacia arriba y abajo en la ventana
para mas informacion sobre los atajos se puede leer la pagina del manual con:
$ man screen
lo interesante de screen es que puede quedar ejecutandose y desde una session remota ssh, retomar lo que se dejo en la pantalla de screen en la maquina remota.
Nos conectamos remotamente via ssh revisamos la sesiones de screen abiertas con:
$ screen -ls
si la screen quedo activo veremos algo como esto:

solo basta con ejecutar :
$ screen -x 4507.pts-2.xaero
y retomaremos las cosas tal y como las dejamos.
Para para compartir el screen con otro usuario parecido al VNC.
- como root: chmod u+s /usr/bin/screen (screen debe tener el SUID si se va a compartir con otro usuario) Nota: SUID permite a un ejecutable correr bajo el propietario de del archivo en vez del usuario con sus permisos. hay ciertos aspectos de seguridad por lo que esto va bajo la responsabilidad del usuario.
- chmod 755 /var/run/screen
- dejamos la cuenta root, y ejecutamos Screen como el usuario que va a compartir la session:
$ screen - Presionamos Ctrl+a, luego escribimos " :multiuser on" y luego Enter.
- Presionamos Ctrl+a, luego escribimos ":acladd user1" (”user1” es el nombre de usuario de la persona que se conectara a la sesion de screen).
via SSH nos conectamos a la estacion remota, buscamos por la sesion de screen y ejecutamos en la terminal:
$ screen -x user2/
user2 seria el nombre de usuario que comparte la sesion de screen la / es necesaria para conectarse a la sesion con esto ambos usuarios pueden ejecutar comandos en la misma terminal.
una vez acostumbrados a screen podras tener un desktop mas organizado y eficiente sin demasiadas ventanas abiertas.