Comando jobs de Linux

Linux 命令大全Referencia completa de comandos de Linux

jobsEs un comando integrado en sistemas Linux/Unix para ver y gestionar tareas en segundo plano en la sesión actual de shell. Permite al usuario:

  • Ver el estado de todos los trabajos en ejecución en segundo plano
  • Controlar el cambio de trabajos entre primer y segundo plano
  • Gestionar la ejecución de múltiples tareas concurrentes

Cuando ejecutas comandos que tardan mucho tiempo en la terminal,jobsel comando te ayuda a gestionar eficientemente estos procesos en segundo plano.


Sintaxis básica

jobs [选项] [作业标识符]

Opciones comunes

Opción Descripción
-l Muestra el PID (ID de proceso) del trabajo
-p Muestra solo el ID de grupo de procesos del trabajo
-n Muestra solo los trabajos cuyo estado ha cambiado desde la última notificación
-r Muestra solo los trabajos en ejecución
-s Muestra solo los trabajos detenidos

Explicación detallada de las funciones principales

1. Ver trabajos en segundo plano

El uso más simple es escribir directamentejobsel comando:

Ejemplo

$ jobs
[1]  - running    sleep 100 &
[2]  + stopped    vim file.txt

Explicación de la salida:

  • [1]: número de trabajo (Job ID)
  • -/+:-Indica el trabajo anterior,+Indica el trabajo actual
  • running/stopped: estado del trabajo
  • Al final está el comando que inició el trabajo

2. Mostrar información detallada del proceso

Usa-lla opción para ver el PID del trabajo:

Ejemplo

$ jobs -l
[1]  - 12345 running    sleep 100 &
[2]  + 12356 stopped    vim file.txt

3. Filtrar trabajos por estado específico

Ejemplo

# Ver solo los trabajos en ejecución
$ jobs -r

# Ver solo los trabajos detenidos
$ jobs -s

Escenarios de aplicación práctica

Escenario 1: Ejecución de tareas de larga duración en segundo plano

Ejemplo

# Iniciar una tarea que consume tiempo y ponerla en segundo plano
$ long_running_command &

# Ver los trabajos en segundo plano
$ jobs
[1]  + running    long_running_command &

Escenario 2: Pausar y reanudar trabajos

Ejemplo

# Iniciar vim
$ vim file.txt

# Pulsar Ctrl+Z para pausar vim
^Z
[1]  + stopped    vim file.txt

# Ver los trabajos detenidos
$ jobs -s
[1]  + stopped    vim file.txt

# Restaurar vim al primer plano
$ fg %1

Escenario 3: Gestionar múltiples trabajos en segundo plano

Ejemplo

# Iniciar tres tareas en segundo plano
$ sleep 100 &
$ sleep 200 &
$ sleep 300 &

# Ver todos los trabajos
$ jobs -l
[1]   12345 running    sleep 100 &
[2]  -12356 running    sleep 200 &
[3]  +12367 running    sleep 300 &

# Restaurar el trabajo 2 al primer plano
$ fg %2

# Terminar el trabajo 3
$ kill %3

Combinación de comandos de control de trabajos

jobsGeneralmente se usa junto con otros comandos de control de trabajos:

Comando Descripción Ejemplo
& Pone el comando en segundo plano command &
Ctrl+Z Pausa el trabajo actual en primer plano Combinación de teclas
fg Restaura el trabajo al primer plano fg %1
bg Continúa ejecutando un trabajo detenido en segundo plano bg %2
kill Termina el trabajo especificado kill %3

Preguntas frecuentes

P1: ¿Por qué los trabajos en segundo plano terminan al cerrar la terminal?

R: Por defecto, los trabajos en segundo plano están asociados con la sesión de terminal. El usonohupodisownpuede hacer que el trabajo continúe ejecutándose después de cerrar la terminal:

Ejemplo

$ nohup long_running_command &

P2: ¿Cómo hacer referencia a un trabajo específico?

R: Utiliza%junto con el número de trabajo:

  • %1: trabajo 1
  • %2: trabajo 2
  • %+o%%: trabajo actual
  • %-: trabajo anterior

P3: ¿Cuál es la diferencia entre los comandos jobs y ps?

A:

  • jobsMuestra solo los trabajos de la sesión de shell actual
  • psMuestra todos los procesos del sistema, incluidos los de otros usuarios y terminales

Recomendaciones de mejores prácticas

  1. Redirige la salida de los trabajos en segundo plano: para evitar que la salida interfiera con la terminal actual

    $ command > output.log 2>&1 &
  2. Usa nombres descriptivos: para identificar fácilmente los diferentes trabajos

    $ (sleep 300; echo "Done") & 
  3. Revisa regularmente el estado de los trabajos: para evitar acumular muchos trabajos incompletos

    $ watch -n 60 jobs
  4. Usa nohup para trabajos importantes: para asegurar que sigan ejecutándose después de desconectar la terminal

    $ nohup important_command &

Diagrama de flujo de resumen

Linux 命令大全Referencia completa de comandos de Linux

Otras extensiones