Linux
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
With arch, I'd recommend just jumping in the deep and and installing it, looking things up on the wiki when something goes wrong. Just do it in a virtual machine or on an old laptop or something to start with. I broke my previous distro (mint) by doing some really stupid stuff, and I decided to just go fuck it and install arch. I don't think I've ever learned as much about linux as that weekend.
I suppose that I was already pretty comfortable with the terminal since I was studying computer science at the time so I had a lot of reason to use it. I think the best way to use the terminal is to force yourself to use it, programming is great for this but you can try e.g. sorting your photos or mp3 files or something as practice too.
start from man man
and learn to use man pages. Get used to lookup man pages for any topic before checking on the internet
Learning to read manpages is honestly the best advice. They are pretty dense in information, so maybe that's why some people go to great lengths to run circles around them looking for inferior sources of information.
This is it. You’re likely not going to get away from needing help from time to time. Instead of focusing on trying to know everything, focus on knowing where to find what you need. It’ll click from there with time.
Read and do! If it's just a toy you play with sometimes, you might find learning harder. I find that making it your daily driver will motivate you to improve and fix things and in doing that you'll learn.
I still find Tealdeer useful even now, it helps me get working with commands I know little about, more so than a manpage
Oh that's pretty cool! Basically a better version of tldr?
Install harder distros (preferably on bare metal) and use them. If you need to fix something, google it. This helped me a lot.
The tldr cli (tldr.sh) is a great way to get familiar with options of differ programs.
Very useful, even for someone who has been using Linux for many years. Sometimes you just forget or need that tool you rarely use. tldr
can be much handier than parsing a man page when you're in a pinch.
I use the tealdeer implementation, but any is fine really.
I'm late to the party but have you seen Linux Journey? https://linuxjourney.com/
Thats really cool thanks.
Switch to rolling distro, it will break so many things with each update you'll learn stuff by fixing it. Also you can check https://overthewire.org/wargames/bandit/
I thought rolling releases were still pretty stable to things really break that often?
They can be really stable. I think your milage severely varies on how much you know what you're doing and how careful you are in respect to certain things.
Personally I've been using Arch for 5 years and I haven't really had any problems with things breaking on updates.
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.
If you're in the position to take certificates then that's a another way of learning a lot. At least it has worked for me. I've over the last half year taken RHCSA and RHCE from RedHat - though paid by work. Theses in specific are expensive, but I'm sure there are other ones that are cheaper. This would also allow you to 'show off' your skills in an official way should you need to, for applying for certain jobs etc..
I at least find this way to be helpful as you have to motivate yourself to learn and pass an exam to get the certificate. It might not be for everyone though.
This course by the Linux Foundation goes over the basics and I thought it was pretty good. I was a long time user of Linux when I came across this and wanted to see how much I really knew. It's very easy to follow and well structured
https://training.linuxfoundation.org/training/introduction-to-linux/
What tips/ideas do you have for getting better at navigating the terminal, and getting a better understanding of how the os works
Running an OS as a virtual is liberating. Dive in, make mistakes, fix them (or not and have to reinstall or redo from the last save). No real consequences for exploring.
I'd recommend reading man pages. They're a great way to understand the programs that are on your system. The Arch Wiki and the Gentoo Wiki both provide additional information that may be of use to you.
-
Learn FreeBSD.
-
Learn Linux.
/s
If you are beginner in Linux, try beginner-friendly Arch-based distro: EndeavourOS, CachyOS, Manjaro
You can learn Arch without too much hassle while using one of them
EndeavourOS is great ! While it's easier to install than Arch (I guess?) and give you tools to maintain your system, it's still in need of daily maintenance to keep your system healthy and operational.
You learn things but at slower pace and with less headache as a beginner. I'm very thankful EOS exists and give you a glimpse on how to configure/maintain and evolve with the Arch ecosystem !
- To learn Arch, install it from scratch (without archinstall), it'll force you to read the Wiki and learn a lot of necessary commands in the process. After the installation, just keep using it. Using a Linux distro full-time as the only installed OS is the best way to keep at it and truly learn it over time. There's no magic bullet here. Just keep using it and solving problems or issues as you go, learning more and more stuff as you go. If you need other OSses as well, run those in a VM. I don't recommend dual-boot setups.
- Don't blindly copy/paste commands you don't understand. Always try to understand them first. Some commands can be very disruptive or even destroy your configuration. If you don't understand it or are able to adapt it so that it fits to your particular configuration or system, you can EASILY damage a configuration, or even make your system unusable. Also, some people like trolling other people and deliberately share harmful commands. Generally, test potentially destructive commands or complex commandlines before actually running them.
- Document major config changes that you do. This is useful because you'll be able to undo certain changes or even replicate your current system configuration fast when you change distros or have to reinstall in the future. For example my current Arch-based setup is fully documented in form of an almost-directly executable shell script. It does require some interactions but very little. If I ever have to reinstall this system, or upgrade my hardware, it can be done insanely fast and it'll have the exact same configuration. This goes from basic partitioning and encryption all the way up to dotfiles and individual program configurations.
- Don't feel the need to learn hard/advanced tools like Vim or Emacs unless you really think you're getting an advantage from that and aren't hesitant to put in the time and effort to learn them. Most people don't need to use them. They're amazing tools but you need to be prepared to lose quite a lot of time to learn them before you can become productive with them, and this might not be a tradeoff that's useful for every single user. You can also get away with much simpler tools, like nano (as a console-based editor) or whatever programmer's text editor you want.
- Similarly, whether a pure WM or compositor plus assorted tools compared to a full desktop environment is worth it for you or not, is up to you. There's no wrong or right answer here. I've tried out pretty much everything and these days use KDE Plasma because I like the consistency and integrations and dislike having different, inconsistent stand-alone tools for panels, menus, notifications, wallpaper, file manager and so on. But again, there's no wrong or right answer here. Just what makes more sense for you. It's worth learning how to be able to configure and use a minimalistic setup, for sure. So trying it out doesn't hurt and increases your knowledge overall. In general, in the Linux world it's good to always know enough to not be screwed once some component suddenly doesn't work anymore. For example, a competent Linux user should be able to deal with (temporarily) not having a GUI and fixing his system via commandline.
- A minimalistic, DIY distro like Arch can be amazing to learn everything, if you want to do that at least. If you just want a working desktop system with as little effort as possible, then don't do that. But if you intend to learn every detail, then a distro like Arch is better suited for that goal than a "bloated", fully pre-configured distro like Mint or Ubuntu is. Because Arch is much simpler on a technical level than those are. It's much easier to understand e.g. the relatively simple package building process on Arch than it is on Debian/Ubuntu-based distros. But this "simple" explicitly refers to technical simplicity or minimalism. Most users expect something else when they hear "something is simple". Arch is not simple as in beginner-friendly, but it is simple in terms of technical complexity, which is why many advanced users and tinkerers like it because it doesn't stand in their way. It also means though that you HAVE to learn many things, e.g. how to configure a firewall, because it doesn't come with any preinstalled by default. With Arch, the admin is supposed to know about everything and configure every component himself, at least on a somewhat basic level.
- If you want to go to even more details, you could also try out a source-based distro like Gentoo or Crux, which can also be a great learning experience, but it's even more details regarding compilations of each package, dependencies, compile-time options, etc. you have to deal with than with a minimalistic binary-package-based distro like Arch, so whether that's useful for you or not is up to you of course.
- While we're at it: LFS (Linux from Scratch) is not a distro per se, it's a guide on how to build your own distribution from scratch. It's VERY time intensive and not recommended unless you truly want to learn how to build a complete distribution from scratch, or maybe start your own distro some day which isn't based on another existing distro.
documented in form of an almost-directly executable shell script
I'm annoyed with myself for not thinking of doing this