Ich möchte nur laufende Anwendungen wie Firefox, gedit, Nautilus usw. über die Befehlszeile auflisten.
Hinweis: Ich möchte nicht alle laufenden Prozesse auflisten, sondern nur Anwendungen, die ausgeführt werden (z. B. manuell gestartete GUIs).
command-line
gui
window
Pandya
quelle
quelle
Antworten:
Eine Kombination aus
wmctrl
undxprop
bietet viele Möglichkeiten.Beispiel 1:
Die Ausgabe könnte in diesem Fall ähnlich aussehen:
Beispiel 2:
Ausgabebeispiel:
Sie können die Funktion zu Ihrer hinzufügen
~/.bashrc
oder sie über eine Skriptdatei ausführen.quelle
Einführung
Die Leistung von
xdotool
undwmctrl
wird ausgeschaltet, wenn Sie Manipulationen an den Fenstern vornehmen müssen, z. B. Verschieben oder Ändern der Größe. Ich bin jedoch der festen Überzeugung, dass es eine zwecklose Aufgabe ist, nur laufende Programme und Informationen über diese aufzulistenxprop
undqdbus
zwei ausreichende Tools und Installationen bereitzustellen,xdotool
und eswmctrl
sei denn, der Benutzer möchte diese für zusätzliche Funktionen. In dieser Antwort möchte ich zwei Skriptlösungen mitxprop
und vorstellenqdbus
.Beachten Sie, dass ich keineswegs gegen
xdotool
oder binwmctrl
. Ich habe sie selbst ausgiebig verwendet, finde sie aber in Kombination mit anderen Tools leistungsfähiger. Hier sind nur einige Beispiele, wo ich sie verwendet habe:Xprop
Das folgende Skript verwendet nur xprop, um eine Liste der aktiven Fenster zu extrahieren, nur echte Fenster herauszufiltern (kein Dock-Typ saugt als Unity Launcher oder Unity Panel) und deren Informationen anzuzeigen:
Demo:
Script Quelle :
Qdbus
Der folgende Code führt im Wesentlichen dieselbe Aufgabe aus, filtert jedoch zuerst Anwendungen heraus, listet dann die untergeordneten Fenster auf und stellt schließlich Informationen zu diesen bereit.
Probelauf:
Code selbst:
Ein etwas einfacherer Befehl, der jedoch das Herausfiltern der Ausgabe erfordert, verwendet die Fensterstapel-dbus-Schnittstelle von Unity. Hier ist im Wesentlichen eine Funktion, die ich in meinem habe
.mkshrc
Probelauf:
Beispiele für die Verwendung von qdbus:
quelle
wmctrl -l
könnte eine Sache sein, die Sie wollten. Installieren Sie es zuerstSie können es auch mit der Liste des Systemmonitors kombinieren. Standardmäßig wird "Alle meine Prozesse" angezeigt, dh alle Prozesse, die Ihnen als Benutzer gehören.
Führen Sie Folgendes aus, um nur die Namen der Anwendungen zu erhalten:
BEARBEITEN:
quelle
0x03c000b3 0 avinash-Lenovo-IdeaPad-Z500 How list of running applications by command? - Ask Ubuntu - Mozilla Firefox
plus einige zusätzliche Zeilen über Desktop, Hud usw.wmctrl -l|awk '{out=""; for(i=2;i<=NF;i++){out=$out" "$i}; print $out}'
, wird zu meiner Antwort hinzufügen. Vielen Dank für den Hinweis.