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.

  • @[email protected]
    link
    fedilink
    English
    8
    edit-2
    4 months ago

    I have been using Linux since the early 90s. I don’t know it all. I read man pages. I use -h or --help. I read the arch wiki. I read docs. I read source files and examples. Lots of reading. You will never know it all. There is too much information.

    You need to know how to find information. It can be tricky. Knowing how to ask the right questions often requires you to know a bit of the answer.

    Stumbling about trying to find answers is training the skills you need.

    I think it helps if you have a programming background and IT support experience. Not just because you will understand more concepts and terms but because you have already developed some of those skills but some people come from other backgrounds and pick things up really quickly because they have well developed research skills.

  • @[email protected]
    link
    fedilink
    English
    16
    edit-2
    4 months ago
    • 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.
    • @[email protected]
      link
      fedilink
      English
      54 months ago

      documented in form of an almost-directly executable shell script

      I’m annoyed with myself for not thinking of doing this

    • @[email protected]OP
      link
      fedilink
      English
      24 months ago

      I thought rolling releases were still pretty stable to things really break that often?

      • @[email protected]
        link
        fedilink
        4
        edit-2
        4 months ago

        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.

  • penguin202124 (he/him)
    link
    fedilink
    English
    44 months ago

    Install harder distros (preferably on bare metal) and use them. If you need to fix something, google it. This helped me a lot.

  • Max-P
    link
    fedilink
    274 months ago

    Just don’t copy paste the commands. Really! Just take the time to understand what the command does, read the manual, and rewrite it yourself instead of pasting it. That alone will help a fair bit and can start guessing what it should be.

    After a while of doing that it stops being a “paste this command to make the service run” and becomes “ask systemd to enable and start the service”. You start associating editing files in /etc with “will probably need to slap a sudo in front of that one”, you start mentally replacing nano/vi/vim/emacs/nvim/sed with your preferred way of editing the file, because you absorb the concept of “this command edits a text file”.

  • @[email protected]
    link
    fedilink
    14 months ago

    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.

  • @[email protected]
    link
    fedilink
    64 months ago

    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

    • @[email protected]
      link
      fedilink
      54 months ago

      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 !

  • Frater Mus
    link
    fedilink
    English
    74 months ago

    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.

  • @[email protected]
    link
    fedilink
    English
    94 months ago

    Just use it and fix things when they break. There’s no magic bullet - just experience.

  • @[email protected]
    link
    fedilink
    34 months ago

    I will be using your example of Arch as a great stepping off point, because honestly imo the best way to learn is by having a project to work on

    1. RTFM - Read The Fucking Manual. Read the docs, read the code comments if need be. In the case of installing an OS, use the installation guide as a starting point; Arch’s is on their wiki, and links to several other sections that go more in-depth about what each step does and why it does it.

    2. DuckDuck it - if you don’t understand what something is or why you’re doing it, search it. If you understand it completely, search it anyway and check the docs because no you don’t, you just don’t know how little you know. If you know why we do something and what function it fulfills, but not how… Then you’re a power user.

    Using your example of commands from the internet, break the command down into as many parts as you can, and figure out what each part does. If there’s punctuation marks, don’t assume you know what those are doing. man [command's name] is your friend.

    1. Do all of the above as often as possible, no matter how slow it makes progress feel. Learning these things the proper way now will save you from days, weeks and months of troubleshooting in the future. I mean it, literally at every step of the process.

    2. secondary sources are invaluable, but for this it might help to get into the best way to self-educate. The only gospel are the docs and/or manual that were written by the code/OS maintainers - primary sources - everything else is opinion.

    Here’s a source i agree with on the best way to self-educate, but keep in mind even Artem is still just a secondary source.

    That being said, here’s a few secondary sources that helped me understand how OSes work and why:

    nand2tetris: build an operating system starting with logic gates and working your way up from there. It has a offshoot site that’s slowly being rolled out, that implements it all in a gamified interface: nandgame

    os-tutorial: build an OS from scratch

    Linux From Scratch: Learn everything about Linux by building your own distro from the kernel up.

    Unfortunately everything that taught about the behind-the-scenes aspects of OSes in general—and Linux in specific—were either projects like the above, or just seeing what came up in a DuckDuckGo, Youtube, forum, or wiki etc. search. Below are just resources that teach you about the “power user” level of knowledge, not “super user” but not your average user either.

    Fireships’ 100+ Linux Things you Need to Know: it’s not particularly good on its own, but it does introduce a lot of concepts and vocab for you to then look up elsewhere

    freeCodeCamp.org offers a lot of courses that will go over using Linux. None go too in-depth on the fundamentals of Operating Systems, but they will still introduce most of what you need to know for day-to-day use. I don’t want to link them all, but just search for linux freecodecamp on youtube and find one that piques your interest. The longer, the more in-depth—you don’t have to watch it all in one sitting.

    1. And of course, when all else fails: just ask. Participate in the community, don’t be afraid of looking stupid. The only people that get no respect are the ones who refuse to accept others’ help because they know better than those they’re asking to help them. (ignore the gatekeepers who want to project their own need for an identity onto you)
  • @[email protected]
    link
    fedilink
    174 months ago

    start from man man and learn to use man pages. Get used to lookup man pages for any topic before checking on the internet

    • @[email protected]
      link
      fedilink
      English
      104 months ago

      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.

    • @[email protected]
      link
      fedilink
      14 months ago

      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.