Comandos LinuxExplicados en español
/
Ficha44 / 104
Categoría
Procesos
Ejemplos
6
Ver también
jobs · kill · nohup · screen

fg

foreground (primer plano)

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.

Sintaxisfg [%N | %+ | %- | %texto]
§ 1

Despiece

6 ejemplos
Recuperar el último trabajo pausado

Recuperar el último trabajo pausado

1 pieza
Lámina01 / 06
Comandofg
Piezas1
Escala1:1
N.ºPiezaTipoQué hace
1fgComandoEl comando que trae un trabajo a primer plano.
Resultado

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

2 piezas
Lámina02 / 06
Comandofg %1
Piezas2
Escala1:1
N.ºPiezaTipoQué hace
1fgComandoEl comando que trae un trabajo a primer plano.
2%1ArgumentoEl número del trabajo, tal como aparece entre corchetes en jobs.
Resultado

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

2 piezas
Lámina03 / 06
Comandofg %+
Piezas2
Escala1:1
N.ºPiezaTipoQué hace
1fgComandoEl comando que trae un trabajo a primer plano.
2%+ArgumentoEl signo más apunta al trabajo más reciente.
Resultado

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

2 piezas
Lámina04 / 06
Comandofg %-
Piezas2
Escala1:1
N.ºPiezaTipoQué hace
1fgComandoEl comando que trae un trabajo a primer plano.
2%-ArgumentoEl signo menos apunta al trabajo anterior al actual.
Resultado

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

2 piezas
Lámina05 / 06
Comandofg %vim
Piezas2
Escala1:1
N.ºPiezaTipoQué hace
1fgComandoEl comando que trae un trabajo a primer plano.
2%vimArgumentoBusca el trabajo cuyo comando empieza con ese texto.
Resultado

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

2 piezas
Lámina06 / 06
Comandobg %1
Piezas2
Escala1:1
N.ºPiezaTipoQué hace
1bgComandoEl comando que manda un trabajo a segundo plano y lo deja corriendo.
2%1ArgumentoEl número del trabajo detenido que quieres reanudar.
Resultado

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.

§ 2

Fallas comunes

FallaRemedio
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.
§ 3

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.
§ 4

Ver también