My top 10 commands ────────────────────────────────────────────────────────────────────── “Show me what you type and I'll tell you who you are„ This week, my shell command history hit 10000 lines ! To celebrate, I decided to check what are the 10 commands I use the most: $ history|awk '{print $2}'|sort|uniq -c|sort -rn|head -n 10 1550 v 1492 ll 870 make 787 cd 503 git 426 pwd 372 fg 245 ssh 206 doas 192 man 1. v (alias « vis ») Fortunately, I was smart enough to alias my most used command to a single letter ! "v" is an alias for "vis", my text editor of choice. I use my computer mostly for programming, and editing server configs, and the fact my editor is the first command of the list proves it ! Nothing really interesting here after all... 2. ll (alias « ls -l ») If I could only have a single-key keyboard, then I'll pick the « L » as the only letter. I call this one my stress-ball. Whenever I think or need to relieve stress, I type « LL <enter> », immediately followed by « <control> L » to clear the screen, so I can run « LL » again. 3. make Now this is getting interesting ! Do I do this much C programming that I use « make » so often ? Actually no. I use « make » for another purpose: server configuration. I own multiple servers online, and configure them with drist [0], which is similar to ansible. To simplify the configuration deployment, I use a Makefile, so I just need to type « make » to reconfigure a server. Everytime I change a config file, add a DNS name, or username, I run « make » to apply my changes, which is why I run it so often. I also build a lot of C programs too, but configuration management is certainly my main usage these days. 4. cd There is one thing that frustrate me when I look at other people using a terminal : cd /var cd log less messages When people do that, I want to take the keyboard away from them, and beat them up with it !! Ok I'm weird. But seriously, I hate monkeying around in my filesystem. If I want to read the logs, I'll just less /var/log/messages It works, it's elegant, it makes « cd » only appear 4th in you command history rather than first 😉 5. git Well, I didn't know I used git that much. It shouldn't surprise me though, because I constantly search new cool projects to try, and git clone them. Another big use I have for git, is updating my port tree, as I run the crux distro [1], with a lot of git based ports. 6. pwd I get lost quite often in all these gigabytes ! 7. fg (and its friend ^Z) This is certainly the most idiomatic command of my programming workflow. I mostly write shell scripts and C programs, which I test/build manually at the shell prompt. I could use a terminal multiplexer, but I like having a single place to focus my attention on. A typical programming session would look like this: v file.c # see command number 1 ^Z make [...] outpout omitted fg ^Z make ./file git add file.c; git commit -m "WOW it works !" fg man 3 gethostbyname ^Z fg %1 ^Z fg %2 ... I put my editor to the foreground all the time. Even though it has support for splitting windows, I run it multiple times when editing multiple files, and play with job ids to call them back. It might sound slow, but I'm really used to it and feel like I'm pretty efficient. I must admit that sometimes when I'm tired, I might end up with the same file opened 3 times in 3 different jobs... This is usually a good sign that I need some sleep ! 8. ssh What would be life without exploration ? I use it mostly to administer my servers, or connect to my IRC session, which is hosted on one of these servers. Nothing fancy here. 9. doas This is the OpenBSD equivalent to « sudo ». Since I reinstalled all my servers to OpenBSD, I started using « doas » to administer them (I never log in as root). I got so used to it, that I started typng « doas » instead of « sudo » on my own machine. And as crux doesn't come with « sudo » installed by default, I eventually replaced it with « doas ». The same phenomena is happening with « rcctl » vs. « systemctl » on my work laptop. I might add an alias someday ! 10. man To be honest, I'm proud to see it in this list. I love man pages, and prefer them over stackoverflow answers. With OpenBSD, I learnt to use them more, and took the habit to read the manual instead of searching the internet. This helped me a lot when programming in planes or trains, where you must work offline. I'm proud to finally have a proof that I RTFM ! What started as a bored question ended up in a good introspection of my terminal habits. This was a funny exercise, and I would recommend it to everyone that uses a terminal often. Now what are YOUR top 10 commands ? -- ~wgs [0]: gopher://phlog.z3bra.org/0/configuration-management.txt [1]: https://crux.nu 20201027.2336