How to Start With Linux - A Guide
Some people I know personally have become interested in using Linux on one of their computers, and they asked me for help, so I wanted to write up a short guide on what I think the most important things to keep in mind are when switching to it.
Which distro should I use?
This is kind of a tough question to ask from a Linux noob, as most of the relevant differences between most distros aren't something you'd necessarily even care about if you never used Linux before. You probably don't even know what systemd, package managers, or snaps and flatpaks are yet. Ultimately this question comes down to what kind of experience you want out of Linux and how much time you want to invest into learning it. The main question to consider here for newbies is mainly if you want to use an LTS distro or a rolling release distro. LTS distros get a lot fewer major updates, and there generally isn't even a need to update your packages too frequently. Major versions only come out every couple of years or so, and there exists official support for the latest couple of them. They are considered to be very stable and work pretty well out of the box. Rolling release means that there aren't really any standalone versions and the system itself gets continually updated forever. While this does give you the benefit of always having the newest packages and kernel updates available, it also means you should update your apps a lot more frequently than on an LTS distro, and you need to pay close attention to terminal outputs and follow your distro's official RSS feed to see if manual intervention is required by the user when updating, as the system could potentially break without good care. Here are some of my recommendations:
LTS (Long-term support)
- Debian - Most stable, also used by most Linux servers in the world, easy install with the ability to choose between multiple desktop environments, usually gets the least fresh updates.
- Mint - I never used it myself, so take this recommendation with a grain of salt, but a lot of people say it's quite good for beginners because of its easy usability.
- Pop!_OS - My first ever distro. Fairly stable but gets a lot more frequent updates than Debian since it's kind of like a good version of Ubuntu (which I don't recommend for anyone ever). The customer support is great as it's made by System76, a company that ships the OS with their own branded laptops. It comes with a lot more pre-installed stuff you may need but is also a bit heavier because of it. PROBABLY WAIT UNTIL THEIR COSMIC DESKTOP IS FULLY RELEASED BEFORE INSTALLING THIS ONE!
Rolling Release
- Arch - One of the most barebones distros out of the box that is very DIY, which makes it very lightweight. IMO, also the only rolling release distro you should really care about. There is an archinstall script that makes installation a lot easier, but I would recommend going through the install process the normal way at least once (if possible in a VM), as it teaches you valuable information for using your system properly. This also is the distro you use when you want to look cool online, as you can customize virtually everything about your system with relative ease once you get the hang of it. Tutorial on how to install it here. If you want to use archinstall, just run the command 'archinstall' after making sure that you have a working internet connection and that all drives are detected by the system by typing 'ping duckduckgo.com' and 'lsblk' (I really recommend using a LAN connection here).
What desktop environment/window manager should I use?
This mostly boils down to your personal tastes. I have used XFCE, GNOME, and KDE Plasma (this one is the closest to Windows), and I can happily recommend all of them. Just go search up how they look on your search engine and what software comes pre-installed with the suite. If you want a more lightweight experience, you can use just a window manager like dwm or bspwm, but they don't come with additional software. A more modern one to use is Hyprland, but I haven't played around with it too much. Also check if whatever you plan to use employs X11 or Wayland by default... wait, what are they?
Should I use X11 or Wayland? Does it even matter?
Another kind of hard question to answer for noobs. If you ever see these terms somewhere, people are talking about your display manager. TLDR, it's the thing that makes the graphics on Linux on a fundamental level. X11 is a lot more stable and gets very, very, very rare updates and is already like 40 years old. Wayland is a lot more modern and has more updates and actually fixes bugs, unlike X11. If you get a desktop environment, you don't really have to worry about which protocol you need to use, as normally they come installed with the DE; however, you should at least know what you are using, as it helps with troubleshooting some issues if they arise.
Do I have to use the terminal?
I would heavily recommend at least learning the basic commands Linux has, as it makes working with your system quite a bit more enjoyable, even if you don't use Arch. There are also tons of cool applications on Linux that don't have a GUI, like Vim, for example (more on that later). If you ever need to abort a command (only do this if you know it doesn't break stuff; NEVER do it during an update), press Ctrl + C. Don't confuse it with copying stuff; that shortcut is different per terminal. If you choose a distro that has a desktop environment pre-installed, it's highly likely that it has some kind of app store you theoretically could use, but I would only really recommend using it in the very beginning of your Linux journey to find new software you didn't know about, as using simple terminal commands to update feels a lot snappier once you get the hang of it. I'd recommend looking into setting up an alias in your bashr/zshrc (depends on the shell; more on that later) to update everything at once so that you don't have to type that much every time you want to update. Here is an example of the commands that I use for this purpose:
- fu='sudo apt update -y && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt clean -y && sudo apt autoclean -y && flatpak update' (for most LTS systems, also updates all flatpaks if flathub is installed)
- fu='sudo pacman -Syu && yay -Syu --aur' (for Arch-based systems, also updates the AUR if you have the helper yay installed)
Should I change my shell?
Your shell is kind of like the framework for the commands you run in the terminal. It doesn't really matter that much as to what shell you actually use (the default one is bash), but I would recommend at least looking into using ZSH, as it has better autocompletion. To help you a bit and to also give you more customizability if you plan on using it, I would heavily recommend using oh-my-zsh.
How often should I update?
One of the best things about Linux is that you can always choose yourself when to update; there are no annoying automatic updates (outside some rare self-updating software). On an LTS, about once a month is more than enough; the distro will also do virtually all the work for you in this case. On a rolling release distro, you should update about once a week and make a snapshot with Timeshift before updating (more on that later) to avoid problems and having potentially broken packages. In very rare cases you might have to downgrade some program until your next system update; look into how to do that online. You also should clean your app cache once or twice a year; also look at how to do this online. Again, you should really read the terminal output on a rolling release system, as stuff like GRUB doesn't apply updates automatically here.
How do I configure [software]? It doesn't have a GUI!
Config files are either directly in your home folder or in the .config folder. Use the ls -a command to see dotfiles (as ls hides them by default when running without any arguments), and use your text editor to edit them.
Software compatability
Let's talk about the elephant in the room. No, not everything you use on Windows will easily work on Linux out of the box. However, for stuff that either has Linux native ports or is a native alternative program, you should pretty much just use those, as it helps you get into the workflow a lot more than if you would try to use Windows software all the time with workarounds. For stuff like video games, Steam has a very, very good feature called 'Proton.' If a game does not have a native Linux version, you can enable Proton in the options. It is basically Steam's own version of Wine that tries to translate Windows games into playable Linux games, and it works really well for most single-player games like 'Far Cry,' for example. However, a lot of bigger online games don't work on Linux or only have offline content (like GTA V) because a lot of those games have vile and evil kernel-level anti-cheat for no reason that just won't work on Linux (until Valve finds a workaround, winky face). If you want to check if your favorite games work with Proton, or even have a native version go to ProtonDB. For games or applications that aren't on Steam, you can often use Wine, a compatibility layer for Windows apps that you have to run through the terminal. It also has a site to check compatibility called WineHQ; however, for unpopular or very old apps the user reviews may be outdated or nonexistent. For RPGMaker games, there's EasyRPG. However, there is one big problem that a lot of people will have: you cannot use modern versions of Photoshop because of the evil Adobe Cloud services. You can technically use a hacky workaround for it that kind of works like WSL but for Windows instead of Linux, but I wouldn't really recommend it because for me it kind of defeats the purpose of using Linux in the first place. One option you might like is to dual boot. For most people that don't use image editing software professionally, Photopea or GIMP will be enough.
Some notes on using NVIDIA graphic cards
NVIDIA graphics cards are known to be a bit buggy sometimes; it's gotten a lot better in recent years, but compared to AMD, the open-source drivers from NVIDIA are still not quite as good. However, unless you're planning on getting a new PC soon or want to upgrade your graphics card, you can most likely use your NVIDIA graphics card with minor stuff to troubleshoot once in a while and don't have to spend the extra money on a new one.
Recommended software
- Text/code editor: Vim/NeoVim. Look into plug-ins for these if you want, but they aren't strictly necessary.
- Terminal: Alacritty, st (for older computers)
- System Recovery Tools: Timeshift (comes pre-installed with Linux Mint)
- Browsers: LibreWolf, Brave
- RSS readers: RSS Guard (if you want a GUI), Newsboat (if you want to use the terminal)
- Office Suite: Just use LibreOffice
- Minecraft Launcher: PrismLauncher, you will need a Microsoft account
- Installing software from places that have Git: git
- Mass editing of metadata: EasyTAG
- Matrix client: Element
Resources and guides
- Arch Wiki (not just for Arch but also for other distros, as it also has a lot of info about some other programs on Linux in general)
- Gentoo Wiki (similar story to the Arch Wiki, also has a good guide on how to build your own PC)
- /g/ (it's 4chan, dude)
How do I try out Linux without fully comitting?
Either by using a virtual machine or some old cheap laptop from anywhere, the popular meme option is the ThinkPad X220.