tricks of the trade, and a compilation of my failures over the course of months!
overview of filesystems/deep dive about the kernel: Filesystem Hierarchy Standard
my own journey with linux! : Watt's Debugs
for beginners
- you have the option to dual boot windows so you can get a grasp of what you're dealing with regarding different linux distros/choosing your favorite
- there's really something for everyone who is interested, and a lot of them can work out of the box
- examples: linux mint, or any distros that come preinstalled with a desktop environment
- this is a secret tip from yours truly: choose a distro that is most compatible with your current hardware. once you understand this, you've practically mastered everything!
- [!] i do personally recommend clean installs with a USB live launch/desktop environments because you have the advantage of a GUI just in case anything goes wrong
- additionally, keep a backup of your files on another drive, usb stick, etc;
- the best way you can learn linux is to be consistent, but most importantly - persistent!
distros
- there a lot of videos and discourse around "which is the best distro" and things of that nature, but i urge you to choose one that's best for you, and your use case. whether that be gaming, programming, or art, there is something for everyone regarding linux.
- if you configure your USB stick correctly, you can do something called "distro hopping". This is what i did too before i settled on my current distro. plus, it's great to have another distro you are very familiar with, and know a lot about as a backup option.
- at least having some knowledge about most popular distros across the board will teach you about the people who use them/unix philosophy. it's true that when you learn linux, you're not learning a program. you're actually learning about you. isn't that so awesome???
installing programs
- do not install programs using root!!
- when you first have a user account you generally have a password you can use to escalate privileges, but this should only be done for certain commands that require it.
- additionally, programs online will not generally request it unless it is something related to your root folder (e.g. timeshift-launcher), but others that seem sketchy or from the AUR directory should be avoided!
- half the time will be debugging errors, and comfortably reading the terminal
- yes, do not be afraid of the terminal. generally speaking, the computer is clever, and will give you various warnings related to: escalated privileges, syntax errors, and help flags
- follow installation instructions according to what package manager your distro provides (whether that be sudo, pacman, etc;). Mixing of these tools can cause unforeseen errors, and also conflicts between packages if they don't match the distro you're using.
- how do i know if a program is compatible with linux? an excellent question! normally, an official website will tell you what packages offer and for what systems they are supported on. but for things you already use, a wide array are surprisingly more efficient on linux operating systems. a lot of people say this, and i honestly agree!: any program not built with linux in mind is a bad one!
documentation
- documentation and man pages are your best friend, and especially when you don't have internet access! you can read right from the terminal.
- someone else said this and i totally started doing it too: keep a handwritten notebook dedicated to linux
- i can't tell you how much of a good strategy it is to keep track of errors you encountered, or debugs. it's really awesome to go back when you are stuck, and need a quick ref.
- READ!! SOURCE CODE! mes ame, let me tell you something. you will save yourself any massive headaches by reading source code wherever it comes from on the web, especially github
- typically, only proprietary software is close-sourced, meaning you can't view its source code. that's usually standard practice of larger companies.
- however, programs created by individuals is known to be open-source. it is a nod of respect between devs and programmers.
- there are many vids on YT that can teach you about getting to read source comfortably and what you should be looking for, even if you are not an experienced coder.
- listen to your gut. if something doesn't feel right in a directory, or what permissions it tries to execute, just avoid it. most people will catch it and report what they find too for other people to see.
- at least once: try to build a program from source. it's actually really fun, and you can see what's going on under the hood! a lot of people have AUR package helpers, but i really don't recommend this as a first step until you understand what a program does first/installing on your system.