Vol. I · No. 46The command line sectionSat, 10 Oct 2026
The system itself

/usr

installed programs and libraries

/usr holds the software. Nearly every program the package manager installs lands here, along with the libraries it needs and the manual pages that describe it. It is the largest directory on most systems, and it is meant to be read, not written to, in normal use.

If a command came from a package, it lives under /usr.

Holds
Software
Programs, libraries, documentation
On disk
Yes
Usually the biggest part of the system
Who writes
Package manager
apt, dnf or pacman, running as root
Name
Unix System Resources
Not “user” — a common misreading

Why it exists

Every directory at the top of the tree is there for a reason. This is the problem /usr solves.

One place for shareable software

Everything in /usr is the same on every machine running the same release. That makes it safe to mount read-only, or to share between machines.

Programs separated from data

Software sits here; its settings go in /etc and its changing data in /var. Replacing a program then never disturbs its configuration.

A place for your own builds

/usr/local mirrors the same layout for software you compile or install by hand, so the package manager never overwrites it.

What you find inside

Not everything, but the entries worth recognising. Each is marked as a directory, a file, a link or a device.

/usr
  • bindirectoryThe commands every user can run: ls, cp, grep, ssh.
  • sbindirectoryAdministration commands, mostly for root.
  • libdirectoryShared libraries and kernel modules.
  • sharedirectoryFiles that do not depend on the CPU: manual pages, icons, time zones.
  • localdirectorySoftware installed by the administrator, outside the package manager.
  • includedirectoryHeader files, needed only when compiling programs.

At the terminal

Four commands that show what this directory is doing on a real machine.

ls /usr/bin | wc -l

Count the commands installed on this machine.

which ls

Show the full path of a command — almost always somewhere under /usr.

du -sh /usr

Show how much disk space the installed software takes.

ls /usr/local/bin

List the programs installed by hand rather than from a package.

Handle with care

What goes wrong here, and what someone securing or attacking the machine looks at.

Leave it to the package manager

A file edited or deleted by hand under /usr is overwritten or missed at the next update. Install and remove software with apt, dnf or pacman.

Put your own software in /usr/local

A program you build yourself belongs in /usr/local, where updates will not touch it and it is easy to find later.

Read alongside