Starting with Linux terminal as a beginner, a personal story.

Linux sudo user
Photo by Gabriel Heinzer / Unsplash

So you ended up here. Either you are someone who is just figuring his first steps in the IT world, or you are someone who is just curious about the black screens actors in movies and TV shows use (hey Mr Robot ❤️), this article is for you.

I won't go technically deep over here, but I will just show why the command line is still a must have skill in a constantly changing technologies ecosystems by writing about my real world experience and how I evolved from someone who gets extremely happy using the whoami command to someone who manages Linux production servers for living.

The beginning

Like almost all of you, I had htmlgasme when I developed my first-ever html page. Well, not that impressive when I look at it now but that page reminds me of the progress I have made so far. Once I made it to the college, the struggle had begun. We were served a lot of theoretical knowledge including PHP, Java, Data structures, algorithmics, relational databases and MySql, etc. The courses and exams we had were on paper.

computer keyboard

Those days were the hardest ones. In the summer, we had to choose between an internship or a home made project that we would implement using the stack we want. So I decided to go with the Symfony framework because, after some recommendations, I thought that, for a beginner like me, it was the perfect framework to get introduced to MVC pattern, ORM, Web Servers etc.

And the random choice to use Linux instead of windows was a career's changer.

Extremely powerful black screens VS extremely powerless humans

I managed to install Ubuntu following some Youtube videos. When I saw the purple desktop screen, I felt like the smartest human alive.The terminal icon was sitting there and I clicked on it. I had really no idea what's is next.

I said to myself: "This is what you've been seeing in movies! The FBI use this thing! Do something!"


The first command I stumbled upon and I could understand was whoami, copy pasted it to the terminal, I got the output displaying my name. That's a whole new level for a beginner! date was the second command I learned.

After learning some basic linux terminal commands, I wanted to start the real work by installing and configuring LAMP and Symfony.

A step further, dealing with packages and configuration files

The first step always, in any field, is hard, specially in Linux ecosystem. The configuration and installation of a functional LAMP and Symfony took me 10 DAYS. I was copying online content to the shell.

The progress I made was extremely slow because I had no idea what I was doing and why I was doing it. It was a real pain.

As days passed, I felt more comfortable using the command line utilities apt and make, I learnt some useful file compression commands, a bunch of directories and files manipulation tips along with some scripting skills.

The only thing I'm regretting is that I jumped into the swimming pool, without any preparation. This costed me time but regardless, in the end I felt more confident, and in control.

So, please, always start with the basic, always. Don't let the experimentation guides you and read a book instead. This would save you a lot of valuable time and effort. Always! Did I say it enough? Always.

No GUI? No problem!

Since then, I had been a regular Linux user. Besides doing the geeky stuff, I used Ubuntu as a daily basis. Playing online games, tweaking photos for my social media accounts, scheduling some cron jobs to empty the trash or to remove Chrome browser's cache once a week etc..

One day I came across an internship offer to implement a continuous deployment tool. Back then I had no idea what did it mean. After going through some internet resources, I figured out that it involves a lot of scripting and command line skills, so I applied, and got an acceptance mail. Woho!

I founded myself dealing with Linux servers. Those without a user interface. As a beginner, I felt successfully ssh-ing into the remote/virtual servers was like Greece winning the Euro on 2004. My first days were unproductive, I was googling every single thought, even the simplest ones.

Yet again, those dark days benefited me more than I thought. Limiting your choices to a single one will force you to learn that single one, and master it.

Imaging a kid having a collection of half sleeve shirts, one pullover and it's cold. This kid cries every time his mother asks him to wear the pullover. What did she do?! She hid all the shirts and left the pullover on the desk. The kid, after some expected crying episodes, decided to wear it. And he'd fallen in love with it!

What I want to tell you here is that, when you want to sharpen your skills in any field, especially the command line and the Linux ecosystem, always remove all options available to you except the one you want to master. You will thank me later!

Conclusion

So, this is my story with the command line when I was just starting. Despite reading a lot of blogs and articles about its benefits; productivity, speed, efficiency, control etc, I didn't find them motivating. My motivation was to explore the tool that movies heroes uses to hack the FBI or the CIA. And yes, it was completely worth it.