Cómo usar el comando superior de Linux (y comprender su salida)

Un indicador de terminal en una computadora portátil con Linux.
Fatmawati Achmad Zaenuri / Shutterstock

El topcomando de Linux es uno de los incondicionales de los sistemas operativos similares a Unix. Su pantalla utilitaria está repleta de información útil sobre los procesos en ejecución de su sistema y el uso de recursos. Pero, ¿sabías que también admite color, resaltado e incluso gráficos elementales?

Un panel lleno de información

El topcomando  existe desde 1984 , y hay muchas variantes. Para este artículo, estamos ejecutando Ubuntu 18.04 con todos los parches aplicados y la versión 3.3.12 de top. También hicimos referencias cruzadas de todo en otras dos computadoras de prueba, una que ejecuta Fedora y la otra Manjaro.

La toppantalla predeterminada contiene tanta información como sea posible en la ventana del terminal. La información es un requisito previo para la administración, por lo que esto es algo bueno. Uno de los rasgos de un buen administrador de sistemas es la capacidad de identificar problemas emergentes y tratarlos antes de que afecten al servicio. top le brinda un tablero de muchas métricas de sistema diferentes que lo ayudan a hacer precisamente eso.

La pantalla se describe mejor como funcional, en lugar de intuitiva, y abundan las abreviaturas. Cuando te encuentras por primera vez top, se siente estrecho, críptico y desagradable. Sin embargo, con algunas pulsaciones de teclas, puede ajustar el contenido y el formato de la pantalla de acuerdo con lo que es importante para usted.

Verifique su versión de top

Para comprobar qué versión de top tienes, escribe lo siguiente en una ventana de terminal:

top -v

top -v en una ventana de terminal.

Si su versión está muy por detrás de la 3.3.12, es posible que no admita todas las funciones que vamos a cubrir.

La pantalla predeterminada

Puede comenzar topescribiendo lo siguiente y presionando «Enter»:

parte superior

arriba en una ventana de terminal.

La pantalla predeterminada contiene dos áreas de información: el área de resumen (o tablero) y el área de tareas (o lista de procesos). De forma predeterminada, topactualiza su pantalla cada tres segundos; notará un ligero parpadeo cuando lo haga.

la pantalla superior predeterminada en una ventana de terminal.

La primera línea de números en el tablero incluye el tiempo, cuánto tiempo ha estado funcionando su computadora, la cantidad de personas que han iniciado sesión y cuál ha sido el promedio de carga durante los últimos uno, cinco y 15 minutos. La segunda línea muestra el número de tareas y sus estados: en ejecución, detenidas, durmiendo o  zombies .

La tercera línea muestra los siguientes  valores de la unidad central de procesamiento (CPU):

  • us: cantidad de tiempo que la CPU dedica a ejecutar procesos para personas en el «espacio de usuario».
  • sy: Cantidad de tiempo dedicado a ejecutar procesos de «espacio de kernel» del sistema.
  • ni: Cantidad de tiempo dedicado a ejecutar procesos con un valor agradable establecido manualmente.
  • id: Cantidad de tiempo de inactividad de la CPU.
  • wa: Cantidad de tiempo que la CPU pasa esperando que se complete la E / S.
  • hi: cantidad de tiempo dedicado al mantenimiento de interrupciones de hardware.
  • si: Cantidad de tiempo dedicado al mantenimiento de interrupciones de software.
  • st: Cantidad de tiempo perdido debido a la ejecución de máquinas virtuales («tiempo de robo»).
Relacionado:  Cómo establecer variables de entorno en Bash en Linux

La cuarta línea muestra la cantidad total ( en kibibytes ) de memoria física y la cantidad disponible, utilizada y almacenada en búfer o en caché.

La quinta línea muestra la cantidad total (también en kibibytes) de memoria de intercambio y la cantidad libre, utilizada y disponible. Este último incluye la memoria que se espera pueda recuperar de los cachés.

Los encabezados de las columnas de la lista de procesos son los siguientes:

  • PID: ID de proceso.
  • USUARIO: El propietario del proceso.
  • PR: Prioridad del proceso.
  • NI: El buen valor del proceso.
  • VIRT: Cantidad de memoria virtual utilizada por el proceso.
  • RES: Cantidad de memoria residente utilizada por el proceso.
  • SHR: Cantidad de memoria compartida utilizada por el proceso.
  • S: Estado del proceso. (Consulte la lista a continuación para conocer los valores que puede tomar este campo).
  • % CPU: el porcentaje de tiempo de CPU utilizado por el proceso desde la última actualización.
  • % MEM: La parte de memoria física utilizada.
  • TIEMPO +: tiempo total de CPU utilizado por la tarea en centésimas de segundo.
  • COMANDO: El nombre del comando o la línea de comando (nombre + opciones).

Los valores de memoria se muestran en kibibytes. La COMMANDcolumna está fuera de la pantalla, a la derecha; no encajaba en la imagen de arriba, pero la veremos en breve.

El estado del proceso puede ser uno de los siguientes:

  • D: sueño ininterrumpido
  • R: corriendo
  • S: durmiendo
  • T: rastreado (detenido)
  • Z: Zombi

Presione Q para salir  top.

Desplazamiento de la pantalla

Puede presionar las flechas Arriba o Abajo, Inicio, Fin y Página Arriba o Abajo para moverse hacia arriba y hacia abajo y acceder a todos los procesos.

Presione la flecha izquierda o derecha para mover la lista de procesos hacia los lados. Esto es útil para ver las columnas que no encajan dentro de los límites de la ventana de terminal.

En la imagen de abajo, presionamos la flecha derecha varias veces para ver la COMMANDcolumna.

arriba con la lista de procesos desplazada hacia los lados para revelar la columna de comando, en una ventana de terminal.

Cambio de las unidades numéricas

Cambiemos las unidades de visualización a valores sensibles. Presione E mayúscula para recorrer las unidades utilizadas para mostrar los valores de memoria en estas opciones: kibibytes, mebibytes, gibibytes, tebibytes, pebibytes y exbibytes. La unidad en uso es el primer elemento de las líneas cuatro y cinco.

Presione la «e» minúscula para hacer lo mismo con los valores en la lista de procesos: kibibytes, mebibytes, gibibytes, tebibytes y pebibytes.

Presionamos E para configurar las unidades de memoria del tablero en gibibytes y «e» para configurar las unidades de memoria de la lista de procesos en mebibytes.

arriba con gibibytes y mebibytes usados ​​para unidades de memoria en una ventana de terminal.

Cambiar el contenido del resumen

Puede cambiar la configuración de visualización de las líneas en el tablero o eliminarlas por completo.

Presione l para activar o desactivar la línea de resumen de carga (la primera línea). Eliminamos la línea de resumen de carga en la imagen a continuación.

Carga la línea de resumen eliminada de la parte superior en una ventana de terminal.

Si tiene una CPU de varios núcleos , presione 1 para cambiar la pantalla y ver las estadísticas individuales de cada CPU. Hay cuatro CPU en nuestra computadora. Presionamos 1 para ver qué tan duro está trabajando cada uno de ellos.

arriba con la pantalla de la CPU expandida para ver las estadísticas individuales de la CPU, en una ventana de terminal.

Por supuesto, esto ocupa más espacio en la pantalla dentro de la ventana del terminal.

Puede presionar «t» para cambiar las pantallas de la CPU a gráficos ASCII simples que muestran el porcentaje de uso de cada CPU.

arriba con gráficos ASCII que muestran la carga de trabajo de la CPU, en una ventana de terminal.

Para cada CPU, topmuestra tres números y el gráfico. De izquierda a derecha, los números son los siguientes:

  • La combinación usy el niporcentaje (espacio de usuario + tareas con configuraciones agradables no estándar).
  • El syporcentaje (espacio del kernel).
  • El total (redondeado a un valor entero).

Presione “t” nuevamente para cambiar la visualización del gráfico a caracteres de bloque sólido.

Relacionado:  Windows 10 está obteniendo un kernel de Linux integrado

arriba con gráficos de bloques ASCII que muestran la carga de trabajo de la CPU, en una ventana de terminal.

Presione «t» una vez más para eliminar completamente la pantalla de la CPU y la línea de resumen de tareas.

arriba con la CPU y las líneas de resumen de tareas eliminadas, en una ventana de terminal.

Presione “m” para recorrer la memoria e intercambiar líneas de memoria a través de diferentes opciones de visualización. La primera pulsación reemplaza las estadísticas con un gráfico ASCII.

arriba mostrando gráficos ASCII para las estadísticas de memoria, en una ventana de terminal.

Otra pulsación cambia el gráfico para bloquear caracteres.

arriba mostrando gráficos de bloques ASCII para las estadísticas de memoria, en una ventana de terminal.

Presione «m» una vez más para eliminar las líneas de la CPU por completo.

arriba con la memoria y las líneas de intercambio eliminadas de la pantalla, en una ventana de terminal.

Si lo desea, puede ver gráficos de CPU y memoria al mismo tiempo. Simplemente presione «t» y «m» hasta que obtenga la combinación que desea.

arriba con gráficos ASCII para CPU y memoria, en una ventana de terminal.

Color y resaltado

Puede presionar «z» para agregar color a la pantalla.

arriba con una pantalla a color, en una ventana de terminal.

Cuando piensa en ello top, probablemente no piense en pantallas de colores y gráficos ASCII, pero están integrados.

Presione «y» para resaltar las tareas en ejecución en la lista de procesos. Al presionar «x» se resalta la columna utilizada para ordenar la lista de procesos. Puede alternar entre resaltado de texto en negrita e inverso presionando «b».

arriba con la tarea en ejecución y la columna ordenada resaltada con texto invertido, en una ventana de terminal.

Ordenar por columnas

De forma predeterminada, la lista de procesos se ordena por %CPUcolumna. Puede cambiar la columna de clasificación presionando lo siguiente:

  • P: La %CPUcolumna.
  • M: La %MEMcolumna.
  • N: La PIDcolumna.
  • T: La TIME+ columna.

En la siguiente imagen, la lista de procesos está ordenada por PIDcolumna.

arriba con el proceso listado ordenado por la columna PID, en una ventana de terminal.

Ver la línea de comandos completa

Al presionar «c» se alterna la columna COMANDO entre mostrar el nombre del proceso y la línea de comando completa.

arriba que muestra la línea de comando completa en la columna de comando, en una ventana de terminal.

Para ver un «árbol» de procesos que fueron iniciados o generados por otros procesos, presione V.

Ver procesos para un solo usuario

Presione “u” para ver los procesos de un solo usuario. Se le pedirá el nombre o UID .

Mensaje de usuario en una ventana de terminal.

Escriba el nombre del UID de la persona que desea monitorear. Escribiremos «dave» y presionaremos «Enter». Ahora, los únicos procesos en el área de tareas pertenecen al usuario dave.

la parte superior muestra las tareas para un solo usuario dave, en una ventana de terminal.

Ver solo tareas activas

Presione I para ver solo las tareas activas.

arriba mostrando solo las tareas activas, en una ventana de terminal.

Las tareas que no han consumido CPU desde la última actualización no se mostrarán.

Establecer cuántos procesos mostrar

Presione “n” para limitar la visualización a un cierto número de líneas, independientemente de si las tareas están activas. Se le pedirá el número de procesos que se mostrarán.

top solicitando el número de líneas a mostrar, en una ventana de terminal.

Escribimos 10 y presionamos Enter, por lo que aparecen 10 procesos en el área de tareas.

top mostrando diez procesos en el área de tareas, en una ventana de terminal.

Renice un proceso

Puede presionar «r» para cambiar el valor agradable (prioridad)  de un proceso. Se le pedirá el ID del proceso. Simplemente presione Entrar para usar el ID de proceso de la tarea en la parte superior de la ventana del proceso. Escribimos 7800, que resulta ser el ID de proceso de una instancia de Firefox.

top solicitando el ID de proceso de un proceso, en una ventana de terminal.

Después de presionar Enter, se le solicitará el nuevo valor agradable para aplicar al proceso. Escribimos 15 y luego presionamos Enter.

superior configurando un proceso a un buen valor de 15, en una ventana de terminal.

El nuevo valor agradable se aplica al proceso de inmediato.

Mata un proceso

Presione «k» para matar un proceso . Luego, se le pedirá el ID de proceso que desea eliminar. De hecho, puede enviar cualquier señal al proceso. Vamos a cerrar el proceso 7879, que ha dejado de responder.

top solicitando un ID de proceso, en una ventana de terminal.

Se le ofrecerá la oportunidad de escribir la señal que desea enviar. Puede especificarlo por nombre o número. Si simplemente presiona Enter,  top envía la SIGTERMseñal (matar).

top solicitando una señal para enviar, en una ventana de terminal.

Tan pronto como presione Enter, la señal se envía al proceso.

Personalización de la pantalla

También puede personalizar los colores y las columnas que se muestran. Vamos a cambiar el color que se usa para las indicaciones, cuyo valor predeterminado es el rojo.

Relacionado:  Cómo monitorear el progreso de los comandos de Linux (con pv y progreso)

arriba que muestra un indicador rojo claro, en una ventana de terminal.

Presione la Z mayúscula para ir a la página de configuración de color. La parte superior de la pantalla muestra los colores que utilizan los diferentes elementos de visualización. Para indicar qué elemento de la pantalla desea cambiar, presione una de las siguientes opciones, que distinguen entre mayúsculas y minúsculas:

  • S : Área de resumen de datos.
  • M : Mensajes e indicaciones.
  • H : encabezados de columna.
  • T : información de la tarea en la lista de procesos.

Presionamos M para cambiar las indicaciones.

página de configuración de color superior con la opción M seleccionada, en una ventana de terminal.

Para elegir un color, presione uno de los siguientes números:

  • 0: negro.
  • 1: rojo.
  • 2: verde.
  • 3: amarillo.
  • 4: azul.
  • 5: magenta.
  • 6: cian.
  • 7: blanco.

Pulsamos 6 para usar cian.

ventana de configuración de color superior con el color 6 seleccionado, en una ventana de terminal.

Presione Entrar para guardar su configuración. Las solicitudes de entrada ahora estarán en el color que seleccionó.

arriba con un indicador cian, en una ventana de terminal.

También podemos cambiar las columnas que se muestran en la pantalla Gestión de campos. Presione F para ingresar a la pantalla de administración de campos.

arriba mostrando la pantalla de administración de campos, en una ventana de terminal.

Los campos que se muestran tienen un asterisco ( * ) junto a ellos y están resaltados en negrita. Presione las flechas hacia arriba y hacia abajo para mover el resaltado a través de la lista de campos.

Si mueve el resaltado de la parte inferior de una columna, aparecerá en la parte superior de la siguiente (a menos que esté en la parte inferior de la última columna). Si lo mueve fuera de la parte superior de una columna, aparecerá en la parte inferior de la anterior (a menos que esté en la parte superior de la primera columna).

Movimos el resaltado a la COMMANDentrada, y luego presionamos “d” para quitar el asterisco ( *). Luego nos movimos a la UIDentrada y presionamos «d» para colocar un asterisco al lado de esa entrada. Esto significa que la COMMANDcolumna no se mostrará, pero UIDsí.

arriba mostrando la pantalla de administración de campo con la columna UID seleccionada en una ventana de terminal.

Mientras el resaltado está en la UIDcolumna, presionamos “s” para ordenar la lista de procesos en la UIDcolumna.

arriba mostrando la pantalla de administración de campo con la columna UID establecida como la columna de clasificación en una ventana de terminal.

Presione Entrar para guardar su configuración y luego presione “q” para salir de la pantalla Administración de campos.

arriba con la columna UID mostrada y configurada como columna de clasificación en una ventana de terminal.

La UIDcolumna ha reemplazado a la COMMANDcolumna y la lista de procesos está ordenada por ella.

Modo de visualización alternativo

Esto funciona mejor en modo de pantalla completa. Presione A para mostrar cuatro áreas en la lista de procesos, y luego presione “a” para moverse de un área a otra.

arriba con la pantalla alternativa activada en una ventana de terminal.

Cada área tiene una colección diferente de columnas, pero cada una también se puede personalizar a través de la pantalla Administración de campos. Esto le da la posibilidad de tener una pantalla personalizada a pantalla completa que muestra información diferente en cada área, y la capacidad de ordenar cada área por una columna diferente.

Otras pulsaciones de teclas

Las siguientes son algunas otras claves que pueden resultarle útiles top:

  • W : Guarde sus configuraciones y personalizaciones para que sigan vigentes la próxima vez que comience  top.
  • d : establece una nueva frecuencia de actualización de la pantalla.
  • Espacio : fuerza toppara actualizar su pantalla ahora mismo.

Plátano superior

Como hemos visto, toptiene todo un repertorio. Otros programas, como htop , se han inspirado en él, pero cada uno tiene su propia opinión.

Sin embargo,  top está instalado en todas partes. Cuando acude a las empresas para ver redes o servidores, a menudo le dirán que no se puede cambiar absolutamente nada en los servidores activos. El cliente crea las reglas, por lo que debe usar lo que ya está instalado.

Incluso si prefiere una herramienta de monitoreo diferente, debe conocerla top. Tarde o temprano, es probable que se encuentre en una situación en la que es todo a lo que tendrá acceso.