https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
https://unix.stackexchange.com/questions/5915/difference-between-bin-and-usr-bin
https://askubuntu.com/questions/308045/differences-between-bin-sbin-usr-bin-usr-sbin-usr-local-bin-usr-local
/sbin - Binaries needed for booting, low-level system repair, or maintenance (run level 1 or S)
/bin - Binaries needed for normal/standard system functioning at any run level.
/usr/bin - Application/distribution binaries meant to be accessed by locally logged in users
/usr/sbin - Application/distribution binaries that support or configure stuff in /sbin.
/usr/share/bin - Application/distribution binaries or scripts meant to be accesed via the web, i.e. Apache web applications
*local* - Binaries not part of a distribution; locally compiled or manually installed. There's usually never a /local/bin but always a /usr/local/bin and /usr/local/share/bin.
/bin : For binaries usable before the /usr partition is mounted. This is used for trivial binaries used in the very early boot stage or ones that you need to have available in booting single-user mode. Think of binaries like cat, ls, etc.
/sbin : Same, but for binaries with superuser (root) privileges required.
/usr/bin : Same as first, but for general system-wide binaries.
/usr/sbin : Same as above, but for binaries with superuser (root) privileges required.