Entonces, ¿cómo puedo saber qué comandos están disponibles en el momento de la instalación?
Los comandos disponibles tras una nueva instalación de Mavericks (OS X 10.9) pertenecen a uno de estos cuatro paquetes:
com.apple.pkg.BSD
com.apple.pkg.BaseSystemBinaries
com.apple.pkg.BaseSystemResources
com.apple.pkg.Essentials
(Tenga en cuenta que, a partir de High Sierra (MacOS 10.13), los comandos se han trasladado a este paquete com.apple.pkg.Core
.)
Puede listar los comandos incluidos en cada paquete con este comando:
pkgutil --files <package name> | egrep '^usr/s*bin|^s*bin/'
Son netcat
, nc
disponible por defecto en Mac OS X o se instala junto con las herramientas de línea de comandos?
He encontrado nc
con:
pkgutil --files com.apple.pkg.BaseSystemBinaries | egrep '^usr/bin/nc'
(En High Sierra, ejecute pkgutil --files com.apple.pkg.Core | egrep '^usr/bin/nc'
en su lugar).
así que sí, nc
pertenece a la instalación del SO base.
No pude encontrar netcat
por lo que si lo tienes en tu sistema es que se instaló más tarde.
Para listar todos los comandos proporcionados por todos los paquetes, ejecútelos en Terminal:
for p in $(pkgutil --packages); do
list_of_cmds=$(pkgutil --files $p | egrep '^usr/s*bin|^s*bin/')
if [ ! -z "$list_of_cmds" ]; then
echo ">>>> $p <<<<"
echo "$list_of_cmds"
fi
done
También puede transferir el comando a un archivo de su escritorio para consultarlo más tarde:
for p in $(pkgutil --packages); do
list_of_cmds=$(pkgutil --files $p | egrep '^usr/s*bin|^s*bin/')
if [ ! -z "$list_of_cmds" ]; then
echo ">>>> $p <<<<"
echo "$list_of_cmds"
fi
done > ~/Desktop/cmds_from_pkgs.txt