Je veux lister uniquement les applications en cours d'exécution comme: Firefox, gedit, Nautilus, etc. en utilisant la ligne de commande.
Remarque: je ne veux pas répertorier tous les processus en cours d'exécution, uniquement les applications en cours d'exécution (par exemple, les interfaces graphiques lancées manuellement).
command-line
gui
window
Pandya
la source
la source
Réponses:
Une combinaison de
wmctrl
etxprop
offre de nombreuses possibilités.Exemple 1:
Dans ce cas, la sortie pourrait ressembler à ceci:
Exemple 2:
Exemple de sortie:
Vous pouvez ajouter la fonction à votre
~/.bashrc
ou l'exécuter à partir d'un fichier de script.la source
introduction
La puissance de
xdotool
etwmctrl
sort lorsque vous devez effectuer des manipulations sur les fenêtres, telles que le déplacement ou le redimensionnement. Cependant, je crois fermement que dans le seul but de répertorier les programmes en cours d'exécution et les informations les concernant,xprop
etqdbus
sont deux outils suffisants et l'installationxdotool
et àwmctrl
moins que l'utilisateur ne les souhaite pour des fonctionnalités supplémentaires - est une tâche inutile. Dans cette réponse, je voudrais présenter deux solutions de script avecxprop
etqdbus
.Notez que je ne suis en aucun cas contre
xdotool
ouwmctrl
. Je les ai largement utilisés moi-même, mais je les trouve plus puissants lorsqu'ils sont combinés avec d'autres outils. Voici quelques exemples où je les ai utilisés:Xprop
Le script ci-dessous utilise uniquement xprop pour extraire la liste des fenêtres actives, filtrer uniquement les vraies fenêtres (pas le type de dock suck comme Unity Launcher ou Unity Panel) et afficher leurs informations:
Démo:
Source du script :
Qdbus
Le code ci-dessous effectue essentiellement la même tâche, mais il filtre d'abord les applications, puis répertorie ses fenêtres enfants et fournit enfin des informations à leur sujet.
Exemple d'exécution:
Code lui-même:
Une commande un peu plus simple mais qui nécessite de filtrer la sortie utilise l'interface dbus de la pile de fenêtres d'Unity. Voici essentiellement une fonction que j'ai dans mon
.mkshrc
Exemple d'exécution:
Exemples d'utilisation de qdbus:
la source
wmctrl -l
pourrait être quelque chose que vous vouliez. Installez-le d'abordVous pouvez également le combiner avec la liste du Moniteur système, par défaut, il affiche "Tous mes processus", ce qui signifie tous les processus qui vous appartiennent en tant qu'utilisateur.
Pour n'avoir que les noms des applications, exécutez:
ÉDITER:
la source
0x03c000b3 0 avinash-Lenovo-IdeaPad-Z500 How list of running applications by command? - Ask Ubuntu - Mozilla Firefox
plus quelques lignes supplémentaires sur Desktop, Hud, etc.wmctrl -l|awk '{out=""; for(i=2;i<=NF;i++){out=$out" "$i}; print $out}'
ajoutera ma réponse. Merci d'avoir souligné.