top similar explained alternative linux unix process top-command

similar - comando top-c en linux para filtrar los procesos enumerados en base al nombre de proceso



top show process (8)

top -c

Arriba enumera todos los procesos, hay buenas opciones para filtrar los procesos por nombre de usuario utilizando la opción -u, pero me pregunto si hay alguna manera fácil de filtrar los procesos en función del nombre de proceso enumerado en la columna COMANDO del resultado superior.

Por ejemplo, me gustaría la opción top-some -substring of processname y top displays pids que solo tienen esta subcadena en su nombre de comando


Después de buscar tantas respuestas en , no he visto una respuesta que se ajuste a mis necesidades.

Es decir, hacer un comando superior para seguir actualizando con la palabra clave dada, y no tenemos que presionar CTRL + C / top una y otra vez cuando se generan nuevos procesos.

Así que hago uno nuevo ...

Aquí va la versión sin reinicio necesario.

__keyword=name_of_process; (while :; do __arg=$(pgrep -d'','' -f $__keyword); if [ -z "$__arg" ]; then top -u 65536 -n 1; else top -c -n 1 -p $__arg; fi; sleep 1; done;)

Modifique la __palabra clave y debería funcionar. (Ubuntu 2.6.38 probado)

2.14.2015 agregado: Falta la parte de la carga de trabajo del sistema con el código anterior. Para las personas que se preocupan por la parte de "promedio de carga":

__keyword=name_of_process; (while :; do __arg=$(pgrep -d'','' -f $__keyword); if [ -z "$__arg" ]; then top -u 65536 -n 1; else top -c -n 1 -p $__arg; fi; uptime; sleep 1; done;)


El comando de @ perreal funciona muy bien! Si lo olvida, intente en dos pasos ...

ejemplo: filtro superior para mostrar solo la aplicación llamada yakuake:

$ pgrep yakuake 1755 $ top -p 1755

útiles comandos interactivos superiores ''c'': alternar ruta completa vs. nombre de comando ''k'': matar por PID ''F'': filtrar por ... seleccionar con flechas ... luego presionar ''s'' para establecer el tipo

la respuesta a continuación también es buena ... Estaba buscando eso hoy, pero no pude encontrarlo. Gracias


La mayoría de las respuestas fallan aquí, cuando la lista de procesos supera los 20 procesos. Ese es el límite top -p opción top -p . Para aquellos con un superior antiguo que no admite el filtrado con o opciones, aquí hay un ejemplo de secuencias de comandos para obtener una pantalla completa / salida de consola (falta información de resumen de esta salida).

__keyword="YOUR_FILTER" ; ( FILL=""; for i in $( seq 1 $(stty size|cut -f1 -d" ")); do FILL=$''/n''$FILL; done ; while :; do HSIZE=$(( $(stty size|cut -f1 -d" ") - 1 )); (top -bcn1 | grep "$__keyword"; echo "$FILL" )|head -n$HSIZE; sleep 1;done )

Algunas explicaciones

__keyword = your grep filter keyword HSIZE=console height FILL=new lines to fill the screen if list is shorter than console height top -bcn1 = batch, full commandline, repeat once


Puede agregar filtros en la top mientras se está ejecutando, simplemente presione la tecla oy luego escriba una expresión de filtro. Por ejemplo, para monitorear todos los procesos java use la expresión de filtro COMMAND=java . Puede agregar varios filtros al presionar la tecla nuevamente, puede filtrar por usuario con la tecla u , y puede borrar todos los filtros con la tecla = .


Se puede hacer de forma interactiva

Después de ejecutar top -c , presione o y escriba un filtro en una columna, por ejemplo, para mostrar las filas donde la columna COMMAND contiene la cadena foo, escriba COMMAND=foo

Si solo quieres un producto básico, esto podría ser suficiente:

top -bc |grep name_of_process


Terminé usando un script de shell con el siguiente código:

#!/bin/bash while [ 1 == 1 ] do clear ps auxf |grep -ve "grep" |grep -E "MSG[^/ ]*" --color=auto sleep 5 done


Usando pgrep para obtener pid''s de líneas de comando coincidentes:

top -c -p $(pgrep -d'','' -f string_to_match_in_cmd_line)

top -p espera una lista de pids separada por comas, por lo que usamos -d'','' en pgrep. El indicador -f en pgrep lo hace coincidir con la línea de comando en lugar del nombre del programa.


que tal esto?

top -c -p <PID>