# Linux for dummies

Most people out there who are just starting development may find ***Linux*** as something driving them insane. lemme show you the ***bright ✨*** side of ***Linux*** for ***team developers***, ***team operations,*** and ***coding Hobbyists***.

## Entering into the world of Linux can be overwhelming 🤯

You might indeed have heard, Linux is used by cool punk hackers showing their ***terminals*** with constant texts popping up after banging some commands. If you flip the coin you will encounter the deepest darkest secret hidden from people like you who are getting started, just kidding 🤣. well, I'm not scaring you exactly rather trying to demystify.

### In what sense it can be overwhelming

1. **There is too much distribution out there** 😣
    
2. **I can't install my favourite code editor "vs code"** 😣
    
3. **Lot more** 😣
    

### 1\. There is too much distribution out there 😣

You may have heard some of the most popular ***distributions*** like `Kali Linux` `Ubuntu` and may have assumed `Ubuntu == Linux` or `Kali Linux == Linux`, I was in your place once believe me 😁

There's brand new distribution popping up now and then. but windows is just one freaking thing, is there any problem with Linux being prone to mutation? 😥well Linux is just a major part of the entire operating system called ' ***kernel*** '. it's also called, the ***heart of the operating system***. we won't trouble ourselves going deep into the kernel for now.

So if Linux is the kernel, then what distribution is? 🧐Linux is an ***open-source*** kernel, so developers out there grab it and smash it right into their codes to bake an operating system also called a distribution or Distro for short. but why do people commonly say distro rather than operating system? cause there are a lot of operating systems/Distro sharing the same kernel which is Linux, made by [Linus Torvalds](https://twitter.com/linus__torvalds).

***You can explore Distros here*** 👉 [<mark>Distro tree</mark>](https://distrowatch.com/images/other/distro-family-tree.png)

### 2\. I can't install my favourite code editor "vs code" 😣

Typically, users in windows would download the installer for particular software and the installer would guide and does most of the part itself. below is one example of a ***software installer*** for windows.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1672687488096/7a43eef8-6c9c-416c-9ddc-e920399378be.png align="center")

what about the case of ***Linux distros***? well, they are very much different from windows kinda installing software. they use something called a ***package manager*** to manage software/packages. what does managing mean in Linux distro?

📩 Installing software

⚙ Updating software

❌ Deleting software

🥤 Much more juicy stuff

Some package managers used by different distributions are :

> ***apt*** or ***apt-get* --&gt;** Debian-based distributions
> 
> ***rpm*** or ***yum --&gt;*** Redhat-based distributions

If you can relate to the package managers inside programming languages like ***python*** = ***pip,*** ***javascript*** = ***npm,*** and so on. Explore most of the package managers for programming languages - [<mark>Libraries.io</mark>](https://libraries.io/)

### 3\. Lot more 😣

Once you start using Linux distros as your daily driver then you gradually start to pick up the whole ecosystem a lot faster. It also prioritized more on the ***command-line interface*** `CLI` over the ***graphical user interface*** or `GUI` . This command line has a steep learning curve than graphical once such as the one and only freakin Windows.

You might be thinking "Hey Noobyco why ain't you mentioned mac anywhere?", well well, mac is based on Unix so it is an all-rounder when it comes to both GUI and CLI. you can think of it as, visually friendly like windows and extremely robust as well as juicy like Linux distros.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1672690881982/d299f405-4bfe-485a-a3a9-dacbcfb6f9aa.png align="right")

### NOTE

You may have heard developers saying Linux to describe an operating system rather than ' ***kernel*** ', it's totally fine as long as you understand the difference. another term ' ***terminal*** ' is thrown a lot in this field which Is the software providing ***CLI*** in Linux distros and mac ecosystem, there are a variety of terminals out there to use. but in the case of windows, currently, we have only two, ***PowerShell*** and ***CMD***.

## Our target reader

1. **Transitioning to backend development** 👩‍💻
    
2. **Transitioning to an administration job** ⌨
    
3. **Hobbyist** 🐧
    

### 1\. Transitioning to backend development 👩‍💻

Most people transitioning into the backend are ***front-end*** guys, there are also some people directly hopping into the ***backend***, so we'll consider both situations. In the case of front-end dudes, they tend to use ***CLI*** far less than ***server*** guys. when I say CLI it does not refer to a ***Linux terminal*** rather it's the interface used by operating systems for various reasons.

there are no specific ***prerequisites*** for people falling into this category, except basic ***IT knowledge*** includes knowing how to use an operating system for daily use.

### 2\. Transitioning to an administration job ⌨

majorly there are two teams in a software producing company, one which writes software AKA software developer ( Includes all sub-categories like ***web development***, ***mobile*** ... ) another maintains ***production servers*** in which the software runs. administrative jobs fall under server Maintainance also called operations in IT. ***Network admin***, ***System admin and help desk*** are some of the roles that come under this. these guys can't live without a ***terminal***.

### 3\. Hobbyist 🐧

they are my favourite set of ***tech-savvy***, always prone to explore new stuff and open to learning out of their ***curiosity***.

## Let's get our hands dirty with Linux

Enough talking, it's time to ***execute*** some stuff. let's proceed according to standard ***OS*** users.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1672748366928/2ed373c0-bbe5-41b5-8581-edeab6cc9431.jpeg align="center")

### 1\. Windows savvy

Users coming from a Windows background has some of the following ways to spin up a ***Linux*** ***distro*** for them

* **WSL2**
    
* **Live boot**
    
* **Dual boot**
    
* **Using hypervisors**
    
* **Google Cloud console**
    
* **Wipe up and install fresh**
    
* **Virtual machines on Cloud**
    

There are many ways to get your Distro rolling, but ill recommend doing **Live boot, Using hypervisor** and **Google Cloud console** initially, later on, you can try left-out things on your own or comment me down if you want a detailed blog on a specific topic.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1672741474306/0940b1ba-48c7-4aa3-b0d9-9c615b9321d0.jpeg align="center")

1. **Hypervisors** are the most common way of spinning a distro, it uses the virtualization technique. refer to this tutorial kinda video to set up your hypervisor.
    

%[https://www.youtube.com/watch?v=wX75Z-4MEoM] 

1. **Live boot** is a way of booting up the distro without installing it into your secondary storage i.e hard disk. well, now it's something getting interesting haa 🧐.
    

%[https://www.youtube.com/watch?v=_PGJ980upPQ] 

1. **Google Cloud console** is one of the easiest options to opt for among the three, cause there the distro spins on Google servers. they have exposed a console to use it, all you need is a google account, that's it.
    
    **<mark>Hit </mark>** [**<mark>HERE</mark>**](https://console.cloud.google.com/)
    

### 2\. Mac savvy

Do not need to worry about any of the installation process cause mac is ***Unix based***, thus it already has a terminal pre-baked from the factory.

### juicy platform to learn Linux

Of course, I can explain every basic concept along with examples here, but that would be pointless for this blog, there is already a platform to ***practice and reference***. you can do [ChatGPT](https://chat.openai.com) and fetch a lot of valuable resources and references for you, but `AI != Human` so I'm sharing my favourite platforms with you

* Use [Over The Wire](https://overthewire.org/wargames/) to practice your ***Linux skills*** by playing ***games***.
    

I would recommend beginners start with ***video content*** rather than ***textual content***, cause when you are starting with something, it requires more ***focus*** during those ***initial days***. Visual content grabs your focus and makes it a lot more interesting than textual content. I agree visual contents ***consume a lot of time*** but it pays off in the beginning.

> **In the end, the only method that works the best is to force yourself to learn Linux by wiping up your hard disk and freshly installing Linux distro and using it as your daily driver. before doing that make sure you back up every bit of data.**

## Why should we learn Linux?

well, it depends on what kind of person you are. In the tech field, developers use it, the ***server maintainers***, ***cybersecurity*** ***professionals***, and ***DevOps*** guys. I can go on listing roles on and on but I wanna make a point about the factors causing these roles to adapt. of course, we can run web servers on the windows operating system ( ***windows server*** ) or do ***bug bounty*** on windows or any other operating system. The fact we all should notice Linux being run on the majority of servers and used in various roles because of the following ***factors*** :

### **Command line**

Both Linux and mac have a ***robust command line interface***, which is often preferred by developers because it allows them to ***automate tasks*** and work more ***efficiently***. Windows on the other side is not fully featured as the one on Linux and mac.

### **Compatibility with open source**

Many open-source ***tools and frameworks*** are developed on and for Linux and mac systems.

### **Customizability**

Linux and mac systems offer more customization options than Windows, which can be attractive to developers who want to tailor their ***development environment*** to their specific needs.

## My journey into Linux

I remember completely wiping up my disk and installing ***Debian based Distro*** `Kali Linux` as my first Linux exposure. I was curious to explore the very concepts Linux is different from Windows. I heard the term **Linux** during high school but used to wonder about it being run on the system. my school computer labs had windows installed on them so I used to play crazy on the ***CMD*** command line. create a batch script and do all sorts of harmful executions to destroy systems completely, although I enjoyed those days 😅.

Back in 2k22, I was exploring cybersecurity, and this was the main reason to start learning Linux in the first place. I discovered my favourite platforms to learn it. one of my all-time favourite is [Linuxjourney](https://linuxjourney.com/), unfortunately, it's down currently 😢.

The one strategy I always used is to \`**learn something if you know its why\`** in my case I was learning to learn cybersecurity concepts. I call it `reverse engineering` .

## **Conclusion**

Some of you might be wondering, where are commands in this blog 😅. Intentionally I designed this blog the way it is cause it's for ***dummies***. Let's assume you heard about Linux from your friend circle and you come back home spin your Linux distro and start banging commands onto the terminal. sixty-nine minutes passed and you have no idea what's going on 😂. This situation matches perfectly to `script kiddies` in the world of hacking.

Now after reading this one can be comfortable in the ecosystem and keep learning on top of that. Let me know if you guys want more blogs around Linux or if you wanna explore ChatGPT to learn the same.
