Jak mohu uvést programy, které byly dodány s mou distribucí, a programy, které jsem nainstaloval ručně?
To záleží na vaší distribuci.
dpkg -l
rpm -qa
pkg_info
equery list
nebo eix -I
pacman -Q
cygcheck --check-setup --dump-only *
slapt-get --installed
Ve všech těchto budou uvedeny balíčky spíše než programy . Pokud opravdu chcete seznam programů, pravděpodobně budete chtít uvést spustitelné soubory ve vašem $PATH
, což lze provést pomocí bash's compgen
:
compgen -c
Nebo pokud nemáte 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
Odpověď na druhou část otázky (do Chrisova odpověď pro první část) se opravdu nic nedá přidat:
Obecně existuje žádný způsob výpisu ručně nainstalovaných programů a jejich součástí. Pokud jste správce balíčků nepoužili, není to nikde zaznamenáno. Vše, co můžete udělat, je najít binární soubory na standardních místech (jako navrhl Chris) a podobným způsobem hádat kde některé knihovny nebo některé manuálové stránky atd. pocházejí. Proto byste měli vždy, když je to možné, instalovat programy pomocí správce balíků .
Programy by měly být dostupné prostřednictvím PATH, takže stačí uvést vše, co je na cestě:
ls ${PATH//:/ }
Očekávejte výsledek asi 3 až 4 000 programů.
Chcete-li vyloučit pravděpodobnou menšinu falešných poplachů, můžete přístup vylepšit:
for d in ${PATH//:/ } ; do
for f in $d/* ; do
test -x $f && test -f $f && echo $f
done
done
To pro mě nic nezměnilo.
Všechny ostatní odpovědi (dosud) se zabývají balíčky a binárními soubory. Pokud máte na mysli „desktopové aplikace“, které se objevují ve vaší nabídce Start, můžete vyzkoušet:
ls /usr/share/applications | awk -F '.desktop' ' { print $1}' -
Další řešení v další otázka .