GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar el comando Jobs en Linux

El comando de trabajos en Linux permite al usuario interactuar directamente con los procesos en el shell actual.

Los trabajos tienen tres estados posibles en Linux:primer plano, segundo plano y detenido.

¿Qué significa eso? Explicaré más en un momento. Primero, veamos algunas de las herramientas integradas en el comando Trabajos.

Job Control tiene varias funciones diferentes. Cada uno se puede ejecutar de forma independiente. Aquí hay una tabla de los comandos relacionados con Job Control.

En la tabla, n representa el número del ID de trabajo correspondiente.

Comprensión del control de trabajos en Linux

¿Qué es exactamente un trabajo de todos modos? Trabajos, procesos y tareas son palabras que a menudo se usan indistintamente.

En realidad, hay algunas pequeñas diferencias que son importantes para la claridad.

La diferencia se puede reducir a qué entidad está manejando las tareas. Los usuarios son dueños de los trabajos, mientras que el kernel es dueño de los procesos.

En Linux, un trabajo puede ser un solo proceso o puede tener muchos procesos secundarios o subprocesos.

Un ejemplo de esto puede ser un trabajo que presenta varios comandos canalizados como este:

cat file1 | sort | uniq

Parea la salida del archivo y ordena el valor uniq usando la combinación de los comandos sort y uniq.

En la informática personal, el sistema operativo maneja la mayoría de los procesos automáticamente. Esto suele estar optimizado para las necesidades del sistema o la prioridad dada a una determinada tarea. Estos procesos son completados por el núcleo y reciben un ID de proceso (PID).

Cómo controlar trabajos en Linux

Cuando abre un nuevo shell, tiene el poder de crear sus propios trabajos. De hecho, esto es lo que sucede cuando ingresa cualquier comando (o serie de comandos) en una terminal.

A nivel de usuario:desde un shell, puede enviar trabajos manualmente para que trabajen en segundo plano, ponerlos en primer plano o suspenderlos (usando Ctrl+z).

Entonces, pongamos en práctica lo que has aprendido hasta ahora con algunos ejemplos.

Ejemplo 1:enviar trabajos a segundo plano

Enviar un trabajo a trabajar en segundo plano es fácil. Solo necesita agregar su comando con un & (símbolo de ampersand).

[email protected]:~$ nano Linux_Handbook &
[1] 2860

Puede ver que este comando devuelve el número de trabajo entre paréntesis. El siguiente número es el ID de proceso utilizado por el kernel.

Ejemplo 2:Ver trabajos

Si intentó escribir el comando de trabajos, es posible que se sienta confundido porque parece que no sucedió nada. Esto se debe a que no había trabajos activos en el shell. Ahora que tiene un trabajo en ejecución, puede ejecutar el comando de trabajos con éxito.

[email protected]:~$ jobs
[1]+  Stopped                 nano Linux_Handbook

El número PID no aparece aquí, pero no lo necesita. Usted controla los trabajos usando el ID de trabajo específico del shell/usuario.

Ejemplo 3:Traer trabajos a primer plano

Puede usar esa ID de trabajo para traer su instancia de nano al primer plano.

[email protected]:~$ fg %1

Si ha estado siguiendo, esto debería llevarlo a Nano con su archivo llamado Manual de Linux.

Ejemplo 4:detener un trabajo con Ctrl+z

Puede detener los trabajos abiertos usando Ctrl+z. Aquí hay una captura de pantalla que muestra cómo usar esto con la parte superior.

En el screencast, puede verme abrir la parte superior, usar Ctrl+z para suspenderlo, verlo en mi lista de trabajos y luego traerlo de vuelta al primer plano antes de cerrarlo.

Ejemplo 5:Ejecutar trabajos en segundo plano usando bg

Si bien puede enviar trabajos a un segundo plano con el símbolo &, siempre es bueno tener una alternativa. En el screencast, me viste detener el trabajo usando ctrl+z. Devolví el trabajo al shell y al primer plano con fg %n dominio. Puedes hacer lo mismo usando bg .

Voy a usar una aplicación GUI solo para cambiar las cosas. Es posible que haya notado en el pasado que cuando abre una GUI desde la terminal, si cierra la terminal, la GUI también se cerrará. Con suerte, este artículo te ha aclarado por qué sucede eso.

Entonces, usemos Gedit. Voy a hacer lo siguiente:

  • Iniciar Gedit
  • Regresar al Shell y Ctrl+z
  • Enviarlo al fondo para que se ejecute usando bg
  • Revisar mi lista de trabajos para verificar que se está ejecutando
  • Volver al primer plano y enviar una interrupción del sistema usando Ctrl+c para finalizarla
[email protected]:~$ gedit
^Z
[1]+  Stopped                 gedit
[email protected]:~$ bg %1
[1]+ gedit &
[email protected]:~$ jobs
[1]+  Stopped                 gedit
[email protected]:~$ fg %1
gedit
^C

Consejo extra sobre terminación de trabajos en Linux

Muchos de nosotros estamos acostumbrados a usar ctrl+c para terminar trabajos en un shell. Hay otra forma de hacer esto que incorporar su nuevo conocimiento de control de trabajo.

[email protected]:~$ fg %1
gedit
^Z
[1]+  Stopped                 gedit
[email protected]:~$ kill %1

Así es, el comando matar se puede usar junto con la identificación del trabajo para terminar un trabajo también.

Conclusión

Aprender la línea de comandos de Linux nos acerca al funcionamiento interno de nuestro sistema operativo favorito. El aprendizaje del control de trabajos nos brinda la capacidad de manejar varios trabajos a la vez.

Espero que hayas encontrado algo nuevo para explorar con este artículo. Si lo disfrutó, háganoslo saber en la sección de comentarios a continuación o use los enlaces para compartir en las redes sociales.


Linux
  1. Cómo usar el comando Su en Linux

  2. Cómo usar el comando de pantalla de Linux

  3. Cómo usar el comando ldconfig en Linux

  4. Cómo usar el comando ipset en Linux

  5. Opciones de comando de trabajos en Linux

Cómo usar el comando sysctl en Linux

Cómo usar el comando de apagado de Linux

Cómo usar grep en Linux

Cómo usar el comando Mkdir en Linux

Cómo usar el comando de trabajos en Linux

Cómo usar el comando de pantalla en Linux

    Comando Descripción
    trabajos Lista de trabajos en el shell actual
    bg %n Enviar proceso al fondo
    fg %n Traer proceso a primer plano