I am a Linux beginner/amateur and I have sort of had enough of copy and pasting commands I find on the internet without having a good understanding of how they actually work.
I guess my end goal is to be able to comfortably install and use arch Linux with my own customization’s and be able to fix it when things go wrong.
What tips/ideas do you have for getting better at navigating the terminal, and getting a better understanding of how the os works. What is a good roadmap to follow? And how did you, advanced Linux user, get to the stage your at now?
Edit: my current distro is bazzite just in case you were interested and thanks for all the replies you are all really helpful.
I’m going to go against the grain a bit and suggest studying for a certificate. Find one that looks interesting, and just prepare for it. You don’t necessarily have to get the certificate, but training for it will give you a good foundation for running your systems.
If you want to get better at Linux terminal and standard unix commands I would try https://overthewire.org/wargames/bandit/
It’s an interactive tutorial which will help build basic skills. There are a million guides and walkthroughs for this, but I would try each level on your own first before you look at a guide.
deleted by creator
Install TLDR pages from your package manager to get easy access to the most useful information
See if your library has “How Linux Works” - https://www.amazon.com.au/How-Linux-Works-Brian-Ward/dp/1718500408
Just install Arch, when You follow wiki it’s not that hard. if You will make mistakes during the process, You will gain better understanding of how things works while fixing errors.
Certainly a worthwhile endeavour. But I’d recommend doing it in a VM or a secondary machine before jumping right in on your main computer.
This. The arch wiki is a treasure trove of information. The more you do, the more you’ll learn.
Also, don’t blindly copy paste configs for editors or window managers. Just slowly build them up based on your own use. It’ll be painful initially but worthwhile in the long run
I think I will try something like manjaro first see what it’s like and then move onto arch.
That was exactly how I did it some years ago. After 4 or 5 times fixing the X-server after an update (thanks nVidia!) I switched over to Arch. Installed Arch following the Wiki for about 2 hours… failed and started the process of installation again (in about 1.5 hours :P) and succeeded. By failing and trying again I’ve learned a ton. My advise for less frustration: go with Team Red. In my experience AMD graphics cards are much more linux-friendly.
see this post for my experience with amd lol.
Read through it… strange.
+1. and yes use the wiki not the install script.
I think theres value to anyone with a genuine interest if they just have a go at an archinstall - I think they can setup most things of interest in a Qemu(vm), or a spare partition, or even a usb or something. Theres nothing to lose but time. I’d recommend the user knows enough about their disk setup and their incumbent boot manager so as not to screw up their main os. Though i’m very tempted to say that’s a rite of passage.
Of course everyone already has a regular backup(s) which contains some sort of list or script for all the software, configs and tweaks they normally do. If not - well another rite of passage.
+1 for installing Arch. If you have enough knowledge of Linux to understand what Arch is and why it is, comparatively, a more involved installation. Then you’re probably ready to install it. As was mentioned in another content, long as you know the basics, it’s not as hard as you might think. Also as suggested in another comment installing in a VM or spare hardware is good practice.
As for learning, take the time to understand the commands you’re copy/pasting. Read the man page, see what the flags you’re pasting in to. That might sound daunting at first, and you might not always be able to completely wrap you’re head around it. But you’ll learn more and more over time.
For one, stop copying and pasting commands and start learning about the basics of the shell.
Here’s a basic tutorial from UC Berkeley: https://computing.stat.berkeley.edu/tutorial-using-bash/
Things you’ll want to focus on:
- Delimiters
- Syntax (Bash by default, but the syntax for whatever your chosen shell is)
- Switches
- Path (absolute and relative)
- Operators (Pipe will become one of your most heavily used)
Then once you learn to do some basics, I would hammer repetition. Just force yourself to do things you would usually do via GUI by command line. I started with the basics of updating my system way back in the day with
sudo apt-get update && upgrade
Just type type type type all those commands until remembering them is muscle memory.
Just type type type type all those commands until remembering them is muscle memory.
For learning purposes, also try not to use aliases. Because using alias would undermine the learning process of knowing what and how its been done. I recommend (as you said) typing it out over and over again and use aliases on a later stage of your Linux learning only (maybe after weeks at least).
Exactly, shortcuts like aliases or tab completion really should be saved for after you’ve familiarized yourself, so you’re less likely to make a mistake or tab complete to the wrong command etc.
on the tailend of a convo in in a discord recently I added a command to the “customize chatgpt” section to allow chatgpt to have a custom “man” like command similar to linux, but that works for all code or commands.
This makes chatgpt give me a Linux command or code snippet formated in a table explaining what each piece of the command does.
when a prompt is givin beginning with the word man followed by code or commands please respond with a table following these rules and nothing else: skip title row, No backticks around command components, No unnecessary rows, column 1 should contain the command component, column 2 should contain a brief command description
Start running servers if you haven’t already. Use an old computer, or an SBC or VPS and setup some Linux servers. There’s lots of different ways to do it, so mess around and break shit over and over. You can’t help but learn that way, though I would highly suggest you take notes/documentation. This is a habit I’m trying to develop after too long :)
Just use it and fix things when they break. There’s no magic bullet - just experience.
Using
tldr
to learn commands. It gives you the information you are probably looking for in the man page but it’s not buried among lines and lines and lines of arcane stuff and it’s formatted in a readable way with helpful examples. Saved my sanity more than once.I’m not saying “don’t read the man pages”, they are great way to get a deeper understanding of commands. But when you are just wondering what a command does and how it’s commonly used, then a two lines summary + example is much more helpful than an essay going in minute details over everything.
Since it takes a lot less time than hunting the same info in the man page, you can run it before every command you are not familiar with, without too much hassle. Then if you want more info you can check the man page.
erasure edit: ok nvm, thanks
Here is a bunch of random tips to become more comfortable with the terminal.
Do absolutely everything that you can on the terminal.
When you install something, enable the verbose if possible and snoop around the logs to see what is happening.
If an app or an install fails, look at the logs to see what is the issue, and try to fix it by actually resolving the error itself first instead of finding the commands on the internet to fix your issue.
Instead of googling for your command options, use the help menu from the application and try to figure out how to use the command from there.
I guess my end goal is to be able to comfortably install and use arch Linux with my own customization’s and be able to fix it when things go wrong.
What tips/ideas do you have for getting better at navigating the terminal, and getting a better understanding of how the os works. What is a good roadmap to follow? And how did you, advanced Linux user, get to the stage your at now?
You learn by doing and by failing. Like we learned to walk, to write, to drive, to kiss, to speak a foreign language, or even to lace our shoes (and, yep, even that was a heavy trial and error process for toddler-us back then).
- Install Arch (in a VM, maybe) and while doing so read the Arch Wiki to understand each step, each action and the role of each app you’re asked to install. The Arch Wiki is an impressively well done documentation.
- Be fine knowing that it will take time to learn anything new (not just Arch, anything), you won’t get good at it the first time. Don’t rush it, take your time.
- Be fine knowing that you will face issues and will most likely fail at some point, be it to instal Arch or in doing whatever new. There is no other way to learn, for all of us, than by failing and then trying again, over and over. Once again like we learned to walk (by falling on our butt), to lace our shoes (by making a mess) or to kiss (by not doing it great at first).
Learning takes time and efforts. Perseverance, and humility. There is no shortcut to learning anything that is worth learning, not just Arch. But the reward is also so much worth it. Einstein had to learn calculus, Da Vinci had to learn how to hold a paint brush, and Tolstoy like Flaubert had to learn to write and I’m willing to bet they all made mistakes while they were learning their respective craft.
Even without referring to geniuses: the first time I tried to install Arch I ran away screaming and swearing I would never touch that thing again. The second time, I had already managed to read a good chunk of the relevant part of the wiki and used it constantly at each step of the process. I still failed at it but at least I understood why I failed and I felt incredibly more… in charge, despite me failing. The third time, I managed to have it running, and to install most the packages I wanted. That was great. There was no fourth time as, as much as I love Arch (which is a lot), I quickly realized using it that constant updates were not what I wanted from my OS and apps (I’m an old-ish user with very basic needs, I’m not even that much of a geek to be honest). So, I switched to the complete opposite of Arch (Debian, another great love of mine I must say). Still, learning and using Arch taught me a lot about Linux in general and about… myself.
I ran Gentoo for several years. It wasn’t Linux From Scratch but it did required a lot of manual work. It also had great documentation. It forced you to learn all of the pieces encompassing the entire OS.
Arch seems to be the modern equivalent.
Gentoo’s still around and quite modern. And USE flags are addictive.
This is really good advise and it all boils down to one attribute. Patience.
Don’t get disheartened when something does not work the first time. Take a step back. Look at what went wrong and then try again, hopefully without doing the same mistake again.
Learn the basic tools of Linux and Bash/Posix. cd, ls, cp, mv and rm are some very basic tools, but it is what we use 80% of the time.
This is really good advise and it all boils down to one attribute. Patience.
Thx. Yes, patience is key. As is the ability to
Take a step back.
Failing is fine because it’s not about us, it’s not personal. It never is. It’s about learning something and about the process.
Linux is like kung-fu, mastery comes through practice
Learn the ways of Linux-fu