{"id":7041,"date":"2025-09-15T10:20:40","date_gmt":"2025-09-15T08:20:40","guid":{"rendered":"https:\/\/www.hostingtg.com\/blog\/?p=7041"},"modified":"2025-09-15T10:20:43","modified_gmt":"2025-09-15T08:20:43","slug":"screen-linux","status":"publish","type":"post","link":"https:\/\/www.hostingtg.com\/blog\/screen-linux\/","title":{"rendered":"Screen en Linux: gu\u00eda pr\u00e1ctica (con atajos, logging y trucos de admin)"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Qu\u00e9 es GNU Screen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Screen<\/code> es un <strong>multiplexor de terminal<\/strong>: permite crear varias sesiones persistentes dentro de una sola consola y <strong>mantener procesos vivos aunque cierres la ventana o se caiga la SSH<\/strong>. Es como tener una \u201csala\u201d donde dejas tus trabajos corriendo, te vas, vuelves y <strong>retomas exactamente por donde lo dejaste<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En mi d\u00eda a d\u00eda como admin, <strong>lo uso en CentOS, AlmaLinux y <a href=\"https:\/\/www.hostingtg.com\/blog\/debian-13-trixie\/\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/www.hostingtg.com\/blog\/debian-13-trixie\/\" rel=\"noreferrer noopener\">Debian<\/a><\/strong>. Me salva cuando lanzo tareas largas (respaldos, migraciones, descargas, scrapers, compilaciones): me desconecto y <strong>todo sigue corriendo<\/strong>. Luego, con un simple <code>screen -r<\/code>, <strong>reaparezco en la sesi\u00f3n<\/strong> y veo el hist\u00f3rico como si nunca me hubiera ido.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hostingtg.com\/servidores-vps\/\" target=\"_blank\" rel=\" noreferrer noopener\"><img fetchpriority=\"high\" decoding=\"async\" width=\"900\" height=\"402\" src=\"https:\/\/www.hostingtg.com\/blog\/wp-content\/uploads\/2025\/09\/servidores-vps-easypanel.webp\" alt=\"servidores vps easypanel\" class=\"wp-image-6996\" title=\"\"><\/a><figcaption class=\"wp-element-caption\">servidores vps easypanel<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ventajas clave<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Persistencia<\/strong>: <em>detach\/reattach<\/em> sin perder estado ni salida.<\/li>\n\n\n\n<li><strong>Multiplexaci\u00f3n<\/strong>: varias ventanas\/regiones en una sesi\u00f3n.<\/li>\n\n\n\n<li><strong>Colaboraci\u00f3n<\/strong>: compartir sesi\u00f3n con otros usuarios (ideal para debug conjunto).<\/li>\n\n\n\n<li><strong>Logging<\/strong>: registro de lo que ocurre para auditor\u00eda o post-mortem.<\/li>\n\n\n\n<li><strong>Bajo consumo<\/strong>: es ligero y viene en casi todas las distros.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Instalaci\u00f3n r\u00e1pida (Debian\/Ubuntu, RHEL\/CentOS\/AlmaLinux, Fedora, Arch)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Debian\/Ubuntu<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update &amp;&amp; sudo apt install screen\nscreen --version\n<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Te dejo una guia tambien sobre <a href=\"https:\/\/www.hostingtg.com\/blog\/apt-get-update-vs-upgrade\/\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/www.hostingtg.com\/blog\/apt-get-update-vs-upgrade\/\" rel=\"noreferrer noopener\">apt-get update y upgrade<\/a><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">RHEL\/CentOS\/AlmaLinux<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dnf install screen    # En versiones antiguas: sudo yum install screen\nscreen --version\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Fedora<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dnf install screen<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Arch\/Manjaro<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo pacman -S screen\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">SUSE\/openSUSE<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo zypper install screen\n<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Tip: agrega <code>screen<\/code> a tu <em>bootstrap<\/em> de servidores. Evita ese \u201c\u00a1ups!\u201d cuando se cae la SSH a mitad de un rsync.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Conceptos clave: sesiones, ventanas, regiones y el prefijo Ctrl-a<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Sesi\u00f3n<\/strong>: contenedor principal. Puedes tener <strong>m\u00faltiples sesiones<\/strong> por host\/usuario.<\/li>\n\n\n\n<li><strong>Ventanas<\/strong>: \u201cpesta\u00f1as\u201d dentro de una sesi\u00f3n; cada una con su proceso\/shell.<\/li>\n\n\n\n<li><strong>Regiones (splits)<\/strong>: dividir la pantalla para <strong>ver varias ventanas a la vez<\/strong>.<\/li>\n\n\n\n<li><strong>Prefijo<\/strong>: casi todos los atajos empiezan con <strong><code>Ctrl-a<\/code><\/strong> (se puede cambiar).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Flujo mental:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Abre\/nombrar<\/strong> una sesi\u00f3n (<code>screen -S nombre<\/code>).<\/li>\n\n\n\n<li><strong>Crea ventanas<\/strong> y mu\u00e9vete entre ellas.<\/li>\n\n\n\n<li><strong>Divide<\/strong> si necesitas ver dos procesos en paralelo.<\/li>\n\n\n\n<li><strong>Detach<\/strong> (sales sin matar nada) y <strong>reattach<\/strong> al volver.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Flujo b\u00e1sico en 5 minutos: crear, nombrar, <em>detach<\/em>, <em>reattach<\/em><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Crear sesi\u00f3n (y nombrarla)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>screen                # crea una sesi\u00f3n an\u00f3nima\nscreen -S deploy      # crea y nombra \"deploy\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Dentro de screen<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nueva ventana: <code>Ctrl-a c<\/code><\/li>\n\n\n\n<li>Listar ventanas: <code>Ctrl-a \"<\/code> (doble comilla)<\/li>\n\n\n\n<li>Renombrar ventana: <code>Ctrl-a A<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Salir temporalmente (detach)<\/strong><br>Cuando quieras cerrar la terminal sin matar nada:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Ctrl-a d\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Volver (reattach)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>screen -ls         # lista sesiones\nscreen -r deploy   # reanuda por nombre\nscreen -r 12345.pts-0.host  # por ID\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Forzar reattach si qued\u00f3 \u201cpegada\u201d<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>screen -D -RR\n<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">En mi caso, <strong>cierro el port\u00e1til<\/strong> sin miedo: la sesi\u00f3n queda ah\u00ed. Al reconectar SSH, un <code>screen -r<\/code> y sigo como si nada.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Atajos esenciales de Screen (tabla r\u00e1pida)<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Acci\u00f3n<\/th><th>Atajo<\/th><\/tr><\/thead><tbody><tr><td>Nueva ventana<\/td><td><code>Ctrl-a c<\/code><\/td><\/tr><tr><td>Siguiente \/ Anterior ventana<\/td><td><code>Ctrl-a n<\/code> \/ <code>Ctrl-a p<\/code><\/td><\/tr><tr><td>Lista de ventanas<\/td><td><code>Ctrl-a \"<\/code><\/td><\/tr><tr><td>Renombrar ventana<\/td><td><code>Ctrl-a A<\/code><\/td><\/tr><tr><td>Detach (salir sin cerrar)<\/td><td><code>Ctrl-a d<\/code><\/td><\/tr><tr><td>Cerrar ventana actual<\/td><td><code>Ctrl-a k<\/code><\/td><\/tr><tr><td>Dividir horizontal<\/td><td><code>Ctrl-a S<\/code> (may\u00fascula)<\/td><\/tr><tr><td>Dividir vertical <em>(si disponible)<\/em><\/td><td><code>Ctrl-a |<\/code><\/td><\/tr><tr><td>Cambiar de regi\u00f3n<\/td><td><code>Ctrl-a TAB<\/code><\/td><\/tr><tr><td>Cerrar regi\u00f3n<\/td><td><code>Ctrl-a X<\/code><\/td><\/tr><tr><td>Copiar\/scrollback (Copy mode)<\/td><td><code>Ctrl-a [<\/code><\/td><\/tr><tr><td>Pegar<\/td><td><code>Ctrl-a ]<\/code><\/td><\/tr><tr><td>B\u00fasqueda en Copy mode<\/td><td><code>\/<\/code> (adelante), <code>?<\/code> (atr\u00e1s)<\/td><\/tr><tr><td>Alternar logging<\/td><td><code>Ctrl-a H<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Nota: el <em>split vertical<\/em> depende de la versi\u00f3n. Si no va con <code>Ctrl-a \\|<\/code>, usa <code>:split -v<\/code> desde el prompt de comandos de screen (<code>Ctrl-a :<\/code>).<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Casos reales: procesos largos, SSH inestable y trabajo en equipo<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Procesos largos<\/strong>: backups nocturnos, importaciones de DB, <code>ffmpeg<\/code>, builds\u2026 Inicias dentro de <code>screen<\/code>, haces <em>detach<\/em> y <strong>te olvidas<\/strong>. <em>Yo lo uso para lanzamientos en <a href=\"https:\/\/www.hostingtg.com\/blog\/almalinux-9-4\/\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/www.hostingtg.com\/blog\/almalinux-9-4\/\" rel=\"noreferrer noopener\">AlmaLinux<\/a>: dejo el despliegue corriendo y me reconecto luego para revisar output l\u00ednea a l\u00ednea.<\/em><\/li>\n\n\n\n<li><strong>SSH inestable<\/strong>: redes corporativas, Wi-Fi caprichosas, saltos por bastion\u2026 <code>screen<\/code> <strong>desacopla tu trabajo<\/strong> de la conexi\u00f3n. <em>M\u00e1s de una vez perd\u00ed la SSH en Debian y al volver todo estaba tal cual lo dej\u00e9.<\/em><\/li>\n\n\n\n<li><strong>Colaboraci\u00f3n<\/strong>: puedes habilitar modo multiusuario y <strong>compartir la sesi\u00f3n<\/strong> para que un compa\u00f1ero vea\/escriba (ideal para soporte o pair debugging).<\/li>\n\n\n\n<li><strong>Auditor\u00eda y post-mortem<\/strong>: con logging y scrollback, <strong>ves exactamente todo lo que ocurri\u00f3<\/strong> y documentas decisiones sin reinventar la rueda.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Logging y persistencia: <code>-L<\/code>, <code>-Logfile<\/code>, scrollback y ver \u201ctodo lo que ocurri\u00f3\u201d<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Si tu prioridad es <strong>no perder una sola l\u00ednea<\/strong>, combina <strong>scrollback<\/strong> amplio, <strong>copy mode<\/strong> y <strong>logs<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Arrancar con logging<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>screen -L -Logfile $HOME\/screenlog-%t-%Y%m%d-%02c.log -S tarea-larga\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>-L<\/code> activa logging desde el inicio.<\/li>\n\n\n\n<li><code>-Logfile<\/code> define el nombre (usa <em>placeholders<\/em> como <code>%t<\/code> = t\u00edtulo ventana).<\/li>\n\n\n\n<li>Dentro de screen, puedes alternar con <code>Ctrl-a H<\/code>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ajustar scrollback (buffer) y copiar<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Entra a <strong>copy mode<\/strong>: <code>Ctrl-a [<\/code><\/li>\n\n\n\n<li>Mu\u00e9vete con flechas \/ <code>PgUp<\/code> \/ <code>PgDn<\/code>.<\/li>\n\n\n\n<li>Busca <code>\/texto<\/code> o <code>?texto<\/code> y <strong>marca<\/strong> con barra espaciadora; <strong>pega<\/strong> con <code>Ctrl-a ]<\/code>.<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">En mi flujo, <strong>registro tareas largas<\/strong> y luego reviso el log para elaborar informes: as\u00ed <strong>veo exactamente lo que pas\u00f3<\/strong> sin confiar s\u00f3lo en mi memoria.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Personaliza tu <code>.screenrc<\/code>: ejemplos comentados para mejorar la productividad<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Crea <code>~\/.screenrc<\/code> con algo pr\u00e1ctico desde el minuto uno:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># ~\/.screenrc \u2014 productivo y legible\n\n# Prefijo alternativo (escapar Ctrl-a si lo usas en Emacs)\n# escape ^Aa\n\n# Buffer de scroll generoso\ndefscrollback 10000\n\n# Logging por defecto y ruta de logs\ndeflog on\nlogfile $HOME\/.screen\/logs\/%t-%Y%m%d-%0c.log\n\n# T\u00edtulos autom\u00e1ticos de ventana (\u00fatil con -Logfile %t)\nautodetach on\ndefmonitor on\n\n# Barra de estado m\u00ednima (host, ventana y hora)\nhardstatus on\nhardstatus alwayslastline \"%{= kG} %H %{= kw}%-w%{= kW}%n %t%{-}%+w %=%{= kG}%Y-%m-%d %c \"\n\n# Atajos para dividir y moverte\nbind S split         # split horizontal\nbind | split -v      # split vertical (si tu versi\u00f3n lo soporta)\nbind h focus left\nbind l focus right\nbind j focus down\nbind k focus up\n<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Consejo: crea <code>~\/bin\/newscreen<\/code> que prepare variables (como nombres de ventana) y arranque con logging listo para cada proyecto.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Gesti\u00f3n avanzada: compartir sesiones, <code>-X<\/code> para enviar comandos y <code>-D -RR<\/code> para reanudar \u201cs\u00ed o s\u00ed\u201d<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Compartir sesi\u00f3n (multiusuario)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># En screen: habilita multiusuario\nCtrl-a : multiuser on\nCtrl-a : acladd otro_usuario\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">El otro usuario se conecta con:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>screen -x tu_usuario\/nombre_sesion\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u00datil para soporte, formaci\u00f3n o \u201cdos teclados, una consola\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Enviar comandos a una sesi\u00f3n sin entrar<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Enviar \"ls -la\" a la ventana actual de la sesi\u00f3n \"deploy\"\nscreen -S deploy -X stuff \"ls -la$(printf \\\\r)\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Con <code>-X<\/code> automatizas tareas (reinicios, se\u00f1ales, etc.) desde scripts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Reanudar pase lo que pase<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>screen -D -RR\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Desengancha sesiones en otros TTY y <strong>te mete<\/strong> en la primera disponible.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">En rollouts delicados, me ha permitido <strong>volver a la consola cr\u00edtica<\/strong> incluso tras cortes feos.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Problemas comunes y soluciones (cheat-sheet de errores)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u201cThere is no screen to be resumed.\u201d<\/strong><br>No hay sesiones <em>detached<\/em>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>screen -ls           # verifica\nscreen -r nombre     # reanuda por nombre\/ID\nscreen -D -RR        # fuerza si estaba \"attached\" en otra TTY\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u201cCannot open your terminal &#8216;\/dev\/pts\/X&#8217; \u2013 please check.\u201d<\/strong><br>Permisos\/TTY heredado. Soluciones t\u00edpicas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Recuperar un TTY v\u00e1lido\nscript -q \/dev\/null\n# o\nsudo script -q \/dev\/null\n# luego prueba screen -r de nuevo\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Sockets hu\u00e9rfanos \/ directorio de sockets raro<\/strong><br>Limpia el socket viejo (con cuidado) o especifica un DIR temporal:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>screen -ls\n# si ves sockets corruptos, cierra screens reales y elimina el archivo en \/run\/screen\/S-usuario\/\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Tecla prefijo en conflicto<\/strong><br>Define otro prefijo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># en ~\/.screenrc\nescape ^Bb   # usa Ctrl-b como prefijo\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Screen vs tmux: \u00bfcu\u00e1ndo elegir cada uno?<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>screen<\/code><\/strong> brilla por <strong>simplicidad, ubicuidad y robustez<\/strong>. Est\u00e1 \u201cen todas partes\u201d, ideal en servidores legacy o m\u00ednimos. Para muchos flujos (deploys, tareas largas, soporte), <strong>cumple de sobra<\/strong>.<\/li>\n\n\n\n<li><strong><code>tmux<\/code><\/strong> ofrece un ecosistema m\u00e1s moderno (paneos\/estad\u00edsticas\/plug-ins) y suele tener <strong>mejor soporte de splits<\/strong> y personalizaci\u00f3n con su <em>status line<\/em>.<br><strong>Mi criterio pr\u00e1ctico<\/strong>: si el server es austero o legacy, <strong>screen<\/strong>; si es tu estaci\u00f3n de trabajo\/servidor moderno y te apetece tunear, <strong>tmux<\/strong>. No es religi\u00f3n: es contexto.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Comandos r\u00e1pidos para llevarse (resumen final)<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Crear y nombrar\nscreen -S tarea\n\n# Detach \/ Reattach\nCtrl-a d\nscreen -r tarea\nscreen -D -RR   # reanudar a la fuerza\n\n# Ventanas\nCtrl-a c        # nueva\nCtrl-a n \/ p    # siguiente \/ anterior\nCtrl-a \"        # lista\nCtrl-a A        # renombrar\n\n# Splits (seg\u00fan versi\u00f3n)\nCtrl-a S        # horizontal\nCtrl-a |        # vertical\nCtrl-a TAB      # cambiar de regi\u00f3n\n\n# Logging\nscreen -L -Logfile ~\/logs\/%t-%Y%m%d.log\nCtrl-a H        # alternar\n\n# Copiar\/scrollback\nCtrl-a &#91;\n\/, ?            # buscar\nCtrl-a ]        # pegar\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Sobre Screen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>screen<\/code> es <strong>herramienta de batalla<\/strong> para admins y devops: ligera, presente en casi cualquier distro y <strong>perfecta para procesos largos y SSH inestable<\/strong>. En mi experiencia, <strong>puedo desconectarme con tranquilidad<\/strong>: vuelvo con <code>screen -r<\/code> y <strong>veo todo lo que ocurri\u00f3<\/strong> gracias al scrollback y el logging. Con un <code>.screenrc<\/code> sensato, atajos memorizados y un par de recetas (multiusuario, <code>-X<\/code>, <code>-D -RR<\/code>), te convierte la terminal en un entorno <strong>fiable, colaborativo y persistente<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">FAQs<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfC\u00f3mo nombro y reanudo una sesi\u00f3n concreta?<\/strong><br><code>screen -S miwork<\/code> para crearla; <code>screen -ls<\/code> para listar; <code>screen -r miwork<\/code> para volver.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfC\u00f3mo dejo algo corriendo y me voy?<\/strong><br>Pulsa <code>Ctrl-a d<\/code> (detach). Nada se mata. A la vuelta: <code>screen -r<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfC\u00f3mo activo logs con nombre por ventana?<\/strong><br><code>screen -L -Logfile $HOME\/logs\/%t-%Y%m%d.log -S build<\/code> y dentro <code>Ctrl-a H<\/code> para alternar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfPuedo compartir la sesi\u00f3n con otro usuario?<\/strong><br>S\u00ed: dentro de screen <code>multiuser on<\/code> y <code>acladd usuario<\/code>. El otro entra con <code>screen -x tu_usuario\/nombre<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfQu\u00e9 hago si dice \u201cCannot open your terminal \/dev\/pts\/\u2026\u201d?<\/strong><br>Ejecuta <code>script -q \/dev\/null<\/code> para obtener un TTY limpio y vuelve a <code>screen -r<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Opini\u00f3n Personal<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Creo que <strong>Screen en Linux<\/strong> sigue siendo el h\u00e9roe silencioso del admin moderno. No presume, no \u201crompe\u201d modas y, aun as\u00ed, me ha salvado m\u00e1s sesiones de las que puedo contar. Cuando trabajo en <strong>CentOS, AlmaLinux o Debian<\/strong>, lo abro casi por reflejo: lanzo tareas largas, hago <em>detach<\/em> y me voy tranquilo. Si la SSH se corta, <strong>no pasa nada<\/strong>: vuelvo con <code>screen -r<\/code> y contin\u00fao justo donde lo dej\u00e9, con <strong>todo el historial<\/strong> para revisar qu\u00e9 ocurri\u00f3 segundo a segundo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Muchos se quedan en \u201cabre, corre y sal\u201d, pero para m\u00ed la diferencia est\u00e1 en <strong>logging y scrollback<\/strong>. Poder auditar lo que pas\u00f3 \u2014sin inventar memoria\u2014 es oro en despliegues, migraciones o scripts nocturnos. \u00bfQue tmux es m\u00e1s moderno? Seguro. En mi estaci\u00f3n personal lo disfruto. Pero en servidores de batalla, donde prima la <strong>ubicuidad y la fiabilidad<\/strong>, <strong>Screen<\/strong> rara vez falla y casi siempre <strong>ya est\u00e1 instalado<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n valoro su sencillez para <strong>colaborar<\/strong> (modo multiusuario) y automatizar con <code>-X<\/code>. No es que \u201ctodo admin deba usarlo\u201d por dogma, es que <strong>te quita fricci\u00f3n<\/strong> y te regala tranquilidad: menos nervios cuando la red tiembla y m\u00e1s foco en resolver.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora te leo a ti: <strong>\u00bfc\u00f3mo usas Screen?<\/strong> \u00bfTienes alg\u00fan truco, <code>.screenrc<\/code> \u00fatil o caso real que te haya salvado el d\u00eda? <strong>D\u00e9jalo en los comentarios<\/strong> y lo incorporo a la gu\u00eda.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Qu\u00e9 es GNU Screen Screen es un multiplexor de terminal: permite crear varias sesiones persistentes dentro de una sola consola y mantener procesos vivos aunque cierres la ventana o se caiga la SSH. Es como tener una \u201csala\u201d donde dejas tus trabajos corriendo, te vas, vuelves y retomas exactamente por donde lo dejaste. En mi [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":7044,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_aifi_custom_prompt":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[952],"tags":[910,779,1093,783],"class_list":["post-7041","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-guias","tag-comandos","tag-linux","tag-screen","tag-sistema-operativo"],"_links":{"self":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts\/7041","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/comments?post=7041"}],"version-history":[{"count":2,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts\/7041\/revisions"}],"predecessor-version":[{"id":7045,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts\/7041\/revisions\/7045"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/media\/7044"}],"wp:attachment":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/media?parent=7041"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/categories?post=7041"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/tags?post=7041"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}