Wie liste ich sowohl die mit meiner Distribution gelieferten als auch die manuell installierten Programme auf?
Wie liste ich sowohl die mit meiner Distribution gelieferten als auch die manuell installierten Programme auf?
Antworten:
Das hängt von Ihrer Distribution ab.
dpkg -l
rpm -qa
pkg_info
equery list
odereix -I
pacman -Q
cygcheck --check-setup --dump-only *
slapt-get --installed
In all diesen Fällen werden jedoch die Pakete und nicht die Programme aufgelistet. Wenn Sie die Programme wirklich auflisten möchten, möchten Sie wahrscheinlich die ausführbaren Dateien in Ihrem auflisten $PATH
, was mit bashs wie folgt geschehen kann compgen
:
compgen -c
Oder wenn Sie nicht haben compgen
:
#!/bin/bash
IFS=: read -ra dirs_in_path <<< "$PATH"
for dir in "${dirs_in_path[@]}"; do
for file in "$dir"/*; do
[[ -x $file && -f $file ]] && printf '%s\n' "${file##*/}"
done
done
rpm -qa
dkpg -l | grep ^ii
.
Beantwortung des zweiten Teils der Frage ( Chris 'Antwort für den ersten Teil ist eigentlich nichts hinzuzufügen ) :
Es gibt im Allgemeinen keine Möglichkeit, manuell installierte Programme und deren Komponenten aufzulisten. Dies wird nirgendwo aufgezeichnet, wenn Sie keinen Paketmanager verwendet haben. Alles , was Sie tun können , ist die Binärdateien in Standardspeicherorten (wie Chris vorgeschlagen) und in ähnlicher Weise erraten , wo einige Bibliotheken oder einige von Handbuchseiten usw. kam. Aus diesem Grund sollten Sie Programme nach Möglichkeit immer mit Ihrem Paketmanager installieren .
Die Programme sollten über PATH erreichbar sein, listen Sie also einfach alles auf, was sich im Pfad befindet:
ls ${PATH//:/ }
Erwarten Sie ein Ergebnis von ca. 3k-4k Programmen.
Um eine wahrscheinliche Minderheit von Fehlalarmen auszuschließen, können Sie den Ansatz verfeinern:
for d in ${PATH//:/ } ; do
for f in $d/* ; do
test -x $f && test -f $f && echo $f
done
done
Es machte keinen Unterschied für mich.
$PATH
usw.).
Alle anderen Antworten befassen sich (bisher) mit Paketen und Binärdateien. Wenn Sie "Desktop-Anwendungen" meinen, die in Ihrem Startmenü angezeigt werden, können Sie Folgendes versuchen:
ls /usr/share/applications | awk -F '.desktop' ' { print $1}' -
Weitere Lösungen in einer anderen Frage .