free reads /proc/meminfo and prints a summary of system memory: total, used, free, shared, buffers, cached, and swap. It is the quickest way to answer "how much RAM is in use?"
free # default output in kibibytes
free -h # human-readable (GiB/MiB)
free -m # mebibytes
free -s 5 # refresh every 5 seconds
free -t # add a Total row
Reading free correctly is a classic source of confusion: Linux aggressively uses free RAM for page cache, which shows as "used" but is instantly reclaimable. The available column is the number to watch: it is the kernel's estimate of how much memory programs can allocate without swapping.
Discussed in: