Linux and its *bin folders
/sbin) were intended for programs that needed to be on a small
/ partition before the larger
/usr, etc. partitions were mounted. These days, it mostly serves as a standard location for key programs like
/bin/sh, although the original intent may still be relevant for e.g. installations on small embedded devices.
/sbin, as distinct from
/bin, is for system management programs (not normally used by ordinary users) needed before
/usr is mounted.
/usr/bin is for distribution-managed normal user programs.
There is a
/usr/sbin with the same relationship to
/sbin has to
/usr/local/bin is for normal user programs not managed by the distribution package manager, e.g. locally compiled packages. You should not install them into
/usr/bin because future distribution upgrades may modify or delete them without warning.
/usr/local/sbin, as you can probably guess at this point, is to
For more information check: