Quiero enumerar solo aplicaciones en ejecución como: Firefox, gedit, Nautilus, etc. usando la línea de comando.
Nota: No quiero enumerar todos los procesos en ejecución, solo las aplicaciones que se están ejecutando (digamos GUI iniciadas manualmente).
command-line
gui
window
Pandya
fuente
fuente
Respuestas:
Una combinación de
wmctrl
yxprop
ofrece muchas posibilidades.Ejemplo 1:
El resultado podría verse en este caso similar a este:
Ejemplo 2
Ejemplo de salida:
Puede agregar la función a su
~/.bashrc
o ejecutarla desde un archivo de script.fuente
Introducción
El poder de
xdotool
ywmctrl
sale cuando necesita realizar una manipulación en las ventanas, como mover o cambiar el tamaño. Sin embargo, creo firmemente que con el propósito de enumerar solo programas en ejecución e información sobre ellos,xprop
y queqdbus
son dos herramientas e instalación suficientesxdotool
y, awmctrl
menos que el usuario quiera esas para funcionalidad adicional, es una tarea sin propósito. En esta respuesta, me gustaría presentar dos soluciones de secuencias de comandos conxprop
yqdbus
.Tenga en cuenta que de ninguna manera estoy en contra
xdotool
owmctrl
. Los he usado extensamente, pero los encuentro más poderosos cuando se combinan con otras herramientas. Aquí hay algunos ejemplos donde los he usado:Xprop
El siguiente script usa solo xprop para extraer la lista de las ventanas activas, filtrar solo las ventanas verdaderas (no el tipo de acoplamiento suck como Unity Launcher o Unity Panel) y mostrar su información:
Manifestación:
Fuente del script :
Qdbus
El siguiente código realiza esencialmente la misma tarea, sin embargo, primero filtra las aplicaciones, luego enumera sus ventanas secundarias y finalmente proporciona información sobre ellas.
Ejecución de muestra:
Código en sí:
Un comando un poco más simple pero requiere filtrar la salida usando la interfaz dbus de la pila de ventana de Unity. Aquí es esencialmente una función que tengo en mi
.mkshrc
Ejecución de muestra:
Ejemplos de uso de qdbus:
fuente
wmctrl -l
podría ser algo que quisieras. Primero instálaloTambién puede combinarlo con la lista de System Monitor, de manera predeterminada muestra "Todos mis procesos", lo que significa todos los procesos que le pertenecen como usuario.
Para tener solo nombres de aplicaciones, ejecute:
EDITAR:
fuente
0x03c000b3 0 avinash-Lenovo-IdeaPad-Z500 How list of running applications by command? - Ask Ubuntu - Mozilla Firefox
más algunas líneas adicionales sobre Desktop, Hud, etc.wmctrl -l|awk '{out=""; for(i=2;i<=NF;i++){out=$out" "$i}; print $out}'
, se agregará a mi respuesta. Gracias por señalar