Estoy tratando de hacer un pequeño comando que encuentre los procesos que usan la mayor cantidad de energía de la CPU.
Primero, uso ps aux > file.txt
y luego cut -c 16-20 file.txt | sort -n | tail -5
.
El resultado que obtengo es este:
1.0
2.7
8.
14.5
14.5
Entonces, mi pregunta es ¿cómo puedo tener tanto el %CPU
uso como los otros campos generados juntos?
bash
shell-script
sort
ps
Spyros Chiotakis
fuente
fuente
top
en su lugar?awk
. Luego, cuando esté listo para mover las cosas "a producción", debe usarlotop
en modo por lotes si es adecuado para sus necesidades.file.txt
haciendops aux|cut -c ...
Respuestas:
La respuesta correcta es:
Para los 5 mejores:
Por lo tanto, puede especificar columnas sin interferir con la ordenación.
Ex:
Nota de 'ckujau':
--sort
es compatible conps
fromprocps
, otras implementaciones pueden no tener esta opción.fuente
--sort
solo es compatible conps
fromprocps
, otras implementaciones pueden no tener esta opción.Ordenar en el campo apropiado (por defecto definido como transición de espacio en blanco a no espacio en blanco), en mi caso es el tercero:
fuente
ps
la--sort
opción.Una molestia con la solución aceptada es que los encabezados para las diferentes columnas se incluirán en la salida. Otra cuestión es que cuando se utiliza el interruptor
-x
paraps
que proporcionará las líneas de comandos completos para algunos programas, que pueden funcionar con y convertirse en una molestia en la salida.Por ejemplo
Líneas de comando molestas
¡Chrome especialmente puede ser bastante molesto cuando se mira una
ps
salida como esta!Encabezados en salida
Puede ver el encabezado mezclado en la séptima línea de la salida.
Alternativas
Deshacerse de los encabezados
ps
proporciona un interruptor para deshabilitar la visualización de estos encabezados de columna. Es bastante fácil de usar, simplemente agregue el--no-heading
interruptor.O así:
Tome el control de las columnas que se muestran.
Esto puede parecer una molestia, pero si está creando una secuencia de comandos para la captura de
ps
salida, no está tan mal. Un comando como este imitará la salida deps aux
, excepto intercambiar la forma más larga de laCOMMAND
columna con una versión más corta que solo muestre el nombre del ejecutable.Poner todo junto sin los encabezados de las columnas es mucho más fácil de manejar cuando se crean scripts.
Lista de procesos de CPU% de mayor a menor:
Lista de procesos de CPU de% más bajo a más alto:
fuente