Entonces, ¿cómo puedo saber qué comandos están disponibles en el momento de la instalación?
Los comandos disponibles después de 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 movido 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/'
¿Están netcat
, nc
disponibles de forma predeterminada en Mac OS X o se instalan junto con las herramientas de línea de comandos?
Encontré nc
con:
pkgutil --files com.apple.pkg.BaseSystemBinaries | egrep '^usr/bin/nc'
(En High Sierra, ejecuta pkgutil --files com.apple.pkg.Core | egrep '^usr/bin/nc'
en su lugar.)
así que sí, nc
pertenece a la instalación del sistema operativo base.
No pude encontrar netcat
, así que si lo tienes en tu sistema, se instaló más tarde.
Para enumerar todos los comandos proporcionados por todos los paquetes, ejecute 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 canalizar el comando a un archivo en su escritorio para referencia futura:
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