Local Help

man and help are your friends.

Programming is complicated, and we all occasionally need help to learn how something works or how to go about a task. If you're trying to figure out how to use a tool or command, your first stop may be a Google search followed by Stack Overflow. But I don't think that should necessarily be the first stop. There is a wealth of help available right on your local machine, right from your terminal.

If you're trying to use a terminal command or tool, you have a couple of options. You can try typing --help after the command for a summary of the command's functionality. Or you can type man <command> to bring up the man page for that command. A man page is a manual page that details all of a command's functionality. In fact, many Stack Overflow answers draw their information from man pages.

Many large tools also have their own internal help systems. vim has the builtin :help command that presents help on any argument given. git provides a help command as well, which will bring you to the appropriate place in the rather large set of git man pages for the argument your provide. A final example is gdb, which also supplies a handy help command to learn about all of the gdb commands.

I'm a big fan of discovering and learning about new tools. For anyone else who also enjoys doing so, I recommend something like zsh-syntax-highlighting. This provides a functionality similar to fish by highlighting real commands in green and non-commands in red as you type them. It's super useful both for knowing when you've got a command right and for stumbling across commands that you didn't know existed.

When you're next in doubt about some functionality, instead of jumping right to the Internet, try using your local resources first. You might even learn some additional details about the tool that you'll find useful later.