Ya hemos visto en nuestro curso de Linux varias funciones que nos resultarán muy útiles a la hora de operar con este sistema operativo. Como ya se ha comentado, Linux en un sistema multitarea, lo cual significa que se puede activar más de una tarea al mismo tiempo. ¿Cómo podemos ver las tareas que están en marcha en la distribución que tienen instalada en el ordenador?
Es tan sencillo como usas el comando ps –f, el cual nos dará una salida con varias líneas de información. La salida nos dará información de cada tarea o proceso, donde el UID será el identificador de usuario, el PID el proceso de usuario, el PPID el identificador pariente de usuario, SYIME cuando comenzó la tarea, TIME el tiempo que la tarea ha sido activada, y finalmente COMMAND el comando que comenzó la tarea.
ps -f
UID PID PPID STIME TTY TIME COMD
yngwie 18 1 00:48:19 tty1 0:01 bash
yngwie 80 24 00:17:28 tty1 0:00 ps –f
Se pueden lanzar tareas para que funcionen en un segundo término. Supón que tienes una tarea en marcha que lleva tiempo, como por ejemplo compilar un programa grande, y que necesitas que esté en marcha, pero también quieres que otros trabajos se hagan. Linux te permite empezar una tarea en un segundo plano y que continúes haciendo cosas desde la consola en un primer plano.
Esto se consigue añadiendo el símbolo & al final del comando. Cuando se añada este símbolo, el comando que hayas tecleado se iniciará y nos saldrá de inmediato el prompt permitiendo que sigamos metiendo más comandos. Imaginemos que queremos hacer una compilación pero seguir trabajando con Linux.
cc compilacion.c > salida &
Esto comenzará el compilador como una tarea en segundo plano, ejecutándolo en paralelo con otras tareas del sistema. En el ejemplo se ha visto que se envía la compilación a un fichero llamado salida. Lo cierto es que esto se hace porque es aconsejable redireccionar la salida de tareas en segundo plano a un fichero, como se hace en el ejemplo, ya que sigue compartiendo la pantalla con las tareas en primero plano. Si no lo hacemos así, la tarea en segundo plano pueden sacar cosas por pantalla mientras estás haciendo algo, lo cual puede ser molesto.
Si empiezas una tarea de larga duración y te olvidas de poner el símbolo del ampersán (&), todavía se puede enviar esa tarea a un segundo plano. En lugar de pulsar ctrl-C para terminar ese proceso en marcha y luego comenzarlo de nuevo en un segundo plano, simplemente pulsa ctrl-Z después de que comience el comando y luego usa el comando bg y pulsa enter para enviarlo a un segundo plano. Volver a poder hacer cosas desde la consola.
Si en cualquier momento quieres volver al compilador, puedes usar el comando fg para que muestra la tarea escondida. Puede que te digas que esto no es algo que vayas a utilizar mucho, pero es realmente útil cuando se hacen varias cosas que necesitan tiempo y queremos ejecutar un comando rápido para ver algo.
Por supuesto, siempre tenemos la opción de abrir otra ventana y hacer el otro trabajo desde esta ventana nueva. Se pueden ver ambos proceso en ventajas separadas al mismo tiempo, y no te tienes que preocupar sobre añadir ningún símbolo a la línea de comandos.
Otra cosa que debemos saber en Linux es saber matar un proceso. Por desgracia, algunos procesos dan más problemas que beneficios, y tenemos que terminarlos manualmente. Si por ejemplo has hecho un grep que está dando problemas, y estamos notando cosas extrañas en el sistema, la mejor manera es usar el comando kill para hacerlo desaparecer. Para ello, debemos apuntar este comando al número de proceso que tiene. Por tanto, lo primero sería hacer un ps –f como hemos visto antes y ver este número que identifica el proceso:
ps -f
UID PID PPID STIME TTY TIME COMD
yngwie 18 1 00:48:19 tty1 0:01 bash
yngwie 1645 24 00:17:28 tty1 0:00 grep
Como podemos ver, el PID del comando que nos está perjudicando tiene el número 1645, por lo que tenemos que ejecutar el siguiente comando:
kill -9 1645
Esto eliminará el proceso forzándolo a que acabe de forma inmediata. Hay que tener cuidado con este comando porque podemos eliminar procesos que son importantes para el sistema y podría tocarnos reiniciar todo el sistema operativo perdiendo el trabajo que no hemos salvado. En la siguiente parte del artículo, hablaremos de las variables en Linux.
¿Que son las variables en Linux?