You type a command and the terminal refuses to cooperate
You run systemctl enable --now myservice and the shell replies with Failed to enable unit: Unit myservice.service not found. You know the service exists. You just do not know which flag tells systemd to ignore missing dependencies, or how to verify that the unit file is actually loaded. You run systemctl --help, but the output scrolls past in two seconds. You need the documentation, and you need it now.
What's actually happening
Fedora ships with three layers of documentation baked directly into the system. The --help flag prints a quick summary compiled into the binary. Manual pages provide structured, sectioned reference material for commands, configuration files, and system calls. GNU info pages offer hypertext documentation with cross-references, usually for larger toolchains. Upstream projects also drop raw README files, changelogs, and license texts in /usr/share/doc. Knowing which layer to query saves you from guessing flags and prevents configuration drift.
The manual page system divides documentation into numbered sections. Section 1 covers user commands. Section 5 documents configuration file formats. Section 8 holds system administration and daemon commands. When you run man passwd, the system defaults to section 1. When you run man 5 passwd, you get the format for /etc/passwd. The numbering prevents name collisions and keeps reference material organized by function rather than by project.
Manual pages are not live web pages. They are preformatted text files stored in /usr/share/man. The system indexes them into a whatis database so keyword searches return instantly. The info system uses Texinfo markup and provides a menu-driven interface with internal links. The /usr/share/doc directory contains unformatted upstream files that developers drop during package build time. Each layer serves a different workflow.
Check the documentation layer that matches your immediate goal. Guessing flags breaks systems faster than reading the reference.
The fix or how-to
Start with --help when you need a quick flag check. It runs instantly and stays in your terminal history.
systemctl --help
# WHY: Prints compiled usage summary without spawning a pager
# WHY: Shows only the most common flags and subcommands
# WHY: Fails silently if the binary does not support the flag
Switch to man when you need the full reference. The man command pipes formatted text into a pager, usually less. The pager lets you search, scroll, and jump without losing your terminal state.
man systemctl
# WHY: Opens the full manual page for the command
# WHY: Loads section 1 by default for user commands
# WHY: Passes output to the system pager for navigation
Navigate inside the pager using keyboard shortcuts. Press j or the down arrow to move forward. Press k or the up arrow to move back. Type / followed by a keyword to search forward. Press n to jump to the next match. Press q to quit and return to your shell. The pager remembers your position if you reopen the same page in the same session.
Use section numbers when the command name overlaps with a configuration file or a system call.
man 5 fstab
# WHY: Forces the pager to load section 5 for file formats
# WHY: Prevents confusion with section 8 daemon references
# WHY: Shows mount options and filesystem type syntax
Search across all installed manual pages when you know the concept but not the command name.
man -k firewall
# WHY: Queries the whatis database for matching keywords
# WHY: Returns a list of commands and their one-line descriptions
# WHY: Equivalent to the apropos command
Install missing documentation when a package strips its man pages to save space. Fedora core packages include documentation by default, but some third-party or minimal builds omit them.
sudo dnf install man-pages
# WHY: Pulls the base collection of standard manual pages
# WHY: Ensures section numbers and formatting conventions are present
# WHY: Runs as a regular package transaction with dependency resolution
Check /usr/share/doc for upstream README files, changelogs, and license texts. These files are not formatted for the terminal pager. They contain raw project documentation that ships with the package.
ls /usr/share/doc/firewalld/
# WHY: Lists all documentation files installed by the package
# WHY: Shows README, CHANGELOG, and LICENSE files
# WHY: Helps you find upstream notes that man pages omit
Open GNU info pages when you are working with core utilities that use the Texinfo documentation system. The info command provides a hypertext interface with menu navigation and cross-references.
info coreutils
# WHY: Opens the hypertext documentation for GNU core utilities
# WHY: Provides a menu-driven interface instead of linear scrolling
# WHY: Links related topics directly within the document
Read the manual page before you edit configuration files. The section 5 pages define valid syntax and default values.
Verify it worked
Confirm you are reading the correct documentation by checking the page header. Manual pages display the section number and the package version in the top right corner. The footer shows the date and the manual section. If the version number does not match your installed package, you are reading cached or outdated documentation. Run rpm -q <package> to verify the installed version, then cross-reference it with the man page header.
Check that your pager is actually less. Fedora defaults to less for terminal navigation. If you see more or most in your output, your environment variables are overriding the default. Set PAGER=less in your shell profile to restore standard navigation behavior.
Run man -w <command> to print the absolute path of the manual page file. This confirms which section the system selected and helps you locate the source file if you need to inspect the raw markup.
Verify the whatis database matches your installed packages. Run man -f <keyword> to test keyword indexing. The command returns the same results as man -k but uses a different internal lookup path. Both should return consistent entries.
Trust the pager header. If the version does not match your rpm output, rebuild the database before continuing.
Common pitfalls and what the error looks like
The man command will print No manual entry for <command> when the package does not ship documentation or the man database is out of sync. Run mandb as root to rebuild the whatis database. The command scans /usr/share/man and /usr/local/share/man and indexes every formatted page.
sudo mandb
# WHY: Rebuilds the whatis database for keyword searches
# WHY: Indexes newly installed manual pages
# WHY: Fixes missing entries after package updates
You will see man: command not found on minimal server installs that exclude the man-db package. Install it with sudo dnf install man-db man-pages. The package provides the man binary, the pager integration, and the database tools.
Section conflicts appear when a command name exists in multiple sections. The system defaults to the first matching section. If you need a different section, specify the number explicitly. The pager will warn you with What manual page do you want? if the name is ambiguous.
The --help flag sometimes hides advanced options. Developers compile --help to show only the flags they expect users to touch. Advanced configuration, debugging flags, and deprecated options live in the manual page under the OPTIONS or ENVIRONMENT sections. Relying solely on --help leaves you blind to system-level controls.
You may encounter a pager that refuses to quit. The less command waits for q to exit. If you accidentally press z or space, you page forward instead of exiting. Press q once. If the terminal appears frozen, press Ctrl+C to break the pager process and return to the shell.
The apropos command will return apropos: command not found on systems where the man-db package was installed but the whatis database was never built. Run mandb first. The database must exist before keyword searches work.
No manual entry for podman-compose
This exact error appears when you install a tool from a third-party repository that does not ship man pages. Install the documentation package separately or check /usr/share/doc/podman-compose/ for upstream notes.
Rebuild the database after every major package update. Stale indexes waste more time than they save.
When to use this vs alternatives
Use --help when you need a quick flag check and want the output to stay in your terminal history. Use man when you need the complete reference, configuration syntax, or environment variable details. Use info when you are working with GNU core tools and want hypertext cross-references. Use /usr/share/doc when you need upstream changelogs, license texts, or project-specific notes. Use the Fedora documentation site when you need step-by-step guides, release notes, or architecture overviews.
Pick the documentation layer that matches your immediate task. Switch layers when the first one runs out of details.