I’ve been using this tool for years, how didn’t I know about this?!

Or more importantly, how did your friend know it?

Knowing your tools is invaluable. Here are some resources I use both to discover new tools and techniques, and to remember how to use them.

Man pages

On a Unix system, the man command is essential. It documents most any command, configuration file, C API, and driver on your system. A man page is a reference for how to use the subject, and often has an example, and related commands, files and environment variables.

The interface is handled by your pager, which on most systems will be less. Press H for help on how to move around.

Get started: man man, man ls.

Built in help

Some of the more powerful tools come with their own built in interactive manual. For instance, :help in Vim and C-h r. Every key and feature will have a page here. Additionally, these tools allow you to search by key, function name etc.

Get started (Vim): :help :help, :help i_ctrl-o.

Get started (Emacs): C-h r, C-h h.

Online documentation

Every modern platforms and applications host their documentation on the web. Find it using your search engine of choice. If you are developing for the web, developer.mozilla.org is indispensable. If you use FreeBSD, you have hopefully read the excellent FreeBSD handbook.

Get started: https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching.