UPDATE: As of 2025, the accepted answer is out-of-date. Here's a more up-to-date answer.
Breaking it down, there's two answers: historical and modern.
/*vs/usr/*: today,/binand/sbintypically link to (or from) their/usr/binand/usr/sbinsiblings, effectively making them synonyms. In the past,/binand/sbinwere separate because of files needed at startup;/binand/sbinincluded files needed early in the startup process (as/usrwas sometimes mounted later on).*/binvs*/sbin: today, thesbinfolders are usually just links tobin. Historically, thesin/sbinstood for system, and referred to core system programs, which are usually called by the system rather than the user (think drivers, not Chrome)./usr/*vs/usr/local/*:/usr/*programs are installed and owned by the distribution's package manager (e.g.aptorpacman)./usr/local/*is used for user-owned programs, e.g. locally compiled packages, that aren't owned by your package manager./optis mostly for packages that don't play by Unix filepath conventions.