Vivian Voss

man: Read the Manual. It's Already Installed.

unix tooling freebsd

Technical Beauty ■ Episode 21

You have questions. Your system has answers. Rather convenient, that. Offline. Since 1971.

man curl
man git
man man

Ken Thompson wrote the first man pages for Unix Version 1. Fifty-five years later, the format remains. The philosophy remains. The utility remains. Quite remarkable, really.

One Structure. Every Tool. Always.

NAME tells you what it is. SYNOPSIS tells you how to call it. DESCRIPTION tells you what it does. OPTIONS lists the switches. EXAMPLES shows you how to use it. SEE ALSO points to related tools.

You open any man page, you know where to look. curl, git, awk, rsync: same layout. No developer quirks. No "where did they hide the options this time?" Pure, efficient, professional manuals. Always matching the release you are actually running.

Nine Sections. One Convention.

The Nine Sections 1 Commands ls, grep, curl 2 System Calls open, read, fork 3 Library Functions printf, malloc 4 Special Files /dev/null, tty 5 File Formats passwd, crontab 6 Games fortune, tetris 7 Miscellaneous ascii, signal 8 System Admin mount, fsck 9 Kernel Routines BSD man 2 open the kernel interface man 3 open the library wrapper Same name. Different section. Frightfully precise.

man 2 open gives you the kernel interface. man 3 open gives you the library wrapper. Same name. Different section. The convention eliminates ambiguity without requiring a search engine.

Forgotten Commands Worth Remembering

man -k keyword

Searches all man pages by keyword. Finds what you forgot existed. No internet required.

whatis curl

One-line description. No browser required.

The Modern Alternative

Google. Stack Overflow. docs.something.io. Requires internet. Returns SEO spam. Shows wrong versions. Opens seventeen browser tabs. Displays cookie banners. Marvellous.

man shows your installed version. Exactly. Offline. No tracking. No advertisements. No subscription required to read the documentation for software you already own.

The Uncomfortable Truth

Many modern tools ship without man pages. npm opens a browser. kubectl has its own system. cargo points to docs.rs. One might call this regression disguised as progress.

A proper man page signals professionalism and respect. Respect for the user's time. Respect for the system's conventions. Respect for fifty-five years of portable documentation.

FreeBSD ships with man pages for every base system command. Consistent. Complete. Coherent. Rather refreshing.

man is not legacy. It is the standard many younger protagonists forgot to follow.

Read the manual. It is already installed.