Tutorial de comandos principales de Linux para principiantes (8 ejemplos)
Mientras trabajas en la línea de comandos de Linux, puede haber ocasiones en las que quieras comprobar detalles relacionados con los procesos, como qué proceso está consumiendo más CPU o memoria. Pues bien, existe un comando -denominado top- que te permite hacerlo fácilmente. En este tutorial, hablaremos de esta herramienta utilizando algunos ejemplos fáciles de entender.
Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos mencionados en este artículo se han probado en una máquina Ubuntu 24.04 LTS.
Comando top de Linux
El comando top muestra una lista de los procesos o hilos que gestiona actualmente el núcleo de Linux, junto con información útil relacionada con ellos. A continuación se muestra la sintaxis de la herramienta:
top [options]
Y esto es lo que dice la página man de la herramienta al respecto:
The top program provides a dynamic real-time view of a running system. It can display system summary information as well as a list of processes or threads currently being managed by the Linux kernel. The types of system summary information shown and the types, order and size of information displayed for processes are all user configurable and that configuration can be made persis? tent across restarts.
The program provides a limited interactive interface for process
manipulation as well as a much more extensive interface for per?
sonal configuration — encompassing every aspect of its opera?
tion.
A continuación encontrarás algunos ejemplos en forma de preguntas y respuestas que te darán una buena idea de cómo funciona el comando top.
Q1. ¿Cómo se utiliza top?
Sencillo, sólo tienes que ejecutar el comando «top» sin ninguna opción:
top
Ésta es la salida que produjo en mi sistema:
Ten en cuenta que lo que ves en la captura de pantalla es sólo una instantánea de la salida en tiempo real (que cambia tras un intervalo fijo) que se produjo.
Q2. ¿Cómo entender la salida del comando top?
Empecemos por la primera línea. Contiene entradas para (en este orden), la hora actual, la duración desde que el sistema está en marcha, las sesiones de usuario activas y la carga media del sistema (para el último minuto, cinco minutos y quince minutos, respectivamente).
La segunda línea contiene información (por este orden) sobre el número total de procesos, el número de procesos en ejecución, el número de procesos durmientes, el número de procesos que se han detenido y el número de procesos en estado zombi.
La tercera línea contiene información sobre el uso de la CPU. A continuación se muestran los detalles:
us, user : time running un-niced user processes sy, system : time running kernel processes ni, nice : time running niced user processes id, idle : time spent in the kernel idle handler wa, IO-wait : time waiting for I/O completion hi : time spent servicing hardware interrupts si : time spent servicing software interrupts st : time stolen from this vm by the hypervisor
Las dos líneas siguientes muestran información relacionada con el uso de RAM y memoria swap. Y, por último, viene la información relacionada con los procesos, que consiste en (por este orden) el ID del proceso, el usuario propietario del proceso, la prioridad del proceso, el valor nice del proceso, la memoria virtual, física y compartida utilizada por el proceso, el estado del proceso (Durmiente, En ejecución o Zombi), el uso de CPU y RAM, el tiempo de actividad y el comando que inició el proceso.
Q3. ¿Cómo matar un proceso desde la salida superior?
Es bastante sencillo: pulsa «k» y top te pedirá el PID del proceso que quieres matar. Verás que aparece un mensaje similar al siguiente justo encima de la línea que contiene las cabeceras de las columnas de proceso:
PID to signal/kill [default pid = 3397]
Como ves, puedes introducir el PID del proceso o, por defecto, top intentará matar (enviando SIGTERM) el primer proceso de la lista. Una vez enviada la señal, se produce un mensaje similar al siguiente.
Send pid 3007 signal [15/sigterm]
Q4. ¿Cómo cambiar la prioridad de un proceso?
Igual que ‘k’ sirve para matar, puedes pulsar ‘r’ en caso de que quieras cambiar la prioridad de un proceso (o quieras renombrarlo). Al pulsar ‘r’ aparece un mensaje similar al siguiente:
PID to renice [default pid = 3397]
Así que introduce un PID o top intentará renombrar la prioridad del primer proceso de la lista por defecto. Por ejemplo, yo pasé un PID, y entonces top me preguntó por el nuevo valor agradable.
Renice PID 2665 to value
Sólo tienes que proporcionar un valor y pulsar intro, y verás que se cambia el valor nice del proceso en cuestión.
Q5. ¿Cómo cambiar la frecuencia de actualización del comando top?
Por defecto, top actualiza la salida cada 3 segundos, pero puedes modificarlo pulsando «d». El comando te pedirá que introduzcas el nuevo valor de retardo:
Change delay from 3.0 to
Introduce el valor y pulsa intro. Y ya está.
Q6. ¿Cómo limitar la salida del comando top a un usuario?
Por defecto, el comando top muestra todos los procesos. Sin embargo, puedes limitar la salida a un usuario concreto pulsando «u».
Which user (blank for all)
Sólo tienes que introducir el nombre de usuario en la línea anterior y pulsar Intro, y verás que la salida contendrá sólo los procesos que pertenezcan al usuario cuyo nombre hayas introducido.
Por ejemplo, yo he introducido ‘root’, y aquí está la salida:
Q7. ¿Cómo hacer que top muestre el comando completo junto con los argumentos?
Puedes hacerlo pulsando «c». Aquí tienes un ejemplo:
Ahora puedes ver la ruta completa del comando, así como los argumentos de la línea de comandos en la salida.
Q8. ¿Cómo obtener ayuda con los comandos top interactivos?
Para obtener ayuda relacionada con los comandos top interactivos, pulsa ‘h’. En la salida verás los comandos disponibles y lo que hacen. Por ejemplo, esto es lo que apareció en mi sistema cuando pulsé ‘h’.
Conclusión
Aquí sólo hemos arañado la superficie. El comando superior ofrece muchas más funciones. Una vez que hayas entendido todo lo que hemos tratado en este artículo, y hayas terminado de practicarlo, dirígete a la página man de top para aprender más sobre él.