Quindi, come posso sapere quali comandi sono disponibili al momento dell'installazione?
I comandi disponibili dopo una nuova installazione di Mavericks (OS X 10.9) appartengono a uno di questi quattro pacchetti:
-
com.apple.pkg.BSD
-
com.apple.pkg.BaseSystemBinaries
-
com.apple.pkg.BaseSystemResources
-
com.apple.pkg.Essentials
(Si noti che, a partire da High Sierra (macOS 10.13), i comandi sono stati spostati in questo pacchetto com.apple.pkg.Core
.)
Puoi elencare i comandi inclusi in ogni pacchetto con questo comando:
pkgutil --files <package name> | egrep '^usr/s*bin|^s*bin/'
Sono netcat
, nc
disponibili per impostazione predefinita su Mac OS X o è installato insieme agli strumenti da riga di comando?
Ho trovato nc
con:
pkgutil --files com.apple.pkg.BaseSystemBinaries | egrep '^usr/bin/nc'
(In High Sierra, esegui invece pkgutil --files com.apple.pkg.Core | egrep '^usr/bin/nc'
.)
quindi sì, nc
appartiene all'installazione del SO di base.
Non ho trovato netcat
, quindi se lo hai sul tuo sistema è stato installato in seguito.
Per elencare tutti i comandi forniti da tutti i pacchetti, esegui in Terminale:
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
È anche possibile reindirizzare il comando a un file sul desktop per riferimento futuro:
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