Isso depende da sua distribuição.
- Distribuições baseadas em aptitude (Ubuntu, Debian, etc):
dpkg -l - Distribuições baseadas em RPM (Fedora, RHEL, etc):
rpm -qa
Distribuições baseadas em - pkg * (OpenBSD, FreeBSD, etc):
pkg_info - Distribuições baseadas no Portage (Gentoo, etc):
equery listoueix -I - distribuições baseadas em pacman (Arch Linux, etc):
pacman -Q - Cygwin:
cygcheck --check-setup --dump-only * - Slackware:
slapt-get --installed
Todos eles listarão os pacotes em vez dos programas . Se você realmente deseja listar os programas, provavelmente desejará listar os executáveis no seu $PATH , o que pode ser feito assim usando o compgen :
compgen -c
Ou, se você não tiver 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