Linux For Normies (from a normie's point of view)

title

Image made using GIMP.

Psychedelic Dilemma by Goalien

  Who am I and why am writing this?

When it comes to linux, I'm a mere beginner user. I used Windows on a regular basis, I'm not familiar with macOS, nor iOS.

This guide was made in order to rectify my knowledge on Linux, also to help people start on using Linux and/or help them understand this "difficult Operating System".

  Context for the more "Linux-savvy" people: I started using linux-based distros since 2020, starting with PopOS and Solus.

Afterwards I fell in love with linux-based distros and chose EndeavorOS as my permanent distro.

  This article is leaning more on telling rather than showing. I will mostly give you a few recommendations and tips but you will have to take the big leap and experiment using linux.

Table of contents

  • I. Introduction - Why Choose Linux In The First Place?

    II. What Basic Knowledge Do You Need In Order To 'Understand' Linux? (And Some Additional Tips)

      a. People Who Don'T Often Use A Computer

      b. Someone Who Is Actually Tech-Savvy But Never Used Linux.

      c. Gamers

      d. Programmers

      e. Artists

      f. Video Editors/Film makers

      g. Musicians (Voice Actors, Music Producers, Etc.)

      h. Writers

     III. Common Misconceptions

     IV. List Of Things That I Do/Do Not Recommend

     V. EXTRA CONTENT

      a. People or sites that I would highly recommend checking out for more tips

      b. Linux Vocabulary

      c. Cheat sheets for useful folder locations

      d. File partitioning and Installation

  • I. Introduction - Why Choose Linux In The First Place?

      Linux offers you a hold on your Operating system (OS). You have a choice that other OSes may not offer you.

    You can customize a "Linux system" in any way you want, install or remove any kind of software from it, micromanage the tiniest details.

      The Linux community has evolved a lot in the past decade, thus offering new users an easier time, even if they're not tech-savvy.

    There are many of tutorials on Youtube which are really easy to comprehend and will help you get started quite easily.

    Linux is also known for being lightweight on resources out of the box for both older and modern computers.

    If you are unsure whether or not Linux is for you, I'd highly endorse trying it on a virtual machine.

    You can even try it out on your browser for free.

    For the tech-savvy, booting the ISO of the distro that you want to use is also an option, since most distros provide a working environment that you can tinker with as long as you're using the ISO.

    II. What Basic Knowledge Do You Need In Order To 'Understand' Linux? (And Some Additional Tips)

      I compiled a Linux vocabulary below, which hopefully will be enough to give you a headstart on using Linux.

    (press CTRL+F in order to search a term that catches your eye)

    What to expect - another introduction

      Terminals - this is where you might spend most of your time on Linux. Instead of using GUIs (Graphical User Interface), some users prefer

    using the terminal.

      Software and drivers issues - You won't be able to run software specifically made for Windows/MacOS, same thing applies to drivers.

    Wine can run Windows applications, sometimes quite well, but other times it doesn't work at all. You can try out Playonlinux for older games and software or Bottles as a last resort.

    You could likewise use an emulator such as QEMU which runs pretty well but it requires some tinkering and patience.

    The Arch wiki has a list full of available software for Linux so make sure to check it out in case I do not provide enough information.

    It's easy to find alternatives but the hardest part is getting accustomed to it. I will cover that issue soon for each category of user I could think of.

    a. People Who Don'T Often Use A Computer

    (People Who Use Computers For Trivial Things But Still Know A Few Basic Things Like Installing Applications)

      Even though several Linux distributions were built to be more user friendly, this path will make you rely on other people's software. Be careful with what you choose to use.

      With that out of the way, there are many great distros you can choose from. I highly encourage choosing a popular distro since it offers more hardware and software support.

    For example, Ubuntu and its derivates have a software centre which makes installing packages a lot easier. It also comes with a straightfoward installer.

    Once you're done with the installation, by default most of your needed software/drivers have already been installed. Except for the software you want of course.

    Most Linux distros will have Chrome or Firefox installed by default, a good file manager, video player and other applications you will need.

    If something bad eventually happens, try reaching out to an active linux forum.

    b. Someone Who Is Actually Tech-Savvy But Never Used Linux.

    You will have to do a lot of reading. A few helpful resources to get you started have been listed at the end of the article.

    c. Gamers

    For those who are worried about finding their saves on Linux, pcgamingwiki provides the save location for most games on Linux.

    Thanks to Proton over 4000 games can run on Linux.

    Proton is a compatibility layer which allows you to run Windows games almost flawlessly.

    Proton was developed by Valve, so you will have to use Steam in order to use Proton.

    Additionally, games that use anti-cheat software can also run without an issue.

    Also, Steamtinkerlauncher allows you to install modding software.

    If you don't use Steam, I recommend trying out Lutris, Bottles or PlayOnLinux.

      With the exception of Valve, no other gaming company tries making their games compatible to Linux.

    The drivers and the process of improving Linux for gaming might get troublesome for those who lack technical knowledge.

    It's usually better to use an AMD CPU/GPU since Nvidia/intel driver support on Linux is scarce.

      Overall I recommend installing a well-known distro with a lot of packages since it has better support for gaming.

    Be careful in case you might need proprietary drivers, some linux distros DO NOT support proprietary drivers at all.

    Moreover, for those who are tech-savvy, I would suggest checking out QEMU along with KVM for emulating games.

      Addendum: For those who use RGBs, OpenRGB is a great alternative for propietary RGB drivers.

    d. Programmers

    Using Linux will definitely help you learn how an Operating System works, especially if you try installing your distro manually or whenever an issue occurs and you need to troubleshoot.

    Vim is a great text editor for programming.

    Also, I would highly recommend checking out Julia Evans' zines which give an in-depth analysis on some basic Linux functions.

    e. Artists

      The artists actually strive on Linux. 3D artists have access to programs like Blender which can be used for rendering absolutely stunning animations.

    2D artists can use Krita or GIMP which are open source and can be installed on most linux distributions.

    Storyboarder, as the name implies, is for animators and it seems pretty decent for its purpose.

    Vector and graphic desginers can use Inkscape.

    Driver-wise, many manufacturers provide linux drivers in their support page.

    f. Video Editors/Film Makers

      You're out of luck because running Adobe software and Vegas on a Linux machine can prove difficult.

    Fortunately, there are still a few alternatives for you.

    Olive and Shotcut are good enough if you want to make simple edits.

    DaVinci Resolve is a good alternative for a professional video editor.

    OBS is an open source video recorder used widely on Windows as well.

    g. Musicians (Voice Actors, Music Producers, Etc.)

      There are many great music producing programs such as LMMS.

    I recommend using Tenacity instead of Audacity.

    h. Writers

    Writers will always find an array of intriguing software to use in their journey.

    Focuswriter is a software if you want to write undisturbed.

    Zotero is a great software for research.

    Zim is a piece of software which works well for note-taking.

    OnlyOffice offers pretty much what Microsoft Office offers. (it might take some time to get used of the UI)

    There are more office suites available, more specifically, open source ones. (e.g Collabora Office)

      In conclusion, you will have to switch to open source programs most of the time and there might be issues with finding and installing drivers but you might also be in luck and your product might work out of the box. Be careful in case you need proprietary drivers.

    title

    III. Common Misconceptions

    !Android is based on Linux so there should be a few similarities right?

      You've probably heard that Android is based on Linux. Android has been heavily modified, so much so that the similarities between it and Linux can barely be observed.

    There is a huge difference between a desktop and a phone, so don't expect any similarities.

      Linux is very versatile and the distros you might experiment with might turn out to be totally different from one another. But there will still be similarities, even if they're unnoticeable.

    title

    !Linux is only used for running servers.

      There might be some truth to that statment. Companies often run Linux on their servers because it offers many advantages compared to its contenders. (Linux is known for being secure and free)

    There are certain Linux distributions made specifically just for that purpose yet most of the linux distros you will encounter will be dedicated towards regular desktop usage.

    !Linux is COMPLICATED and shouldn't be used by inexperienced users who have no programming knowledge.

      Everything as a beginning. For new users it certainly seems very difficult to get accustomed to Linux, yet the beginning is the hardest part.

    You can install an "out of the box distro" like Zorin OS or an Arch-based distro with a Calamari installer.

    (Arco Linux is an Arch derviate that prides itself for teaching people how to use Arch, I cannot attest to that as I haven't used it myself).

    Programming might help you in certain areas but depending on your needs you might not need any of that knowledge at all.

    Hell, I hate programming and I still use Linux.

    !Linux is 100% secure.

      Nothing, and I mean NOTHING can be 100% secure and private. There will constantly be bugs, backdoors and zero-day issues in software and other codes.

    Just because Linux is used by a small percentage of users, it doesn't make it invulnerable to such things. It means that hackers have less of an interest in exploiting it.

    Trust me, people have created malware for Linux, it is rare, yet it still exists. Linux may have an advantage over Windows.

    A trojan would not be able to spread to multiple computers like on Windows.

    The best thing to use in order to avoid malware or anything malicious is the use common sense.

    Moreover, it really depends on what distro you choose. Some distros are better equipped than others.

    Or if you truly are skeptical about everything and everyone you could make your own distro.

    !You must follow a certain philosophy.

    *I don't wish to develop this part further since I have no interest in the GNU philosophy nor copyright licenses.

      There are some people who firmly believe in the GNU philosophy .

    Linux is basically the GNU system which is why this philosophy is important to certain users.

    TL;DR: Only using software that is ethical to said filosophy, i.e software which follows one function (e.g systemd, a service manager. does more than one function, which makes it ineligible).

      Unrelated to the philosophy, the linux community, composed mostly of programmers, is keen to using open source software and condemns closed source programs.

    You can certainly install proprietary software or any kind of applications really.

    No one is stopping you from making any choices.

    Software licenses might come in handy for programmers since they decide for what purpose a software can be used. (e.g if you can modify and distribute modified versions of it)

    !You MUST use an 'advanced' distro in order to know more.

      Please do not try an 'advanced' distro just because someone pressured you to do so.

    It's okay to be a simple user who just wants to use Linux just because you can, it won't make you 'inferior' from other users who want to learn more about Linux.

    The Linux community may be cruel at times but don't get discouraged because of that.

    IV. List Of Things That I Do/Do Not Recommend

      This won't be composed of every single distro/desktop environment/window manager or have any complicated explanations. This list is solely based on my experiences and views so it's pretty biased.

      As I mentioned in the vocabulary, each Linux distro has its own 'flavor' even if it's based around another distro, it's still its own unique thing. Don't worry if you can't still choose your distro after testing a handful of them, choosing your distro takes a lot of time.

    Ubuntu and its derivates (Pop OS, Linux Mint, Peppermint OS, etc.) - It's an okay distro, the best known and it's very user friendly.

      It has all the programs that anyone would need and also has a software centre.

    Pop OS is a distro made for gamers. Mint OS and Peppermint OS are other derivates that are less bloated than Ubuntu.

      I would recommend Ubuntu and other Ubuntu-based distros (mostly the afformentioned) to new users.

    The fact that it's very user friendly and has lots of GUIs makes it easier for the new users to transition from Windows or any other OS to Linux.

    Debian and its derivates (MX Linux, antiX, etc. )- Maybe one of the oldest distros, Ubuntu is based on Debian , I'd say that Debian is quite all right as well and offers just as much compatibility as Ubuntu.

      Another standard distro that everyone knows about, I would recommend it because it's lightweight (including the afformentioned derivates).

    Arch Linux and its derivates - I use an Arch-based distro and everything is running fine and dandy. Might not have as many packages as Ubuntu or Debian but it's pretty good, I'd recommend it for gaming.

      Arch Linux additionally has AUR (Arch User Repository) which is great for getting more packages. You can also use Octopi if you prefer installing software through a GUI.

    The new users can get the Arch Linux experience sans the complicated installation process by using any Arch-based distro with a Calamari installer.

      I highly recommend using Arch or any of its derivates, except for Manjaro.

    Beware, Arch Linux does have some big issues with updates and the bootloader. So make sure not to interrupt any updates or your system will get messed up. (It happened to me.)

    Gentoo and its derivates (Funtoo, Redcore) - Gentoo is complicated. Its package manager can be quite a pain to use if you cannot configure it properly as the compiling times last longer than expected.

    Also the entire installation process takes a long time to understand and writing something incorrectly will ultimately ruin everything.

      I would certainly not recommend it to new users, although Redcore may be a better alternative installation-wise if you're still curious. (it has a Calamari installer but it only comes with KDE by default)

    Void OS - Void OS is an independent distro like Arch and Gentoo. I've been using it for a while, although it offers a limited amount of packages.

    It's a fine distro, nothing too special. I wouldn't suggest it to new users.

      I would however recommend it to the users who want to tinker more with Linux.

    Solus - It didn't perform to my expectations last time I used it but it's still a decent distro with a limited amount of packages. I have mixed feelings when it comes to recommending it.

    Bliss OS - a silly recommendation for anyone who wants to try out using Android on their computers. It has a few bugs so I would recommend NOT TO install it directly on your computer but instead emulate it on a virtual machine.

    I'd recommend being very careful when choosing your distro, especially those who do not have a lot of support.

    b. Desktop environments that I do/do not recommend

      Choosing a desktop environment is not that big of a deal, I use XFCE most of the time, it might look uglier but it does its job.

      I would not recommend GNOME for the fact that it's pretty resource-heavy in my humble opinion but at the same time it's really easy to customize it. (you can add extensions like this one )

    KDE is another desktop manager that is often found in installers. I dislike it for its pre-installed software that you straight out cannot uninstall (or at least I didn't bother to research much on it) but it's a fine desktop environment for the users who just want a more out of the box experience.

    Cinnamon, usually known to be used on Linux Mint, feels very standard. It's not resource heavy and its GUI is facile to use. I would recommend it to new users.

    c. Windows managers that I do/do not recommend

      Most desktop environments come with a WM already pre-installed so you shouldn't worry much about your WM unless you want to customize/rice your linux distro further.

    Windows managers are often used for tiling windows and keybindings.

    i3, Awesome WM, DWM, BSPWM and Xmonad are the ones that are most often used. I often used EndeavorOS with Sway preinstalled. Sway has caused me a few issues but I'd still recommend it.

    V. EXTRA CONTENT

    a. People or sites that I would highly recommend checking out for more tips

    Your distro's forum or server for technical difficulties. (PLEASE READ THE WIKI OF YOUR DISTRO FIRST BECAUSE IT HOLDS VITAL INFORMATION THAT WILL HELP YOU. ALSO, PLEASE DON'T ABUSE PEOPLE'S KINDNESS)

    The Arch Wiki

    (Yes, just the Arch wiki because it's very informative on bugs and other technical things in a very succinct way. It's really easy to read, I swear. Additionally, it's still useful even if you don't use an Arch-based distro)

    Howtogeek (Has tutorials for literally anything tech-related)

    Vimified (Helpful for learning the vim keybindings.)

    Distrotube

    (This channel contains reviews on software for Linux and distros. It also has some nice explanation videos on basic things.)

    Mental Outlaw

    (Has some nice Gentoo tutorials. He sometimes presents some useful software or just tech news in general.)

    Veronica Explains

    (I haven't watched this channel much. It's very tech savvy yet it contains a decent chunk of useful tutorials for beginners.)

    Linuxcommand (Learn the basic commands)

    Alternativeto (Pretty good for finding alternative software for anything.)

    JUST SEARCH. The internet is a vast sea of resources and it holds the answer to many questions. (Yes, even very specific technical problems.)

    Linux vocabulary

    Name

    Definition

    Operating System (OS)

    This is what you actually use for your basic needs, the main software that manages everything inside your computer.

    Kernel

    A kernel is the seed of it all, one of the most basic things of your system.

    It allows you to run your basic programs and more. That is what Linux is in fact.

    UNIX

    A propietary OS widely used a long time ago. Many OSes are derived from it, including Linux and macOS.

    Linux IS NOT an operating system but the kernel of the operating system.

    Window manager (WM) (DWM, i3, Awesome, etc.)

    It manages your windows (e.g how they look, where and how they're placed).

    They also come with their own taskbar.

    (a taskbar is the bar often located on top or at the bottom of your desktop, it contains a start button, icons or anything else you want it to have.)

    Desktop environment (DE)

    (GNOME, XFCE, etc.) - The common graphical interface of your computer

    (may include management of your basic user settings, toolbars, anything that a basic desktop needs pretty much).

    You do not need to install a WM since most desktop environments have their own WM which gets preinstalled.

    (Unless you want a different user experience, you can change your WM although I would recommend you to be careful if you are a beginner.)

    SuperUser DO (sudo)

    The allmighty administrator, root is its traditional name.

    Be careful when you're using a command with sudo, you're giving all the priviledges to it which can harm your system.

    (Sudo has more permissions than a Windows' administrator.)

    Repository (repo)

    A database of packages.

    Package

    The software's files except it's all compressed.

    Dependency

    It's what your software needs in order to work properly.

    (it's like having to install Microsoft Visual C++ for a certain program.)

    Package manager

    It's pretty intuitive, it manages your packages and makes the process of installing software much MUCH easier.

    You can uninstall, upgrade/update your software using it. Each distro has its own package manager.

    BEWARE, some distributions might have less packages in their database than others, which may suck for you, depending on your needs.

    AppImage

    Portable software (it's like running an '.exe' file except on Linux)

    Flatpak

    You can run software in an isolated environment (known as sandbox) across many distributions.

    Some people use it when their distro doesn't have many packages but it's not very secure.

    Snap

    Similar to Flatpak except Snap is a lot older and made by the devs of Ubuntu. It's pretty controversial.

    Compiling

    This is what happens when you lack a package manager, you have to install all the software manually.

    (it's not as hard as it sounds depending on the distro and also what type of software you want to install)

    PLEASE DO NOT TRY COMPILING SOMETHING BIG LIKE A WEB BROWSER, it will take you an eternity.

    Try using it in an Appimage format, preferably also using AppImageLauncher.

    Distro (distribution)

    The different operating systems that use Linux as their kernel. Each 'distro' has its own 'flavor'. (Gentoo, Arch linux, Debian and other such distros are an example)

    Rice

    In my opinion, it's the act of customizing your Linux distro so it could look more 'aesthetic'

    or pleasant using all kinds of means without caring much about functionality. (see more examples in r/unixporn or by simply searching)

    (for those who are curious about the origins of the term)

    Fork

    A copy of the original program/code that has been modified by someone in some capacity.

    For example, Librewolf is a Web browser which is a Firefox fork.

    Its main purpose is to be more secure and private than Firefox by having certain settings modified by default.

    Open-source and Closed Source or Proprietary Software

    From the EFF Site : Open source software, or free software, is software that can be distributed freely in a form that lets others modify it and rebuild it from scratch.

    While it is known as “free software," it's not necessarily free as in zero-cost: FLOSS (Free/Libre and Open Source Software) programmers can ask for donations, or charge for support or for copies. Linux is an example of a free, open source program, as are Firefox and Tor.

    Closed source is when a software's code is private or unavailable to the public's eyes, which makes the software proprietary.

    Freeware

    Free Software (it doesn't mean that it's Open source by any means, it just means that it's free to download.)

    FOSS

    Free Open Source Software

    UI

    User Interface. It's basically what you interact when using a software or browsing a site. (e.g the font switcher from Microsoft Word)

    GUI

    raphical User Interface. Instead of lines of code processed on a terminal you can operate a more visual representation of that.

    (Like pressing a switch to turn something off instead of issuing a command for it to turn off.)

    sudo rm -rf /*

    If someone tells you to run this command DO NOT DO IT. It will delete everything from your system.

    title

    A representation of the system, more precisely showing where the kernel is located at in comparison.

    c. Cheat sheets for useful folder locations

    (This was made purely to pinpoint certain locations, in no way a replacement for a proper explanation.)

    ( this site offers a more in-depth explanation for those who are interested)

    Depending on your distro, file locations can vary significantly. Especially if you use something like Flatpak to install software.

    Some files may be hidden by using a '.' at the beginning of the file name.

    I highly suggest that you check the 'show hidden files' option if you wish to tinker with the configuration files of your system or just find useful files like your game save files.

    The '~' in ~/ signifies the user folder. (/home/$USER)

    /usr/share - global configuration for some distros

    ~/.local/share/ - may contain save game files or the files of other programs

    ~/.config - local configuration

    d. File partitioning and Installation

    Instead of C: or F: you got /dev/device_id or /dev/sd[a-z][number] (e.g /dev/sda1) - your partition editing application will provide you with more information.

    or instead of dev/sd[a-z][number] you can have /dev/nvme0n1p[number] if you have your disk connected through an NVM Express port

    ext4 - very commonly used file system during partitioning. Trying to access a disk that uses ext4 on Windows is pretty hard, so beware.

    ntfs - a type of file system which can also be accessed through windows. BEWARE, NTFS is known to have issues on Linux.

    btrfs - another common type of file system.

    Linux swap - Usually used when your physical RAM is fully used. Linux takes some storage space for RAM (so yeah installing RAM)

    Installing a Linux distro shouldn't prove difficult for most since most distros now provide an easy-to-use UI which guides the user throughout the whole installation.

    However, the user may encounter some difficulties, i.e the partitioning.

    Most Linux systems will let you erase your partition and automatically configure your partition, however there might be some who will have to manually configure their partition.

    For this section I'll suppose that you have an empty disk which you wish to erase and install Linux on.

    The arch wiki presents a more comprehensive guide on partitioning.

    If you want to install Linux on a virtual machine, I'd recommend giving around 30-40GB minimum

    Before a drive can be used for partitioning, it needs to be configured to use a specific partition scheme or table.

    There are 2 types of partition tables: MBR and GPT.

    MBR is used for older computers while GPT is used for newer ones.

    For the regular user who uses a mid/high-end PC/laptop GPT should be their choice.

    Afterwards, you will have to partition your disk

    Here's a common linux partition layout

    /dev/sda1 fat32 /boot/efi

    #/boot/efi is for UEFI partitions, in the case of MBR use /boot

    /dev/sda2 linux-swap

    /dev/sda3 ext4 /

    Recommended sizes: for the /boot/efi or /boot file the size should be 500MB,

    for linux-swap, if your machine is archaic (e.g. if it only has 512 mb of RAM), the 2x rules (i.e multiplying your machine's ram) should be used,

    if you use a mid/high-end PC/laptop it's usually better to keep the size at around the size of your RAM (i.e if you have 8GB of RAM, then linux-swap should use around 8GB)

    / is where all of your files are stored, as such you should give it the remainder of your space.

    End note: This article can be modified at any time. I still take any kind of criticism, so feel free to contact me. (I would love making a Q&A of sorts in the future)

    Furthermore, I would like to thank Tsvety for being a great beta reader and providing much needed feedback.