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.

  • DickFiasco@lemm.ee
    link
    fedilink
    arrow-up
    0
    ·
    17 days ago

    It sounds a bit nerdy, but dedicate some time just to learning a specific command once in a while. Start with something straightforward like ls. Read through the man pages and try out all the different options for it. After a while, you’ll master quite a few commands and will be able to string them together to perform more complex tasks. It’s definitely easier learning the system piece by piece like this. I used to learn by just jumping right in to a complex task, but I ended up with just a superficial understanding most of the time. Now days I try to be more deliberate about reading all the documentation and actually learning the tool/command/etc.

    Also, Arch has the archinstall script that greatly simplifies the install process if you need it. You’ll definitely learn more doing it manually though. I’ve been using Arch as my daily driver for a year now and I love it.

  • LambdaRX@sh.itjust.works
    link
    fedilink
    arrow-up
    0
    ·
    17 days ago

    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.

    • oo1@lemmings.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      17 days ago

      +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.

    • annoyed-onion@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      17 days ago

      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

      • pineapple@lemmy.mlOP
        link
        fedilink
        English
        arrow-up
        0
        ·
        17 days ago

        I think I will try something like manjaro first see what it’s like and then move onto arch.

        • radswid@feddit.org
          link
          fedilink
          arrow-up
          0
          ·
          17 days ago

          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.

    • Diplomjodler@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      17 days ago

      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.

  • boredsquirrel@slrpnk.net
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    17 days ago
    1. You can always use man command and just read through it. If you want less text, use curl cheat.sh/command (learn how to use aliases) or the tools tldr and cheat
    2. Install the fish shell, it makes using the terminal waaay easier, out of the box.
    3. Install Alpaca flatpak, and use tinyllama or bigger LLM models. Tinyllama is already very sufficient at explaining linux commands and more, and runs fine on my reasonably powerful and modern laptop. Other models may be slow as fuck.
    4. Use the terminal only. Log out, Ctrl+Alt+F2 and login, then use some tools.
    $pwd
    cd
    echo
    ls
    cat
    nano
    less
    more
    chmod
    chown
    #your package manager
    lsblk
    dd #be careful!
    udisksctl
    lsusb
    lspci
    curl
    wget
    ...
    

    Note: use the man for these tools and often multiple tools do the same thing

    1. There is this online terminal game/quiz but I cant find its name.
    • thingsiplay@beehaw.org
      link
      fedilink
      arrow-up
      0
      ·
      17 days ago

      Install the fish shell, it makes using the terminal waaay easier, out of the box.

      Not a good idea if the goal is to learn more about Linux. Fish is not compatible to and is different to Bash in some ways, that it would be hard once not using Fish. Also getting help or sharing scripts with others will be problematic, when having a problem and researching it. For someone coming in to Linux and wanting to learn about it, I highly recommend to learn about Bash first and use it at least for months before even thinking about a custom shell. I used Fish too (and I miss some features), so its not like I wouldn’t know what it is.

      Install Alpaca flatpak, and use tinyllama or bigger LLM models.

      Alpaca is nice. GPT4All is also another one (and one that I prefer). Either way, both are good. But again like previous point, I do not recommend to install and use Ai modesl (LLMs) to learn about Linux and to get used to it. Especially the smaller models often hallucinate and lie with false claims. If you don’t know it better and are currently learning, this could be a problem. I highly discourage from installing and learning with an Ai model alongside when you are new to a topic like Linux. Its also not like there wouldn’t be enough good material out there anyway.

      • boredsquirrel@slrpnk.net
        link
        fedilink
        arrow-up
        0
        ·
        16 days ago

        Fish is just a shell, you can still write and execute bash scripts

        Fish is rewritten in Rust btw

        Also the syntax is waay better, it should totally replace bash

        • thingsiplay@beehaw.org
          link
          fedilink
          arrow-up
          0
          ·
          16 days ago

          My point is that Fish is not standard Linux tool. If the goal is to learn more about Linux, it makes more sense to learn about Bash first. I’m not against Fish. For a newcomer its just confusing when researching stuff or reading others scripts in Bash and constantly think about the differences in Bash and Fish. Or if you want to share a script with someone who does not have Fish. I’m not saying Fish is bad or anything like that. I’m just saying for a newcomer its not a good idea to ignore Bash and learn Fish first for someone who is interested into learning more about Linux and its eco system. Fish itself has the better language, no doubt about it and is actually better than Bash. But the quality is not my main concern in the reply.

          • boredsquirrel@slrpnk.net
            link
            fedilink
            arrow-up
            0
            ·
            16 days ago

            As I said. Fish can just be a shell. I only write bash scripts. All bash scripts have #!/bin/bash at the beginning so it doesnt matter.

            I dont know about fish errors. If something doesnt work, I enter bash and then run it again. I enter exit when I am done.

            That does happen but the workaround is easy

            Apart from that, instant suggestions, history, arguments and available commands already help a lot.

            • thingsiplay@beehaw.org
              link
              fedilink
              arrow-up
              0
              ·
              16 days ago

              Fish can just be a shell. I only write bash scripts.

              That’s the exact problem. You deal with two languages. I did that too BTW. Now for someone who is experienced, its fine. But for someone who just started learning about Linux and scripting, its not ideal, as it adds unnecessary complications and friction for a learning process that is already complicated. Because learning Bash is a must do in my opinion. Regardless what custom shell you use.

              After that learning process and getting familiar, one still can decide to use Fish as the interactive shell. But that’s AFTER the initial learning process of the basics of Linux.

  • Snot Flickerman@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    17 days ago

    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:

    1. Delimiters
    2. Syntax (Bash by default, but the syntax for whatever your chosen shell is)
    3. Switches
    4. Path (absolute and relative)
    5. 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.

    • thingsiplay@beehaw.org
      link
      fedilink
      arrow-up
      0
      ·
      17 days ago

      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).

      • Snot Flickerman@lemmy.blahaj.zone
        link
        fedilink
        English
        arrow-up
        0
        ·
        17 days ago

        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.

      • pineapple@lemmy.mlOP
        link
        fedilink
        English
        arrow-up
        0
        ·
        16 days ago

        Wait I did this to my main drive everything went black is this suposed to happen? will it start working again?

        • Blisterexe@lemmy.zip
          link
          fedilink
          arrow-up
          0
          ·
          15 days ago

          in case you aren’t joking, rm -rf / (albiet with a warning now) will delete allll the files on your system, so everything going black is the expected result.

          rm is remove, the - is to indicate that you want to pass arguments, and r&f are recursive (delete stuff in the folders in this folder) and force (don’t ask for confirmation). The slash afterwards designates the root folder, the folder with everything in it.

          So “rm -rf /” means “remove, recursively and forcefully, everything in the / directory”

  • Max-P@lemmy.max-p.me
    link
    fedilink
    arrow-up
    0
    ·
    17 days 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”.

  • colournoun@beehaw.org
    link
    fedilink
    arrow-up
    0
    ·
    17 days ago

    If you’re not already, use it as your main system. Don’t dual boot. Stop using windows and mac. When you run into something you need to do, figure out how to do it on linux. It will be slow going at first, but after a few months you will pick up more productivity than you had before.

    Another commenter recommended the fish shell, but I disagree because fish is not posix compliant. Almost all of the shell script examples that you will find assume posix compatibility and will usually have to be modified to run with fish. Once you get comfortable with a posix-compliant shell, then maybe consider fish or another “modern” shell.

    On the topic of shells, read the bash manual. It’s long and informative. You don’t have to memorize it, but be aware of the different concepts there, and refer to it when you need to. It’s pretty horrible as a programming language, but it’s what glues most of Linux together.

    • pineapple@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      17 days ago

      I am still dual booting because some games I play just don’t work properly but other than that I am doing everything I can on Linux.

      • thingsiplay@beehaw.org
        link
        fedilink
        arrow-up
        0
        ·
        17 days ago

        To be honest, this is my recommendation as well. If you kill Windows and can’t play your favorite games, then its more likely to give up Linux.

  • shirro@aussie.zone
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    17 days 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.

  • BillibusMaximus@sh.itjust.works
    link
    fedilink
    arrow-up
    0
    ·
    17 days ago

    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.

    One thing you could do is start trying to understand those commands.

    Read the man pages or the documentation to figure out what the commands are actually doing. Once you have the “what” , you can dig deeper to get to the “why” if it isn’t obvious by that point.

    After enough of that, you’ll go to copy/paste and already understand what it’s doing without needing to look it up again.

    Then from there, it’s a matter of building the instinct to be able to say “I need to do X, so I’ll use commands Y and Z.”

  • oscardejarjayes [comrade/them]@hexbear.net
    link
    fedilink
    English
    arrow-up
    0
    ·
    17 days ago

    Attempt an Arch install entirely from memory. You might want to try this in a VM, in case something goes wrong, but just do it. If you can’t quite remember what to do, man and ls /bin are your friends.

    • pineapple@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      17 days ago

      Sorry man I said I was a beginner I have never installed arch before that was more like an end goal I am not there yet I should have said i’m just running bazzite atm.

      • oscardejarjayes [comrade/them]@hexbear.net
        link
        fedilink
        English
        arrow-up
        0
        ·
        17 days ago

        Sure, maybe I was a little ambitious. But my point is mistakes can bring learning, so it might be worth it to try something “hard”. Trying things in a virtual machine is also often a good idea.

  • nous@programming.dev
    link
    fedilink
    English
    arrow-up
    0
    ·
    17 days ago

    And how did you, advanced Linux user, get to the stage your at now?

    Incrementally over time by reading the documentation and/or manuals of the commands I need to run and looking up how others solve the problems that I need to get other ideas about things (even, periodically, for things that I already know how to do to see if anyone has found a better way to do it or if a new tool has come out that helps). And trying things out/experimenting with different ways of doing things to find out what works well or not.