Ich möchte eine Liste aller Anwendungen erhalten, die derzeit auf meinem Computer ausgeführt werden, und zwar über die Befehlszeile. Es sollte dem ähnlich sein, was Sie erhalten, wenn Sie den Aktivitätsmonitor öffnen und die Liste speichern.
Mir ist das aufgefallen ps -a
Befehl führt etwas Ähnliches aus, schneidet jedoch die Namen der Prozesse ab.
Ich interessiere mich nur für den Namen der Prozesse, daher brauche ich nicht alle Spalten, die Activity Monitor ausgibt.
Aktualisieren: Ich hätte klarer sein sollen ... Ich möchte nicht, dass der gesamte Pfad zum Prozess angezeigt wird. Ich möchte nur den Namen des Prozesses, wie er im Aktivitätsmonitor angezeigt wird. Zum Beispiel, ps
verursacht lanchd
angezeigt werden als /sbin/launchd
und nicht so, wie er im Aktivitätsmonitor angezeigt wird (d. h lanchd
). Dies ist ein Problem, da Prozesse mit sehr langen Pfaden (abhängig von der Größe meines Terminalfensters) abgeschnitten werden und ich den Prozessnamen nicht einmal sehen kann.
quelle
-bash
.sort
.xargs
und zeigt keine Fehlermeldung an (was eine gute Sache ist). Außerdem verwendet es einen einfacheren Befehl, danke.Richtiger Befehl, falsche Flaggen.
ps -Ao comm
wenn Sie nur Prozessnamen wünschen.ps -Ao command
wenn Sie Prozessnamen mit Argumenten wünschen.quelle
launchd
imps
wird als angezeigt/sbin/launchd
. Es ist kein Problem für diesen Prozess, aber es ist ein Problem für diejenigen, die in vielen Ordnern verschachtelt sind. Gibt es eine Möglichkeit, nur den Namen des Prozesses ohne Pfad zu ermitteln?Sie haben erwähnt, dass Sie es in einer Datei speichern möchten. Verwenden Sie im einfachsten Fall denjenigen, um den Sie sich am meisten Sorgen machen
Dadurch wird eine Liste aller laufenden Prozesse (mit dem vollständigen Namen) an die durch den Pfad angegebene Datei gedruckt. Das "& gt;" Leitet die Druckausgabe (im Überschreibmodus) auf die Datei um. Einfach ausgeben
ps ax
wird es auf dem Bildschirm ausdrucken.Tipp: Wenn Sie kein vollständiges Verzeichnis eingeben möchten, ziehen Sie einen Ordner an das Terminal, um den Pfad für Sie abzurufen, und füllen Sie den Dateinamen manuell aus
Falls Sie am Ende einige der anderen Spalten haben wollten ... Überprüfen Sie auch die Manpage für ps, indem Sie tippen
man ps
in der Befehlszeile und schauen Sie sich andere Optionen an. Hier ist ein weiteres Beispiel, in dem die CPU-Auslastung und der Arbeitsspeicher für jeden Prozess (in Prozent) gefolgt vom Befehl (Prozess) gedruckt werden:Benutzen
BEARBEITEN
Um zu drucken gerade Für den Befehl gibt es wahrscheinlich dauerhaftere Ansätze, aber zur Not würde ich einfach folgendes tun. Sie werden wahrscheinlich am Ende ein bisschen Cruft bemerken, der sich auf Saiten bezieht, für die dies nicht gedacht ist
basename
(mögen-bash
), aber der Rest von dem, was Sie wollen, wird mit diesem Quickie da sein.HINWEIS: Einige Prozesse, die ausgeführt werden, sind nicht unbedingt ausführbare Namen. Sie könnten ein direkter Anruf sein
sh
mit einer Folge von Befehlen, die folgen.quelle
/sbin/launchd
sollte es nur ausgebenlaunchd
.ps ax
zubasename
überxargs
. Siehe Bearbeiten für weitere Details.sort
auch. Der letzte Befehl lautet also:ps ax -o comm | xargs -I % basename % | sort