Command line tools available by default

So how can I know which commands are available at the time of installation?

Commands available after a fresh install of Mavericks (OS X 10.9) belong to one of these four packages:

  • com.apple.pkg.BSD
  • com.apple.pkg.BaseSystemBinaries
  • com.apple.pkg.BaseSystemResources
  • com.apple.pkg.Essentials

(Note that, as of High Sierra (macOS 10.13), commands have moved to this package com.apple.pkg.Core.)

You can list the commands included in every package with this command:

pkgutil --files <package name> | egrep '^usr/s*bin|^s*bin/'

Are netcat, nc available by default on Mac OS X or is that installed along with command line tools?

I found nc with:

pkgutil --files com.apple.pkg.BaseSystemBinaries | egrep '^usr/bin/nc'

(On High Sierra, run pkgutil --files com.apple.pkg.Core | egrep '^usr/bin/nc' instead.)

so yes, nc belongs to the base OS installation.

I couldn't find netcat, so if you have it on your system it was installed later.


To list all commands provided by all packages, run in 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

You can also pipe the command to a file on your Desktop for later reference:

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

netcat is part of the Base System Binaries as you can see with

pkgutil --files com.apple.pkg.BaseSystemBinaries | grep "usr/bin/nc"