Congratulations, one of us, one of us!
I have been using Linux for almost two decades now, and keep helping people. I have seen many pitfalls people fall into, and I'm here for to provide some introductory advice.
Before we begin, let's summarize what Linux is. Linux is an operating system based on Unix. MacOS and BSD are also based on Unix. The job of an operating system is to manage the hardware for the user. This is not an easy task, and requires drivers, process scheduling, security aspects, and… I won't delve into the technical aspects of how that's done in this article. The important thing to know is that the OS is responsible for providing you an interface by which you can get your stuff done.
There are a few similar terms which are often misused in the field, including distribution, kernel, desktop, and desktop environment. I will clear up the difference between these.
The operating system is a collection of a few things, but it always starts with a kernel. When using the terms OS, Operating System or System we can refer to everything up to, but excluding, the applications themselves.
The kernel is a single process running in memory, responsible of allowing the user to run processes, and access hardware. To do this, we need drivers, which are loaded as modules into the kernel. They can also be part of the kernel itself. Linux, itself, is only the kernel, and has many different configuration options. There are several versions of Linux, and we're currently on version 6.1.6, each of which support different hardware and parameters.
Generally, you are running the kernel as the underlying engine of your operating system, installed from a distribution. A distribution, —often just called distro—, is nothing more than a collection of programs which someone decided to make available to the public. As such, it is distributed to you.
Many people think distributions and desktop environments are the same thing, but that's not true at all. Generally speaking, you can swap out your desktop environment very easily on any distribution. If you look at images to see what looks cool, you're generally only looking at different desktop environments, with different themes. You can change themes quite easily within most desktop environments.
You might hear some people talk about major distributions, referring to distros such as Debian, Arch, Ubuntu, Fedora, or SolusOS. Most distributions are just spin-offs from some major distribution, since it'd be silly and a waste of time to do the same work many times just for thematic preferences. This is an important choice to make, as they are to a large degree incompatible, although they mainly only differ in how you install packages, and which repositories are available.
A repository is just a list of all available programs (and their versions). Some repositories offer more experimental software, while other repositories provide very stable, tested and secure software. Different distributions set the balance point between stability and fresh software at different points. Technically, you can install any Linux-compatible software on any Linux-machine, provided you have the correct dependencies available, but doing this manually is a pain in the ass. A package manager takes care of installing all the required dependencies for your system to just work after you tell it to install your favourite program.
Use Kubuntu or Fedora KDE. If you're feeling brave, or want to learn how software works under the hood, use Arch Linux or Gentoo.
Don't listen to the internet if it tells you to install stuff with `make`
, `wget`
, or `curl`
. Use your package manager to install packages. If you can't find some software through your package manager, request your favourite programmer friend to give you a repository from which to install it instead.
Don't tinker with stuff in the filesystem, especially anything outside of your own home directory (/home/yourname
), unless you absolutely know what you're doing, and are aware of the consequences.
Do NOT run any commands from the terminal unless you understand completely what it should do. If you still are going to run some command from the internet, don't copy and paste it. Type it out manually.
Ask for help! We are friendly, I promise. Just explain what you want to achieve, what you have tried, and what you're struggling with. Most of us are willing to help