title: "Cheatsheets to Stay Productive in the Command Line" date: November 3, 2019 --- <p> To stay productive in the command line, I maintain a personal <a href="https://gitlab.com/m-chrzan/cheatsheets">"cheatsheets" repository</a>. There are many commands, or particular options of certain commands, that I don't use often enough for them to become muscle memory, but often enough for <code>man</code>ning them or internet searching for "how do I resize an image with imagemagick" to become tedious. </p> <p> I can recommend following a similar practice to anyone, though I don't recommend using my cheatsheets. They are usually quick notes that follow my own mental shortcuts, and in general are optimized to be quickly understood by <em>me</em>, based solely on my past experiences with these tools. I won't include options that are already obvious to me (if you haven't used <code>git add -p</code> or <code>git rebase -i</code>, you should go learn about them!), and might instead include tools that are already a second language to you (any <code>ffmpeg</code> ninjas out there?). </p> <p> There are existing tools that aim to improve command line productivity in similar ways, like <a href="https://github.com/tldr-pages/tldr"> <code>tldr</code> </a> or <a href="https://github.com/cheat/cheat"><code>cheat</code></a>. For my personal workflow, I figured that there's no reason to overcomplicate things when tools I already have (<code>vim</code> + <code>git</code>) do the job fine. </p> <p> Now, for any new UNIX system I intend on spending a lot of time on, I'll <code>git pull gitlab.com/m-chrzan/cheatsheets</code> in my home directory. When I want to remind myself of a command's use case, or have just figured out a new cool trick that I know I'm going to forget if I don't write it down, my notes are just a <code>vim ~/ch<TAB> tool.md</code> away. If I do write any new tips down, a quick <code>git push</code> allows me to keep the cheatsheets synced across all other systems. </p>