Yaky's

Linux directories

Short overview of common Linux directories and their intended uses.

/bin

Originally intended for programs that needed to be on a small root partition (/) before the larger partitions (/usr, etc.) were mounted. This is still relevalnt for embedded devices.
On regular devices, serves as a standard location for key programs like /bin/sh.

/sbin

Same as /bin, but for system management programs that are not normally ran by users.

/usr/bin

For normal user programs managed by the distribution or package manager. Any changes made here can be overwritten or deleted by the package manager.

/usr/sbin

For system management programs managed by the distribution package manager.

/usr/local/bin

For normal user programs NOT managed by the distribution package manager (e.g. locally compiled packages).

/usr/local/sbin

For system management programs NOT managed by the distribution package manager.

~/.local/bin

For programs that are available only for the current user.

/etc

For configuration files.

/opt

For "optional" software NOT managed by the distribution package manager. Unlike the regular *nix-style software where executables, libraries, and configuration files are stored in corresponding directories, software directory under /opt (e.g: /opt/myapplication) contains everything in the same directory.