Hey everyone, I’m relatively new to linux and was looking for some advice/direction. I have been using Mint Debian Edition for around 6mo or so, and want to learn to use the command line efficiently and proficiently.

I have set up EndeavourOS on a backup laptop I have and have been playing with it, reading the Arch Wiki and such, but I feel like I’m not necessarily learning why I’m doing things, just doing what has worked for others.

So here I am. I guess I’m looking for recommendations for books or articles (physical or online) that can help me to learn and understand the workings on linux, and especially the command line.

Thank you all so much.

  • Black616Angel@discuss.tchncs.de
    link
    fedilink
    arrow-up
    13
    ·
    27 days ago

    Linux is a tool. And I find that the best way to learn handling a new tool is making a project with it.

    A book is (maybe) fine, but a project will help you use your knoweldge while you gain it.

    So set up a Lemmy/Minetest/Matrix/Teamspeak server or write a bash script to change your audio output device/volume or program a simple bot in your favorite programming language or mix some music or gather a bunch of PDFs and search through them and concatenate them

    And while you do that and create directories, change permissions, move files, create users or “cat” or “grep” or “sed” stuff, find out, what every single line you write in a terminal does. And instead of using a graphical program to move files, shutdown your PC or update all programs, only use the command line.

    This will help you in the long run.

  • UNY0N@lemmy.world
    link
    fedilink
    arrow-up
    5
    ·
    27 days ago

    In addition to rhe other advice, I’d add what helped me the most: install arch from scratch.

    Use an older PC you have lying around, or just a VM. Use the installation guide on the arch wiki (or a video on feetube if you prefer to listen to a human explain stuff) and just learn as you go.

  • some_guy@lemmy.sdf.org
    link
    fedilink
    arrow-up
    3
    ·
    27 days ago

    There’s someone posting a pretty well-crafted intro to Linux series here on Lemmy. Look for that and go to the linked website and dive into the parts that you find interesting. I think they post a course chapter per day in the format of (approximately) “Day 15: Topic for that day.”

    I’ve skimmed some of the course material and thought it useful for beginners. I’m really happy that they keep posting each month.

  • pelya@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    27 days ago
    • Ctrl-C will not do what you expect, use Ctrl-Shift-C, or click mouse wheel
    • There are many better terminal emulators that XTerm
    • If you accidentally press Ctrl-Alt-F1, you can press Alt-F7 to switch back to the graphical desktop
    • There are in fact many ways to exit vi, no need to reboot your PC
    • There’s no need to suffer through The True Commandline Experience For Real Fedora-Wearing Sysadmins⁽¹⁾, just install mc and get all the benefits without typing cd and ls every time you want to find a specific file

    ⁽¹⁾ Real Fedora-Wearing Sysadmins don’t use vi to edit files, they either write a sed script or use cat to copy the file to the terminal, then use cat again to copy the contents of the terminal back into the file by clicking the mouse wheel while typing manually the lines they need to change.

        • CameronDev@programming.dev
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          27 days ago

          Very weird. Maybe its the client. Can’t see it in the browser either

          Ah, I see whats happened, you didnt put anything in the square brackets:

          [](https://www.freecodecamp.org/news/shell-scripting-crash-course-how-to-write-bash-scripts-in-linux/)
          

          should be:

          [Cool Tutorial](https://www.freecodecamp.org/news/shell-scripting-crash-course-how-to-write-bash-scripts-in-linux/)
          

          resulting in:

          Cool Tutorial

          • NegativeLookBehind@lemmy.world
            link
            fedilink
            English
            arrow-up
            3
            ·
            27 days ago

            Yup, you’re right. Seems like Voyager handles that correctly, since I can see it. I can add a title to fix it for others though. Thanks for checking it out!

  • rand_alpha19@moist.catsweat.com
    link
    fedilink
    arrow-up
    2
    ·
    28 days ago

    I think, as a Linux beginner also (~10 months), the best way to learn the terminal is to figure out what tools are useful to you and then read the manual pages or [application name] --help (if the application supports that command). Learning how to use grep will also be really helpful for troubleshooting, since sifting through logs is such a pain.

    Like if you want to download a YouTube video, install yt-dlp and then type man yt-dlp into your terminal to learn about how that tool works. You can do this for basic utilities too, like cp, dd, mv, etc. and other applications you have installed. You can also use yt-dlp --help but that won’t open in the parser, just the terminal. Learn by doing things that are relevant to you and branch out from there.

    There are also applications that will let you read the manual pages outside of a terminal, like xman, if you find that useful. After a certain point, you’ll be able to write commands with switches/arguments without needing to check what they mean first.

    • Malgas@beehaw.org
      link
      fedilink
      English
      arrow-up
      1
      ·
      27 days ago

      apropos is also helpful if you want to do something but don’t know what the relevant tools are.

  • variants@possumpat.io
    link
    fedilink
    English
    arrow-up
    2
    ·
    28 days ago

    I think you need like a project that will give you a goal and things to look up to do specific things. What got me into Linux was running a minecraft realm, then we hit limitations on the service so opted for a server instead which lead down the road to a VPS and had me using Linux and commands

  • EuroNutellaMan@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    27 days ago

    best way: try to use it for daily tasks. Copying and moving files? terminal, moving around? terminal, editing text? vim. Etc etc. Eventually you will learn to use it.

    Also check out RobetrsElderSoftware’s “[command] is my favorite Linux command” shorts to find out new commands. Also install tldr (sudo apt install tldr on mint, sudo pacman -S tldr on Arch & derivatives) it’s very helpful when you want more (and better formatted) info than [command] --help but less than man [command]

  • Caveman@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    27 days ago

    Step one: Find terminal that’s convenient for you. For me it’s yakuake and some use a runner or whatever.

    Step 2: Find stuff that you do on a regular basis with your computer and do it with the terminal instead. (Open 3 programs, run a steam game or whatever)

    Step 3: Use a bashrc file to make an alias for it.

    Step 4: Find stuff a couple of actions you do the same way every time like open 3 work programs, start torrent + vpn or whatever and put them in a bash function inside bashrc.

    You might not need it though. The terminal is has mostly only two uses in my opinion. Automate stuff and/or do stuff you can’t do with the UI. I use the terminal heavily for work (programming) but hardly otherwise because the best way to break my OS is to change some OS config with terminal commands lol

    • EuroNutellaMan@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      27 days ago

      terminal is also useful as a cross-distro way of doing things and helps avoid cluttered, bad or ugly UIs. Of course the degree at which someone prefers the terminal over a GUI and for which applications is 95% subjective, the other 5% being when either a GUI is pretty much necessary (i.e. image editing) or viceversa (i.e. automation, looking like a l33t h4x0r to impress the ladies/boys/enbies, managing the 3PBs of monkey memes)

  • MXX53@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    27 days ago

    I have been using terminal almost exclusively for about a decade or more. But, when I started I just decided to do it. And that meant that every time I wanted to do something, it would take me forever because I would have to look it up. Eventually, I got faster and faster and now anything I want to do with a gui, I can almost certainly do faster with terminal.