Overview
In this article, I want to share with you how to create your own cheatsheets in
Bash and bootstrap your productivity. As a developer, we spend a lot of time in
our terminal. It is essential to remember the commands that are frequently used.
While each command has its manual page (man <command>
) or help option
(<command> --help
), it is difficult to make them completely relevant to your need.
Also, you cannot add examples that are specific to your work context. That is
why I wrote this short article to explain what I discovered recently.
Create Bash Cheatsheet
Create a bash script using your initials followed by the actual command.
I use “mc-*” for all cheatsheets in general and “mc-curl” for cURL in
particular. I chose echo
with option -e
here, which enables interpretation
of backslash escapes, so that colors can be added. Using cat
won’t work with
colors.
#!/bin/bash
echo -e "cURL Commands
-------------
Encode query parameter via option --data-urlencode. This is useful
when the parameter is too long, and you want to delegate the URL encoding
to curl. For GET request, -G or --get is necessary, which will make
all data specified with -d, --data, --data-binary, or --data-urlencode
to be used in an HTTP request instead of the POST request. The data
will be appended to the URL with a '?' separator.
curl -G https://example.com/search --data-urlencode \"query=SELECT * FROM table\"
Use option -o, --output <file> to write HTTP response body to file
instead of stdout. For a single file, you can use -O instead of
-o <file> to use the last segment of the URL path as the filename.
The file will be saved in the current working directory. If you want
the file saved in a different directory, make sure you change the
current working directory before invoking curl with this option.
curl https://mincong.io/feed.xml -o feed.xml
curl https://mincong.io/feed.xml -O
"
My recommendation is to store all the cheatsheets into a single directory so
that they can be exported all together in the PATH. Once done, export the
directory to environment variable PATH in your .bashrc
, .bash_profile
or
other bash files so that you can type the command everywhere in your shell:
export PATH="/path/to/cheatsheets:${PATH}"
It will look like:
The description here is perhaps too long. The detail level to expose really depends on yourself.
Getting Colors
You can also add some colors to the cheatsheet: to highlight important keywords, make descriptions look less important than actual commands, etc. My coloring solution comes from Drew Noakes’ solution on Stack Overflow question: “How to change the output color of echo in Linux” My preference is to use bold gray colors for headers, normal gray colors for description and black for commands. Then, highlight one or two keywords about the command. Here is the screenshot of the final result:
Going Further
You may also want to try https://cheat.sh, which contains many cheatsheets,
use it via curl: curl cheat.sh/<command>
. But overall, I think the most
efficient solutions remain the manual page (man <command>
) or reading
the usage of your command (<command> -h
) or the sub-command
(<command> <subcommand> -h
).
Conclusion
In this article, we saw how to create your own cheatsheets to bootstrap your productivity in the command line. Interested to know more? You can subscribe to the feed of my blog, follow me on Twitter or GitHub. Hope you enjoy this article, see you the next time!
References
- Drew Noakes, “How to change the output color of echo in Linux?”, Stack Overflow, 2014. https://stackoverflow.com/a/20983251/4381330