Linux for dummies
"Dude imma windows guy, Linux is burning my eyesπ£send me some help, wanna use it like a pro"...
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
There is too much distribution out there π£
I can't install my favourite code editor "vs code" π£
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.
You can explore Distros here π Distro tree
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.
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 --> Debian-based distributions
rpm or yum --> 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 - 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.
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
Transitioning to backend development π©βπ»
Transitioning to an administration job β¨
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.
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.
- 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.
- 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 π§.
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.
Hit HERE
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 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 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, 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.