fg
Trae un trabajo detenido de vuelta a la terminal para seguir usándolo.
fg (foreground, primer plano) recupera un programa que pausaste con Ctrl+Z y lo vuelve a poner delante, para que sigas viendo su pantalla y escribiéndole. Se usa junto con bg, que hace lo contrario: reanudar el programa sin quitarte el control de la terminal. fg solo recupera trabajos de tu propia sesión, no procesos de otro lado, y no hay que instalar nada porque viene incluido en bash.
fg [%N | %+ | %- | %texto]Despiece
6 ejemplosRecuperar el último trabajo pausado
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | fg | Comando | El comando que trae un trabajo a primer plano. |
Vuelve a aparecer en pantalla el último programa que pausaste con Ctrl+Z y te devuelve el control de esa aplicación. Si solo querías dejarlo correr sin verlo, usa bg en vez de fg. Si no hay ningún trabajo pausado, bash responde fg: current: no such job.
Elegir cuál trabajo traes
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | fg | Comando | El comando que trae un trabajo a primer plano. |
| 2 | %1 | Argumento | El número del trabajo, tal como aparece entre corchetes en jobs. |
Trae el trabajo 1 y no otro. El prefijo % es la forma de que bash entienda que hablas de un trabajo y no de un archivo: con ese mismo %1 puedes hacer fg, bg o kill.
Traer el trabajo más reciente
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | fg | Comando | El comando que trae un trabajo a primer plano. |
| 2 | %+ | Argumento | El signo más apunta al trabajo más reciente. |
Es lo mismo que fg sin argumento, solo que explícito: %+ significa el trabajo actual. Se usa cuando hay varios pausados y quieres dejar claro cuál es cuál.
Traer el trabajo anterior
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | fg | Comando | El comando que trae un trabajo a primer plano. |
| 2 | %- | Argumento | El signo menos apunta al trabajo anterior al actual. |
Trae el trabajo que estaba en primer plano justo antes del actual. Sirve para alternar entre dos programas sin tener que acordarte de sus números.
Buscarla por el nombre del comando
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | fg | Comando | El comando que trae un trabajo a primer plano. |
| 2 | %vim | Argumento | Busca el trabajo cuyo comando empieza con ese texto. |
Recupera el trabajo de vim sin importar cuál sea su número. El % texto busca al principio de la línea de comandos; si necesitas que coincida en cualquier parte, usa %?vim.
Reanudarlo sin quitarte la terminal
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | bg | Comando | El comando que manda un trabajo a segundo plano y lo deja corriendo. |
| 2 | %1 | Argumento | El número del trabajo detenido que quieres reanudar. |
El programa pausado vuelve a correr por detrás y tú conservas la terminal. Esa es la diferencia: fg te pone el programa enfrente, bg lo deja trabajando atrás. Para ver cómo va, usa jobs.
Fallas comunes
| Falla | Remedio |
|---|---|
| Que bash responda fg: current: no such job. | No hay ningún trabajo detenido que traer. fg solo funciona con programas que pausaste con Ctrl+Z; si el programa nunca se detuvo, no hay nada que recuperar. |
| Que bash responda fg: no job control. | Lo estás corriendo dentro de un script o de algún contexto sin terminal. El control de tareas solo existe en una terminal interactiva, así que ahí fg y bg no pueden funcionar. |
| Intentar correrlo en segundo plano con fg %1 &. | No se puede: fg necesita el control de la terminal y por eso bash contesta fg: no job control. Si lo que quieres es que el programa siga corriendo sin que lo veas, usa bg %1 a secas. |
| Perder el programa por cerrar la terminal. | Un trabajo en primer plano o en segundo plano muere cuando cierras la ventana, porque bash manda la señal de cierre. Si necesitas que sobreviva, usa nohup para el caso simple o una sesión con screen, que además te deja volver a conectarte después. |
Preguntas frecuentes
- ¿Qué hace fg?
- Toma un trabajo detenido de esa terminal y lo vuelve a poner en primer plano: su pantalla reaparece y tú puedes seguir escribiéndole. Para volver a soltarlo, presionas Ctrl+Z otra vez, y con bg lo mandas a segundo plano.
- ¿Cuál es la diferencia entre fg y bg?
- Los dos reanudan un programa pausado, pero distinto: fg te da el control del programa y pierdes el de la terminal, mientras que bg deja el programa corriendo por detrás y te devuelve el control. fg es para cuando necesitas ver la pantalla, bg para cuando solo quieres que siga trabajando.
- ¿Cómo detengo y reanudo un programa?
- Lo pausas con Ctrl+Z y bash lo marca como Stopped. Para retomarlo usas fg (vuelve a primer plano) o bg %1 (sigue en segundo plano). Para terminarlo de verdad, Ctrl+C cuando esté en primer plano, o kill %1 si está pausado.
- ¿Qué significan %1, %+ y %-?
- Son las formas de señalar un trabajo. El número, como %1, es el número entre corchetes que muestra jobs. El %+ es el trabajo actual, o sea el más reciente, y el %- es el que estaba activo antes de ese. También existe % texto para buscarlo por el nombre del comando.
- ¿Por qué fg dice no job control?
- Porque lo estás usando donde no hay terminal interactiva, normalmente dentro de un script o de un comando encadenado. El control de tareas de bash solo está activo cuando hay una terminal de verdad, así que en esos casos usa nohup para dejar el programa corriendo.