Jak wyświetlić listę obu programów dostarczonych z moją dystrybucją i tych, które zainstalowałem ręcznie?
Jak wyświetlić listę obu programów dostarczonych z moją dystrybucją i tych, które zainstalowałem ręcznie?
Odpowiedzi:
To zależy od twojej dystrybucji.
dpkg -l
rpm -qa
pkg_info
equery list
Lubeix -I
pacman -Q
cygcheck --check-setup --dump-only *
slapt-get --installed
Wszystkie będą jednak wyświetlać listę pakietów, a nie programów . Jeśli naprawdę chcesz wyświetlić listę programów, prawdopodobnie chcesz wymienić pliki wykonywalne w swoim pliku $PATH
, co można zrobić w ten sposób, używając bash compgen
:
compgen -c
Lub jeśli nie masz 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
.
Odpowiedź na drugą część pytania (tak naprawdę nie należy dodawać odpowiedzi Chrisa w pierwszej części) :
Zasadniczo nie ma możliwości wyświetlenia listy ręcznie zainstalowanych programów i ich składników. Nie jest to nigdzie rejestrowane, jeśli nie korzystasz z menedżera pakietów. Wszystko, co możesz zrobić, to znaleźć pliki binarne w standardowych lokalizacjach (jak sugerował Chris) i w podobny sposób zgadnij, skąd pochodzą niektóre biblioteki lub niektóre strony podręcznika itp. Dlatego, o ile to możliwe, należy zawsze instalować programy przy użyciu menedżera pakietów .
Programy powinny być osiągalne poprzez PATH, więc po prostu wypisz wszystko na ścieżce:
ls ${PATH//:/ }
Oczekuj wyniku około 3k-4k programów.
Aby wykluczyć prawdopodobną mniejszość fałszywych trafień, możesz udoskonalić to podejście:
for d in ${PATH//:/ } ; do
for f in $d/* ; do
test -x $f && test -f $f && echo $f
done
done
Nie miało to dla mnie znaczenia.
$PATH
itp.).
Wszystkie pozostałe odpowiedzi (jak dotąd) dotyczą pakietów i plików binarnych. Jeśli masz na myśli „aplikacje komputerowe”, te, które pojawiają się w menu Start, możesz spróbować:
ls /usr/share/applications | awk -F '.desktop' ' { print $1}' -
Więcej rozwiązań w innym pytaniu .