Back to back blog posts relating to Linux, I know I'm such an elitist or whatnot. This is my first more official blog type post as opposed to throwing a video at people. This is more so dedicated to people who own a computer for obvious reasons, and also because I know there's some people on mobile as well, so if you're on mobile... SCRAM!.. Not really, if you want to keep reading that's fine by me I can't really stop you anyway lol.
This could also count as some sort of guide, I guess, but you could have better luck looking for actually dedicated Linux guides for beginners to have a better understanding. Though hopefully I'll manage to be informative enough in this blog post so if I convince anyone, there won't be a need to spend more effort just to know basic stuff. Now I'm no expert, but I'm confident enough in my knowledge to at least be able to guide new people or anyone who wants to try it out.
Misconceptions
I feel like before actually talking about anything, there needs to be some misconceptions about Linux that I should clear up in which puts people off.
- "It's too complicated"
I'm sure you've all seen those memes out there in the internet making fun of Linux users for needing to 'hack into the mainframe' or whatnot to install a web browser, while these memes are funny, this really isn't the case, Linux has gotten to the point where it's a lot simpler than Windows and MacOS. It just takes a bit of a learning curve, just like when one would try Windows or MacOS for the first time. So no, it's not as complicated as those videos tend to make it.
- "But my games!!!"
I've heard a lot of people make a point of how little support there is from games, but that really isn't the case. While there aren't many games that natively support Linux, there have been some very powerful tools for compatibility layers to allow for Windows games to run on Linux. Such as Wine and Proton. And even the largest obstacle to allow for support for Windows games on Linux, anticheats, there have been steps made to allow for games with anticheats to work on Linux. We've really come a long way in terms of compatibility.
Can't really think of any other things people commonly say about Linux, but I can always edit the post to add more.
Pros
Linux does have its pros and cons, though they're more prevalent from distro to distro (I'll get more into what that means in a bit.) For now though, I'll give some pros that are universal.
FREEDOM!!
Linux, unlike our other OS counterparts, is free and doesn't require any license to be used, while sure you can easily download Windows for free and use it without having to pay anything, and can get rid of the watermark using a simple command on powershell ahem 'irm https://massgrave.dev/get | iex' ahem and MacOS comes for free with their computers, Linux is and always will be free through and through.
Privacy & Security
One of the biggest aspects of Linux is its privacy and security, freedom from the surveillance of big corporations on OS level. Unlike its counterparts, Linux doesn't have any telemetry involved. (Exception being Ubuntu, but let's just ignore Ubuntu...) And as of right now, Linux is safe from many viruses, especially if you take the steps to be safe. Most viruses that target Linux as of right now are specifically for servers. In which yes if you haven't heard before, a majority of large server infrastructures in the world run on Linux. But we're focused on Linux desktop for now.
Customizability
Personally the reason why I got into Linux in the first place, Linux is EXTREMELY customizable. From everything you see to everything that goes on behind the scenes. The reason why this is possible is because Linux is Open Source. What this means is that the code that makes everything work is out in the internet published by the Developers to allow people to contribute to it. Of course with some restrictions to stop any malicious people from adding their malware into it.
Lightweight
Unlike Windows and MacOS, Linux is MUCH lighter and less bloated than the other operating systems, even for its more 'bloated' options. It uses less resources because it is more efficient. And certain projects in the Linux community add further optimization to the system in order to make it run faster. It's generally one of the biggest selling points for people who have low-end computers yet they don't wanna throw them away, but can't use Windows because of its bloated nature being so demanding on the dated components.
What are distros?
Okay time to get to the juicy stuff. Linux distributions (or distros for short) are individual versions of Linux for different needs and purposes. Because Linux itself isn't actually the OS, but the kernel that the distros are built upon to make fully fledged OSes. "What is a kernel?" You may ask in response to this. The kernel is essentially the final layer in a computer's software in order to let the hardware communicate with the software.
Distros are split using this chart. Though usually you'll only realistically have to choose from a handful of these and others are just for specific use cases or just esoteric (Meaning not really practical, just for fun, distros like Hannah Montana Linux fall under this category of esoteric distros). Because I say that you'll only need to choose from a handful of distros, I'll list a few that I personally recommend for beginners, and some if you'd like to dive a bit to the deeper end.
Mint
This is my first pick for people who are complete beginners to use. It's ridiculously simple to use, even more so than Windows. Everything simply just works out of the box, which I know would be a selling point for many people. Not only that but it easily allows for choices between different Desktop Environments to use whether you're more comfortable with a Windows layout, MacOS layout, or neither.
Zorin OS
I don't really know much about this one as it was mostly recommended by my friend who's more knowledgeable about Linux than I am, but what I do know is that it's optimized for games and such. Nothing else to really talk about for this one, do your own research if you'd like to learn more about this one.
Fedora
This distro is a bit on the deeper end of the beginner friendly distros, as there's plenty of resources for people who don't like to use terminals, but there's some stuff that you'd need to use a terminal for. It might be a little too unstable for some people as it's occasionally on the bleeding edge for software (meaning it's usually on the most recent versions of software even if it isn't a stable release)
Debian
This distro is the baseline for plenty of distros, including Ubuntu (which I won't be recommending for obvious reasons) in which is used for Mint and Zorin OS (though those don't have the reason why Ubuntu isn't here despite being built on top of it) This distro is for people who want the absolute most stable system. Though updates are quick if important such as needing to patch vulnerabilities in software, by adding the patch in the stable version. This distro is best for anyone who would like a stable and secure system.
Arch
This distro is on the more complicated side of Linux distros, with being based on the philosophy of having to do everything yourself on your system. Starting with a basic terminal where you'd have to type commands in yourself to install essential features and in the end what you'd like to use. Though it does sound daunting, it really isn't as complicated as it sounds, and is my first Linux distro that I went with in the first place. Plus you get cool points for being able to say "I use Arch, btw" B)
Jokes aside, I'd only really suggest this one if you want to commit to the whole D.I.Y. philosophy and have plenty of free time, there's a lot of troubleshooting involved with this distro. IMO it's worth it in the end, though.
On the topic of the terminal...
The main thing that keeps people away from Linux is the big scary TERMINAL... Which sure, I get it, when I didn't use Linux I thought that the terminal was scary too, but I promise you that it really isn't as complicated as people think it is and you only really need to memorize a handful of commands and rules in order to use the terminal.
First and most important rule to know about it, the Linux file system is different from the Windows file system (MacOS users you're fine it works somewhat the same way as your file system) this means that there's no C:\ but instead / and ~. / is the root directory (directory is just a fancy way to say folder) and basically hosts the entire OS and users and applications. ~ is a sub-directory of the / directory, it's called the home directory and is essentially the specific user's root folder for their applications and such for said specific user. Instead of writing say C:\Appdata\Roaming\ as some random example, you'd write /usr/share/
Second rule is that most commands have extra options that you can enable using - and then a letter or -- and then a word (the reason why they are seperated between - and -- is because you can use multiple letter options in one which might string together words unintentionally, though you might occasionally find an outlier in which it allows words in - settings)
99% of the time if you need to know how the command works with options, just use <command> -h or --help this is basically universal.
Third rule that I'll mention is that you will absolutely need root privileges (which is like administrator on Windows, don't know the equivalent on MacOS) and you will 100% need to use something called sudo (short for superuser do) I won't get much into this right now but you can easily find stuff online about sudo to learn more about it.
Final rule that I'll mention here is that .. means one directory behind your current one, and ./ means your current directory, mostly used for running binary files from the terminal.
(Extra note because I forgot, if you'd like to refer to a file or folder that has spaces in its name, you could either put it in between quotation marks, or put \ right before all spaces in the name)
As for the commands, there's just a couple that you need to know:
- ls: lists the contents in a directory. -l lists them in individual lines and -a lists everything including hidden contents
- cd: lets you change the directory you are currently in. You can either choose to go to a directory relative to your current position in the system or from the root or home directories.
- rm: lets you delete certain content from a directory, you can use spaces to delete multiple files. and sometimes you'll need to use sudo in order to delete some files that might need root permissions to modify. In order to delete folders you'd also need to write -rf after rm. -r for recursive meaning everything in a folder, and -f to force it to do so just in case.
- mkdir: lets you create new folders, you can use sudo to make the directory require root permissions to modify, or if you need root permissions to add the folder in the directory.
- touch: lets you create a new file.
- cat: outputs information, e.g. if you have a file called "kitty" that only has the word "meow" written in it, if you type cat kitty it will output "meow". You can use this to forward data to new files but I won't get into that.
- grep: usually used after a command that outputs text in order to search for specific keywords. You can use | right after a command to use grep
There are probably others that I forgot, so if I did forget any other essential ones then lmk, I'll make sure to edit the post.
There's one extra important aspect of the terminal too, called a package manager.
Package Managers
Package managers come in all sorts of shapes and sizes for each individual distro. Each distro usually has their own large repositories of packages (applications), through the terminal, you can install, uninstall and search for packages using different commands. Usually you'll have to use sudo before any of these commands.
For debian and its derivatives, you can use apt install <packages> to get packages, apt remove <packages> to delete them, and apt list <package> to search for packages (correct me if I'm wrong as I've only used a debian based distro once.)
For Fedora, you can use dnf install <packages> to get packages, dnf remove <packages> to delete them, and dnf search <package> to search for packages. Generally the same as the Debian based distros.
For Arch, you can use pacman -S <packages> to install packages, pacman -R <packages> to remove packages, pacman -Rs <packages> to remove packages and their dependencies, pacman -Q to list all your packages, this is usually used with grep, pacman -Ss to search for packages that you don't have installed.
It's generally different for different distros, I can't really get all of them but this is the general idea for the ones that I did list.
For special cases, there's a universal package manager named flatpak. While I do not recommend it... If you have no other way to install a package then I won't stop you. It might be extremely unstable though.
There's also stuff like manually compiling source code but I won't get into that right now, and chances are if you are a casual user you will never need to do this.
DEs and WMs
With package managers you can easily install what are called DEs (Desktop Environments) or WMs (Window Managers). These are environments which you can use to use applications and such. If you install Debian and its derivatives, or Fedora, you'll have preinstalled a desktop environment. I'll gloss over some of them but the general idea is that this is where lots of the customization comes from.
Desktop Environments
Desktop Environments give an environment similar to current environments that most people are used to as of right now like the floating layouts of Windows and MacOS. I personally recommend Desktop Environments when starting out because they really don't require any configuration and are simple with their GUI based interfaces.
Gnome
This Desktop Environment is the most common to be automatically installed with certain distros, and is the most like itself as opposed to trying to look like different OSes.
XFCE
This Desktop Environment is one of the options you can choose when installing Linux Mint, and is more similar to a MacOS aesthetic if you are more comfortable with that. It's also known for being a lighter Desktop Environment if your computer isn't particularly powerful.
Cinnamon
This Desktop Environment is more similar to Windows, if you are more comfortable with that sort of layout and aesthetic, and is also one of the options to choose from when installing Linux Mint.
KDE Plasma
This Desktop Environment is also, like Cinnamon, similar in looks to Windows. This is the Desktop Environment I personally used when starting out with Linux, while I don't really recommend it as it's unstable at times, it really still is a solid option.
Window Managers
Window Managers (or Tiling Window Managers which is what most people refer to when saying the broad term) give more of an aesthetic that centers around the applications themselves on the screen taking up an amount of space to fill up the entire screen with the selling point being able to increase productivity. Another big selling point is this being the go-to option for people who really want to customize their system and make it look really cool. It's generally recommended for more advanced users because of the fact that they most of the time require configuration to suit your needs, and have a bunch of different keybinds to be memorized with different functions that can also be configured.
Hyprland
Personally I think this is the most simple window manager to work with because of lots of things already being done for you. This is a great start to anyone who would like to get into using tiling window managers. I currently use this one and would recommend it to most people who want to use tiling window managers.
DWM
DWM is a window manager focused on letting the user control every aspect of the window manager from scratch, with pure C code. I don't really recommend this for beginners as it takes a lot of tinkering and such to let it work, but if you're into that, then this exists for you. I used to use it for a bit and I liked the part where you could do everything from scratch, but it really wasn't for me to use daily.
i3
This window manager I don't really know much about, but I do know that it is similar to dwm in terms of having to do everything yourself, but the configuration files are simpler and not in pure C code. Making it much simpler to use.
sway
sway is essentially just a drop-in replacement for i3 on wayland systems, I won't get into the differences between wayland and x11/xorg right now as you can easily have both on the same system, but it's essentially the same as i3 with some extra additions.
Final Notes
That's all I'm really gonna say in terms of getting into Linux. Remember that you don't have to follow all advice in this guide (you can use dwm when you're just starting no one is stopping you! form your own path). I hope that I at least got someone to try Linux out, there's a lot that I left out because I'm not trying to have this be the longest blog post ever (genuinely curious about what blog post is the longest) but this is some general information, plus I'm not obligated to say anything!! If anyone would like me to explain anything or clarify further on certain things or give any advice, feel free to ask!
Even if I didn't get you into Linux I hope if you've read this far, that you enjoyed me rambling on about funny computer stuff :) .... If anybody even stuck around after the first section and didn't just collapse on the spot due to boredom...
happy uhhhh happy day i guess idk or night whatever time it is for you right now
Comments
Displaying 0 of 0 comments ( View all | Add Comment )