Before my current job, I had very little experience with the command line. It was a black window into an unknown world and the small blinking cursor in the top left of the screen was the vehicle that would take me there.
I was thrusted into the command line on my first day. I was told at the interview that I could use any OS I wanted. When asked which distribution I would like to use for my workstation, I asked “What do the developers use?” “They use Arch Linux.”
For those not familiar with Arch Linux, it’s a fairly advanced flavor of Linux. There isn’t an installer except the use of command line tools to manually partition, install, and configure the OS. The Arch Way has five principles it lives by. Simplicity, Modernity, Pragmatism, User centrality, and Versatility.
After the interview, I looked up what Arch Linux was and wanted to learn as much as I could about it. I watched videos, read on the Arch wiki, and downloaded VirtualBox to give an Arch install a try! Long story short, after about 4 or 5 failed installs over a couple days, my first day of work had come.
I was shown a cubicle with a monitor, an Intel NUC, and handed a USB by the IT/Support guy. Since I didn’t have a working computer yet, I needed to look up the install instructions off my phone. Staring at the blinking cursor after first booting the Arch installer, I was determined that I was going to do a successful install.
I powered through the initial partition, mounting, and installation but as those who have installed Arch know, that is only the beginning. I still needed to choose a bootloader, desktop manager, desktop environment, configure the time, and many other things taken for granted with installers that does this for you. The configuration ended up getting me and I needed to ask help from the IT guy. Luckily, he was very friendly and very knowledgeable on Arch Linux as he has used Linux since he was about 10 years old! There was many things to learn from him.
At close of business, and many questions asked, I had a successfully running Arch Linux box in front of me! From that day and the months following, as I learned how to use and interact with Linux, I slowly became more and more interested in the command line and what its potential was. I eventually decided to learn as much as I could about the command line and its tools.
My love for the command line is as strong today as it was when I first started exploring this black screened world. Today, over 80% of my workflow involves command line tools. I have a tmux script that automatically runs when my workstation starts up, creating multiple sessions and windows. It starts scripts inside those sessions like pianobar
to listen to Pandora. I access our ticketing system via a command line browser, called w3m, in
a different session. For chat, I use a Google Hangouts command line program named hangups
. And a DEV and TERM named sessions for editing my scrips via vim
, and sshing into our deployments to track down issues.
With this workflow, I’m able to use any headless server to ssh into my workstation and chat with employees, edit and run scripts, submit issue tickets for bugs I’ve found, and even quicky browse the web for anything I need to lookup. The same is true when VPNing into work. I don’t use X-Forwarding or remote desktop. I only use ssh and tmux to do the work I need.
Through this blog, my goal is to write about the tools I use on a day-to-day basis with a very heavy emphasis on the command line. In the modern age of ever-improving graphics, I want to prove the case that the command line still has its place and is more powerful than any GUI tool could ever be.
Loading Likes...