OS components that are essential to learn to become Linux super user

CaffeineAddict

Well-Known Member
Joined
Jan 21, 2024
Messages
3,968
Reaction score
4,156
Credits
32,446
This thread is open to discussion about what do you think are essential components of GNU/Linux that a user "should" become master of, to become effective with managing, troubleshooting and administering their Linux OS.

First what is "component"?
My definition is as follows, it's a distro agnostic and DE agnostic software (or related group of software) that governs large part of how OS function and how it's administered.
Agnostic means that any distro and DE will usually have these components in them, there are exceptions of course, few distros or DE's took freedom to use alternative components or parts of them.

Examples such as:
  • init system (e.g. systemd, including various systemd commands, there are many)
  • Boot management (boot loader/ boot manager, e.g GRUB, configuring, manual booting, rescue shell etc.)
  • Kernel (e.g. kernel command line arguments, reading and understanding kernel state that's written to various places on FS)
  • Terminal (a set of CLI software present on every distro, irrelevant of which terminal emulator one uses)
  • Shell (e.g. bash, sh, zsh etc. how it's config files are read, configured, organized etc. including writing scripts with them)
  • Logs (e.g. interpreting logs, rotating logs and other manipulation with the logs)
  • Security (e.g. apparmor, aide, nftables etc.)
  • Audio (e.g. alsa, wireplumber, pipewire etc.)
  • Networking (e.g. NetworkManager and systemd-networkd)

This are all basics, no server management, no coding, no maintaining of packages, no compiling/building or any other advanced things that aren't essential.
Stuff that's not agnostic is also not included, such as specific DE like KDE, Cinnamon, LXDE etc.
Also random software such as password manager or audio player can't be part of this list, this depends a lot on what certain individual uses rather than forming an essential part of Linux.

Feel free to exclude or include certain parts, redefine them or add new components depending on what you consider essential to know, and post your list.

Btw. I haven't learned good amount of this list above, only scratched the surface, and I'm out of energy to learn more.
 
Last edited:


  • systemd (Including various systemd commands, there are many)
  • GRUB (e.g. configuring GRUB, manual booting, rescue shell, grub shell etc.)
You could change these two to init system and bootloader, there are distributions that don't use systemd but another init system and may use another booatloader.
 
Terminal is a good place to start with some basic terminal commands to start off. I'm trying to replace everything I can with the terminal. Text files (instead of Libre Writer), to do lists, calendar, alarms, etc. The terminal is where things get done.
 
You could change these two to init system and bootloader
Done, although those other alternatives are so rare it's questionable whether anyone would benefit much by learning them, it also takes a lot more time to grasp all of them.

The terminal is where things get done.
True, pretty much every thing I listed can and in most cases is done in either in terminal or in text editor.
UI is too limited, for instance NetworkManager frontend will help you with only a tiny subset of what NetworkManager can do.
 
Done, although those other alternatives are so rare it's questionable whether anyone would benefit much by learning them, it also takes a lot more time to grasp all of them.
I think pointing out that there -are- options will help the would-be power users to get the idea of what the init system and boot loader are. It seems that linux noobs coming from MS Windows often have no idea what a "file manager" is because they the never had to think about it before - there was always just Windows Explorer so they never even had to know its name. Same with boot loader, init system, window manager, etc etc.
 
managing, troubleshooting and administering their Linux OS

A major field is getting knowledgeable what you can accomplish as a regular user and for which you need administrative rights. Linux projects have made great advances to the effect of putting power into the user domain (e.g. flatpak, systemctl --user, etc.). Yes, it is meta to "components" as you define them, but it has a large effect how bad you can mis-configure an out-of-the-box Linux distro.

An example: I switched to using a new desktop over the last month. It is called niri and works particularly excellent to manage smaller screenspace (I use a 12inch laptop, and that's rounded up). The only parts I needed to setup as admin was install its related packages I wanted to use. The packages provided no reasonable default configuration, but required to copy default templates to the user home directory (~/.config/niri/) and editing them to my liking. All of this, including starting services for the desktop (notifications, traybar, screen-lock, etc.), was done as regular user and can be configured in a way it does not interfere with other installed desktops.

Other desktops are generally configured the same way, though some (or the distro distributing them) prefer to hook up system-wide services.

Just using a regular user generally is much safer and readily reversible for the system overall, that's why I consider it important. So, you might consider adding a bullet along the lines of "getting to know how your desktop environment (DE) and its components is configured OOTB and how to configure it".
 
Can we add "boot manager" (specially for dual boot) and "initrd" also? Plus little bit knowledge on bios/ UEFI. What do you think?
 
Can we add "boot manager" (specially for dual boot) and "initrd" also?
aren't boot loader and boot manager same thing? boot loader is more Linux term while boot manager is how it's called in Windows.

And initrd is not something we can manage, its meaning is "Initial RAM Disk" if I'm correct, this falls into scope of the Kernel which is already in the list.

Plus little bit knowledge on bios/ UEFI.
This makes sense to know but it's not Linux specific or part of OS.

So, you might consider adding a bullet along the lines of "getting to know how your desktop environment (DE) and its components is configured OOTB and how to configure it".
Not sure if it's applicable, while DE can be considered a component there are many DE's as well as window managers.
Also existing components like Audio and Networking are configurable in DE and it depends on DE how it's done.

This area is too much variety IMO.

e.g. flatpak
This makes more sense for Package management group, but it's not distro agnostic, there are plenty of package managers.
flatpaks and appimages just happen to be an exception.

I find it difficult how to categorize DE's and package managers properly.

Btw. I forgot about https://labex.io/linuxjourney which does similar categorization, although many categories are too specific or not Linux specific like DNS, and there is also no mention of DE's or package managers as well.
 
aren't boot loader and boot manager same thing? boot loader is more Linux term while boot manager is how it's called in Windows.

And initrd is not something we can manage, its meaning is "Initial RAM Disk" if I'm correct, this falls into scope of the Kernel which is already in the list.
Boot Manager is focused on choosing which operating system or boot entry to start. On the other hand boot loader is focused on loading the chosen os kernel into memory.

Initrd is a temporary minimal root file system in ram which is essential for providing the Linux kernel with the necessary tools and drivers to locate and mount the real root file system on a storage device.
 
I question this statement.
OK, I pull it back.

Reason why I focused on just one is because everybody uses just one, in my case that's GRUB so if I want to learn about it I'll focus on GRUB only.

But in your case you'll do the same I guess, the whole point is that grasping everything takes too much time, and stuff which you don't use but learn is easy to forget.

Of course if one wants to go further than just being super user toward becoming all round administrator they'll want to know everything, but an admin will work with this every day while super user won't so an admin won't forget things as easily.

Boot Manager is focused on choosing which operating system or boot entry to start. On the other hand boot loader is focused on loading the chosen os kernel into memory.
Yes there is subtle difference, but GRUB handles both things, I'll edit it to "Boot management"
 
This makes sense to know but it's not Linux specific or part of OS.
For installing Linux OS using USB , you need to change the preferred boot device from bios/UEFI otherwise it will load default OS from internal storage.
 


Follow Linux.org

Members online


Top