this post was submitted on 05 Oct 2023
477 points (80.9% liked)
Linux
48145 readers
893 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I did it because it's fun, but there are other reasons.
It's faster and easier than using a GUI. This is because you can type a lot faster than you can click-click-drag with a mouse.
There are some programs that give useful information when run from a CL that they don't give when run from a GUI. This can be helpful for troubleshooting.
If you ever get stuck on a system that doesn't have a GUI, you'll still know what to do. I've had this happen when I had to SSH into servers that were running bare-bones Linux systems.
If a particular GUI operation is bogging your system down, you can do it from the CLI using fewer resources. For example, sometimes my system will freeze up if I try to open a very large file, but a command-line app can do it without freezing. This admittedly doesn't happen very often, but when it does, I'm happy to have that knowledge.
You can get the CLI to do things that you don't have a GUI app for. Having knowledge of the CLI gives you that flexibility.
I'm sure there are other reasons, but those are just the ones I could come up with off the top of my head.
To be honest, I got into the CLI because of aesthetics. I saw all of the terminal rices that people would post online, and I wanted to have that. The Windows CLI was always ugly and unfriendly, so I wanted nothing to do with it. I learned it because it looked cool, and it turned out to be useful as well.
90% of people who use computers just need the web browser and some sort of office suite and whatever proprietary software their job tells them to use.
I don't think they would find much if any use to command line tools.
Wait until you have to do a repetitive, boring task.
True, but if your repetitive, boring task can be replaced by a well-put-together Excel spreadsheet or a few simple scripts, you're looking at replacing yourself at your own job.
I've definitely seen people replaced by the work-saving scripts they wrote. Corporate doesn't care about pesky things like "maintenance" or "security updates" or even "that command we used in the script is now deprecated." It works well enough now, and now they consider you "redundant."
Some folks keep doing it the repetitive boring way to keep their bosses from shitcanning them for creating something their bosses are absolutely too dimwitted to do themselves. It's never nice to do something that saves you effort and the response is your boss shitcanning you and then saying "I made this."
I'm going to have to interject on even on the first point. FWIW, I'm a person who vastly prefers to use a keyboard when possible, can totally live on a CLI only system, etc. Anyway:
This is just not true for the vast majority of people. Have you ever watched normies type?
The other thing is that even with simple stuff like file operations normal users get lost with a GUI where it's far easier to visualize what is actually happening. If they get a few basic mechanics (click+drag, right click, double click) that's about all they have to remember to move files around. Compared to learning
ls
,cd
,mv
,cp
, the directory tree, symbols like.
and..
and so forth. Or perhaps my favorite example, quick name a valid tar command. On a GUI system like windows/Mac, they just need to remember they can do things to files by selecting them and right-clicking them. On a CLI only system, how the fuck are you supposed to get a regular user to remember that to compress a file, you type intar
to start with, much less remembering flags (my flavor of choice is usually-xvf
.) How many people who regularly use linux even know wtf it's calledtar
?And that's even forgetting the things like the defaults often being much harder to recover from. In Mac/Windows (and I think even most distros, though I haven't daily driven a gui linux in a while) deleting a file the default way is a safe operation and easily recoverable because by default the gui is designed to be more user-safe.
Though I don't think anyone will disagree with the fact that the CLI is an immensely powerful tool that a lot of us can't do without, it has never been really designed in a way to be accessible to normal users, and I'd be willing to bet that if you were designing a CLI today in a vacuum, it wouldn't look anything like the one we're familiar with. It's why I'd also guess that very few of us that use the command line all of the time don't have a mile long list of aliases, scripts, switching to shells like zsh and things like zsh-autosuggestions or zsh-syntax-highlighting, colorls, a specific terminal emulator they use, and so on and so forth.
Those are all true, but they also don't apply to the vast majority of computer users.
Most people don't need the speed of using only command line, especially when the programs they're working with aren't deeply tied to the command line. How is the command line gonna help a regular office drone writing up a new resume? It would be far easier and quicker for them to do it in Microsoft Office instead of spending hours learning how to do it with CLI.
Absolutely you can get more fine-grained information from the CLI, but for the vast majority of users, they won't need to.
Literally almost no regular person has even heard of SSH or will ever need a reason to use it. It's great that it's helpful to us, but I can think of zero reasons most people would need this knowledge for.
You can also install a lightweight version of an OS for this, without needing to just dump to the CLI. Agreed that Windows doesn't really have a light version, but this is also not a necessity. If you're using a system that's old enough to get bogged down by watching a YouTube video, that's kind of a side effect of using such old hardware. In most cases people will have modern enough hardware for this to not be an issue or something the average computer user needs to know. Because most people aren't doing massively demanding tasks on their computers (unless they left a lot of apps open).
It's a great flexibility to have as a developer or as a sysadmin, it's honestly practically a requirement for both.
All of these are super valuable to people who work with computers daily. My hairdresser doesn't give a shit and just wants a computer that functions without confusing them because they went to school for hairdressing not PC maintenance.
I get what you're saying, but you're acting like these things are a lot more valuable to the average user than they really are. They're way more important for people working in the industry, not so much people who just have a computer for writing emails, drafting resumes, and browsing the web.
Tell me you've never worked with non-technical people without telling me you've never worked with non-technical people.