for real though, modern linux distros will rarely require you to enter a command line, and if you do, a quick internet search can usually help you find out what you need to enter

  • crime [she/her, any]
    ·
    edit-2
    3 years ago

    I've lived in various Unix terminals for the last decade+ and cmd.exe scares the shit out of me. Well no it doesn't, but I hate it and I'm always pretty sure I'm about to brick the whole computer. Which is an improvement tbf if it's running Windows

    • HumanBehaviorByBjork [any, undecided]
      ·
      3 years ago

      it's awesome how every tutorial on how to change anything deep about Windows starts with "Hit Win+R and type regedit.exe. WARNING: Editing your Windows registry can have potentially catastrophic results for your system. Please make a restore point before following this tutorial."

      • Sus [none/use name]
        ·
        3 years ago

        Meanwhile it's 100% possible to torch your system without warning with rm -rf in the wrong place and I love that.

          • crime [she/her, any]
            ·
            3 years ago

            rm is the unix command for remove — it deletes files and directories.

            The -r flag, or --recursive recursively traverses all the directories in the path file that you specify (so like if you have a directory stuff/ which has files a.txt, b.pdf, and subdirectory c/ then rm -r stuff/ would remove both files as well as c/ and its contents.

            The -f flag, or --force, does what it says on the tin: it deletes everything without prompting you or warning you about what it's going to delete.

            So it's possible to delete all the files on your system — including ones that the operating system needs to run — with rm -rf /. It's very hard to do on accident these days — usually you need superuser permissions (the sudo in sudo rm -rf /) which requires you to enter your administrator password and to also pass the flag --no-preserve-root which was created to keep people from deleting their whole system because someone named pigpoopballs69 on a random forum said to run sudo rm -rf /

              • crime [she/her, any]
                ·
                3 years ago

                Oh yeah totally. I'm biased by my experiences, but I think there's much more of a risk with Windows, you have to go pretty far out of your way to actually nuke your whole system with rm, it's very hard to do on accident. Now, dd on the other hand...

            • sooper_dooper_roofer [none/use name]
              ·
              3 years ago

              The -r flag, or --recursive recursively traverses all the directories in the path file that you specify (so like if you have a directory stuff/ which has files a.txt, b.pdf, and subdirectory c/ then rm -r stuff/ would remove both files as well as c/ and its contents.

              So what would happen if you just did "rm stuff/" without the recursive flag? Shouldn't it work the same way and delete all of stuff/ contents?

              also how do you do that code font thingy

              • wantonviolins [they/them]
                ·
                edit-2
                3 years ago

                It’s been a while since I’ve used rm non-recursively, but it should delete all of the files in the stuff directory but preserve any subdirectories and their contents

                And formatting for code is `___`

              • crime [she/her, any]
                ·
                3 years ago

                rm stuff/ without the recursive flag fails with an error (rm: cannot remove 'stuff': Is a directory) and doesn't remove anything. I'd guess the decision there was to have the least-destructive end result for ambiguous behavior, but I'm not entirely sure what the history is there, pretty sure that command is older than I am :)

                The code font thingy is the back tick character: `

      • crime [she/her, any]
        ·
        3 years ago

        in my experience it's quirky and inconsistent in ways that make it easy to make mistakes that make your computer unusable

        • TheCaconym [any]
          ·
          edit-2
          3 years ago

          Not to mention you use it so rarely you'll consistently type unix commands out of habit, followed by a quick bout of swearing.

  • spectre [he/him]
    ·
    3 years ago

    The most handy thing about the Linux shell is googling "how do I configure___ " and then someone says "just run this: _____" and you paste it in and you're good.

    That said, I'm giving bad advice in that you should never run a command on your computer that you don't understand.

    That said, most people just do it anyway and it usually works out, but the more you take your time to dissect a command before hitting Enter, the safer and easier things'll be.

    • ComradeBongwater [he/him]
      ·
      3 years ago

      Honestly, my biggest gripe with the terminal is how little info it gives you about what you're about to run.

      It would be nice if distros included a decent zsh config with autocomplete, auto-help text, and syntax highlighting.

      • crime [she/her, any]
        ·
        3 years ago

        Does man command or command --help not usually do it for you?

        • ComradeBongwater [he/him]
          ·
          edit-2
          3 years ago

          My needs are met by those and stuff like tldr, cheat & howdoi, but I am specifically looking for something much more discoverable and inline as I type the command.

          Basically, I want:

          • fzf completions (or any fuzzy searcher w/ previewing)
          • commands and aliases showing description from man beneath
          • file/dir completion showing devicons & file previews
          • flag/option completion while displaying the corresponding help text beneath
          • integration with some of the tools like tldr, cheat, howdoi, navi, etc
          • BigLadKarlLiebknecht [he/him, comrade/them]
            ·
            3 years ago

            I switched to fish last year, and I haven’t looked back. It feels like so much less of an abomination than zsh or bash, and I’ve barely modified it out of the box. Might be worth a whirl, the completion stuff rocks.

            • thisismyrealname [he/him]
              hexagon
              ·
              3 years ago

              i used to use fish, but having to translate scripts from POSIX to fish syntax got annoying. great shell otherwise

        • wantonviolins [they/them]
          ·
          3 years ago

          man command often fails to provide examples of common use cases, and sometimes the man page assumes that you already know what the program was created to do.

          I didn’t know what cat was actually for for years

      • thisismyrealname [he/him]
        hexagon
        ·
        3 years ago

        arch's installer has a really nice zsh setup, but it's not installed by default unfortunately

        • ComradeBongwater [he/him]
          ·
          3 years ago

          Hmm I'll look into it. I've been having trouble finding anything that meets my desires in terms of autocomplete/suggestions. Right now I'm doing mostly manual configuration because all the plugins are missing something in some regard.

          • wantonviolins [they/them]
            ·
            3 years ago

            This is one of the things I hate about a lot of modern popular utilities, the ecosystems around them are extremely fragile and fractured. There isn’t a cohesive set of standard plugins or settings for things like zsh, so everyone ends up with an overly unique setup.

            • ComradeBongwater [he/him]
              ·
              3 years ago

              Agreed. Though, there is a lot of really great stuff in the zsh ecosystem. The problem with zsh (and bash, etc) is the archaic completion system, and all the community stuff is built on top of antiquated decisions.

    • thisismyrealname [he/him]
      hexagon
      ·
      3 years ago

      That said, I’m giving bad advice in that you should never run a command on your computer that you don’t understand.

      totally, most of the time you'll be fine but it's worth learning some of the basic commands (ls, rm, cd, etc.) so you can at least understand what commands do. on systemd-based distros (most of them are these days for those unfamiliar), it's a good idea to learn how to use systemctl as well

      • ComradeBongwater [he/him]
        ·
        3 years ago

        Most basic users would only really need to learn apt to fill in the gaps and use GUI stuff for the rest.

    • star_wraith [he/him]
      ·
      3 years ago

      Tbf if only ran commands that I understood I wouldn't be able to operate Linux, but I'm probably an edge case anyway.

      • spectre [he/him]
        ·
        3 years ago

        No I know, like I said everyone does it, but I'd feel bad "officially" condoning it. Hopefully you'll pick up some things along the way.

  • Pirate [none/use name]
    ·
    3 years ago

    Those who're really worried should give Linux a shot via virtual machine or Live USB (easier) and see for themselves whether they really need to use the terminal or Linux is even easier than Windows

    You get a package manager (app store) where you can install all your software and update them and the system itself in one click!!

    • ComradeBongwater [he/him]
      ·
      3 years ago

      Yeah, I think this is a good point that new users should know. You can always test drive before installing. There's no need to start with a full install right away.

    • star_wraith [he/him]
      ·
      3 years ago

      Yes, personally I like what I'm doing. I'm dual booting for now until I get my Linux set up how I want it and it's all stable. Then I'm deleting windows.

      • Pirate [none/use name]
        ·
        3 years ago

        Let us know at !libre when you completely ditch Windows and don't hesitate to ask if you've any trouble

        :rat-salute:

  • Rojo27 [he/him]
    ·
    edit-2
    3 years ago

    The linux community often gets a bad rep for how they treat newbies. Can't say I ever really experienced that much myself, but even if it's true, the community does an amazing job of collecting resources and information that can be used by anyone if they ever wanted to. I won't claim to be great at terminal, but it certainly isn't nearly as intimidating as some people make it out to be.

  • Koa_lala [he/him]
    ·
    edit-2
    3 years ago

    The linux command line is fucking great. I'm a UX designer, but it's crazy how stupidly fast it is over a gui if you're trained.

    • wantonviolins [they/them]
      ·
      3 years ago

      Pipes are used to redirect the output of one program to the input of another program. You can use multiple programs together to accomplish complex tasks this way. Pipes are typically denoted by the | character within a command string.

      For instance, say you don’t remember the full command you used a couple weeks ago to delete a directory. You could just run history but it prints a huge list of your 500 most recent commands. You could scroll through the whole thing, or, you could pipe the output of history into the input of grep to narrow it down. history | grep 'rm -rf' will only print the times you’ve previously used rm with the -rf switches.

        • KenBonesWildRide [they/them]A
          ·
          3 years ago

          You type a command. Output normally goes to text on your screen. Put it through a pipe. Now that text can go into a file. Or you can filter it. Or you can send it across the internet. Pretty much anything your computer is capable of doing can now take that command’s output as input. Pipes!

        • invalidusernamelol [he/him]
          ·
          edit-2
          3 years ago

          You know when you have a document open in two programs at once, like an excel spreadsheet or something, and you make a change to it and that updates something somewhere else? That's a form of piping. Basically just sharing data between programs.

          When you're using a terminal, you interact with programs by calling them by name then giving them commands (like a terminal version of googling something would be like "google -imagesearch 'pig poop balls' " or whatever). So piping in this case would be taking the output of that search then plugging it into another program, say Gimp so you can edit the photo output:

          "google -imagesearch 'pig poop balls' | gimp -load"

          Totally not a real example, but it's how a pipe works. In this case running that command would save you opening google, finding the image, copying the image somewhere, opening gimp, and loading the image in.

          if you know how to do things with the program in the command line too, you could do something cool like get an image, load it into gimp, and output a converted version of it or and edge detected version of it or whatever without ever even seeing the image until it outputs to a folder. It can make doing big repetetive tasks super easy. Just define the command, save it as a script, and run it later. Don't even have to look at the gimp code as long as you know how to use the terminal commands.

  • HumanBehaviorByBjork [any, undecided]
    ·
    3 years ago

    The design imperative to hide the command line as much as possible in a modular OS which fundamentally relies on it only makes the user more confused when they need to use it to fix something or improve their experience somehow, which they will have to do. The real solution is to expand and improve tools designed to teach CLI software, be that bro pages, better man pages (or maybe a decent GUI man), searchable hypertext documentation, and also consciously deciding to devote project resources to good documentation.

    also death to Tux, long live Xenia

      • wantonviolins [they/them]
        ·
        3 years ago

        truly one of powershell’s worst offenses

        the others mostly revolve around it being Different for no discernible reason, they could have built something unix-y with a series of windows-y userspace utilities but no, they had to Microsoft it

        • blobjim [he/him]
          ·
          edit-2
          3 years ago

          Because PowerShell is better than a traditional terminal because it doesn't keep all the legacy crap from like the 1970s physical terminals lol. It's basically a programming environment with actual data types but in a terminal syntax flavor, instead of this insane string concatenation/parsing/piping machine. It's main problem (having used it a tiny bit but not a crazy amount) is that it doesn't have powerful enough commands, has a terrible paginator (it's worse than the "more" command), and that Windows in general sucks.

          • KenBonesWildRide [they/them]A
            ·
            3 years ago

            Yeah it didn’t keep all that 1970’s crap, just all that 1990’s crap. “Terminal, but object-oriented” is nonsense language invented by crazy people and I will not stand for it. No I am not bitter from dealing with the Office API why do you ask?

              • KenBonesWildRide [they/them]A
                ·
                3 years ago

                Undocumented enums. Senseless abstraction boundaries. Documentation is often out of sync. Permissions are implicit or buried in docs. I could go on

                • blobjim [he/him]
                  ·
                  edit-2
                  3 years ago

                  Documentation is for losers and nerds 😎

                  All my homies inspect the source code to figure out how to use functions 😎👍(except when it's Office and it's closed source)

      • invalidusernamelol [he/him]
        ·
        3 years ago

        PowerShell is also that terrible bright blue color and some absolutely garbage tab completion.

    • The_Walkening [none/use name]
      ·
      3 years ago

      I once wrote a small script to take a few inputs from a dialog box and pick a file in powershell and that motherfucker is something like 50 lines of code. Making an input box in Linux is literally a one-liner with zenity

    • Shrek
      ·
      edit-2
      3 years ago

      deleted by creator