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 list
oueix -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