• Termight@lemmy.ml
    link
    fedilink
    English
    arrow-up
    31
    ·
    edit-2
    2 months ago

    Mastering the command line? A few observations. First, consult and take notes (yes, even seasoned terminal veterans forget syntax.) Secondly, embrace tab completion. It’s your friend, and a surprisingly effective substitute for remembering every single command. Third, the true test: procure a VPS or remote server and exclusively use the command line. No GUI crutches allowed. It’s a digital wilderness, and you’ll learn to navigate it.

    Lastly, and this is non-negotiable: keep a terminal window permanently resident on your desktop. Consider it a vital organ, deserving of its space. It’s a constant reminder of the power you wield, and a readily available portal to a world beyond the pretty buttons.

    • WalnutLum@lemmy.ml
      link
      fedilink
      arrow-up
      3
      ·
      2 months ago

      On that front: to developers-

      Please make sure you include bash completions for your tools

    • N0x0n@lemmy.ml
      link
      fedilink
      arrow-up
      3
      ·
      2 months ago

      Hehe, I’m doing this all the time now ! 3 years ago when I started my linux/self-hosted server journey with debian: CLI only !

      Was difficult at times and had a few breakdowns (most got fixed the next day… Sleep/taking some time off really helps !!!)

      One thing I’m still bad at… Is taking notes. Haven’t found a good way take IT notes. And I tried sooo many different approaches…

  • Matth78@lemm.ee
    link
    fedilink
    arrow-up
    20
    ·
    2 months ago

    What helps me is to understand what commands acronym means. For instance cp for copy, mkdir for make directory, blkid for block id, ls for list (not too sure about actual meaning for s) and so on!

    Nice tips about ctrl+r to search in command history. Was not aware it existed!

  • Snot Flickerman@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    18
    arrow-down
    1
    ·
    edit-2
    2 months ago

    In my experience repetition helped. Not memorization, but more like muscle memory.

    Also, ensuring to never copy and paste commands but to type them in manually yourself. It’s hard to enforce this on yourself, but worth it.

    I appreciate that this article started with “ways to reduce risk” because that’s an extremely valid concern and tied to why you shouldn’t ever copy and paste. The one time in my early Linux forays where I copied and pasted I wiped the wrong drive. It definitely taught me to always manually type it in and not get too lazy, because what you copied might not match what you want to do exactly.

    • remotedev@lemmy.ca
      link
      fedilink
      arrow-up
      14
      ·
      2 months ago

      Also, ensuring to never copy and paste commands but to type them in manually yourself. It’s hard to enforce this on yourself, but worth it.

      “Command: sido not found…”

  • southsamurai@sh.itjust.works
    link
    fedilink
    arrow-up
    12
    ·
    2 months ago

    Really specific here, but font control.

    Us folks with dyslexia in its various expressions have trouble with command line. If you can’t read a specific command, good luck ever getting comfortable with it. You can’t error check yourself, so until you build up memory, you’re kinda screwed if you can’t use the fonts that are available.

  • lordnikon@lemmy.world
    link
    fedilink
    English
    arrow-up
    9
    ·
    edit-2
    2 months ago

    To things that helps no mater your skill level the tab key is your best friend and man pages are great but if those are overwhelming install the package tldr then you can use the command tldr and the command you are trying to run to give you helpful examples of how to use that command.

    Also old users don’t remember long commands if we use a command more than once. You save it to your bash alias file to create your own commands.

    • N0x0n@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      2 months ago

      Also old users don’t remember long commands if we use a command more than once. You save it to your bash alias file to create your own commands.

      A good example for this is docker compose -f when you work alot if compose files ! Having an alias for docker compose -f as dcf saves hours a month xD

  • /home/pineapplelover@lemm.ee
    link
    fedilink
    arrow-up
    7
    ·
    2 months ago

    Practice I guess. Especially using cli for specific tasks that is done more efficiently on there than the gui.

    Moving files using regex for example is useful. Or finding files with specific phrases in them. Stuff like that

  • applemao@lemmy.world
    link
    fedilink
    arrow-up
    6
    ·
    2 months ago

    I think just doing it more, and thinking it’s cool to interact more directly. At least that helps me. I do feel bad for dyslexic peiple though, it’s a lot harder for them to use CLI.

    • Random Dent@lemmy.ml
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 months ago

      Yeah that was it for me. Just keep regular backups and bear in mind that you’ll probably break stuff at first. But once you get the hang of it, it’s like a whole other level of control over your system.

      Also I’m not dyslexic but would things like tab completion and aliases help maybe? I sometimes shorten often-used commands with aliases just for convenience (as an example, I use rsync a lot, particularly the command rsync --ignore-existing -ravwhich I just shorten to rs to save time) so maybe that could also be used to avoid mis-spelling?

      • applemao@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        2 months ago

        Thats a good idea, i have not made any aliases yet. Also remembering all of those aliases is another challenge ha. I keep a text file named commands on my desktop with a whole bunch of commands I forget.

        • Random Dent@lemmy.ml
          link
          fedilink
          English
          arrow-up
          2
          ·
          2 months ago

          I have some mapped to super simple aliases too like e1 to reboot, e2 to shutdown etc. I don’t remember why I started doing that, but that way I only have to remember which number does what lol.

  • Tekhne@sh.itjust.works
    link
    fedilink
    arrow-up
    6
    ·
    2 months ago

    Maybe controversial, but the fish shell. I know it’s not strictly bash syntax, but the OOTB features are just so user-friendly. The most helpful features for learning: the autocomplete (with descriptions of subcommands and flags!) and the fuzzy history search.

    I write bash scripts all the time, and am significantly more knowledgeable than anyone else on my team (admittedly frontend) because I got comfortable in fish.

    • prole@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      2 months ago

      I use Fish sometimes, even when I know exactly what I need to type, but just don’t feel like having to type out entire file names.

    • phantomwise@lemmy.ml
      link
      fedilink
      arrow-up
      3
      ·
      2 months ago

      using tldr instead of man 90% of the time to preserve your sanity

      🎉 COLORS ! READABILITY ! CONCISION ! CONCRETE EXAMPLES ! 🎉

      • FauxLiving@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        2 months ago

        tldr is very useful

        Also, knowing vim keys is useful because a lot of terminal programs use them.

  • phantomwise@lemmy.ml
    link
    fedilink
    English
    arrow-up
    4
    ·
    2 months ago

    I have no clue… I grew up on Windows 3.11 and I thought Windows was kinda lame while MS-DOS was the coolest thing ever because you typed things like magic spells 😅

    • bitjunkie@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      2 months ago

      This right here (more or less - first home PC was Win95, but it still relied pretty heavily on DOS, esp for games). I loved the RPGs where you typed in your actions, too.

  • cyberwolfie@lemmy.ml
    link
    fedilink
    arrow-up
    4
    ·
    2 months ago

    tl;dr: Gradual exposure over time.

    I got used to it through work, as I had to ssh into a server to run simulations. That mainly involved navigating the file system and text editing (which I used vim for) to make some basic Python and bash scripts, including sed and awk. The latter two I never got comfortable using, and haven’t really touched since.

    I was using macOS at the time, and after using that for work, the terminal in macOS got at first less scary and then a preferred way of accomplishing certain tasks. On my work Windows computer I started missing having a proper terminal around, and I eventually found Cygwin and later Git Bash to give me that terminal fix in Windows as well. Especially with the latter I noticed few differences and could use it to a large extent as I would have on my then Macbook.

    2-3 years ago I was in need of a new computer, and at that point a laptop with Linux on it was not a very scary prospect. That is by no way saying I went into Linux as an expert, far from it, and I am still very much a newbie - but opening the terminal to work with things is not at all a barrier, which helps a lot if you use Linux and want to be able to do some changes from the defaults. If you don’t want that, I think you can go far these days without opening the terminal, but it is certainly a good skill to have.