PowerShell might be okay script syntax for people with uncorrected sight issues and the elderly who's heart might not handle bash without set -e but to be useful as a CLI shell prompt that is your primary way of interacting with the computer like it can be on Linux it needs to be so so so much shorter. I'll be dead by the time I type out half the shit it'd be like 4 key presses total on Linux.
And that's before you get to the issues of it being a whole object oriented and typed programming language with .NET whereas shell is nice universal text everywhere that can be piped around however you want.
There are even those absolute mad lads who unironically use PowerShell on Linux.
Learning the absolute basics of how to use tmux, vim, sed, awk and grep and pipes and redirects and the basics of handling stdin and stdout genuinely made me feel like all my life I was an NPC in the matrix and now I'm Neo just because passing around bits of text is so powerful when everything works on that basis.
Yea, when I switched to Linux, at first I installed PowerShell to get something familiar, but quickly realized that contrary to Windows, terminal on Linux is actually usable on it's own out of the box.
PowerShell doesn't stop on errors either by default. And of course a significant number of tools you need aren't available in PowerShell, only cover partial functionality or are an exe you need to call so even if it did stop on error, doesn't work for those tools by default.
Re: length of commands, PS commands are longer, but they also have tab completion so realistically you never type the whole thing, only enough to be unambiguous and press tab. I'll grant it's still longer than the equivalent bash, but not by as much as it appears.
You can use tmux, vim, sed, awk or whatever binary you want from PowerShell. Those are binaries, not shell commands.
You can use pipes, redirects, stdin and stdout in PowerShell too.
I personally don't regularly use any object oriented features. But whenever I search how to do something that I don't know what to do, a clear object-oriented result is much easier to understand than a random string of characters for awk and sed.
Mixing the two philosophies of coreutils and unix bins and whatever is happening in PowerShell seems even more unholy to me than the phrase "object oriented result", but different strokes.
I gave up on PowerShell on Windows as a plausible alternative to Bash on Linux the minute I realized there's no real equivalent tocat, there's type or if you hate yourself - Get-Content which is aliased as cat but doesn't really work the same way.
If I can't even very basically list a file irregardless of what's in it, it's just dead out of the gate.
On Linux, I once sent myself an MP3 from my server to my laptop with cat song.mp3 | base64 -w0 > /dev/tcp/10.10.10.2/9999 because I cba to send ssh keys.
I'll give modern windows a few points - the new terminal emulator application is sweet, and having ssh makes it easy to login to remotely.
PowerShell is a strange programming language that makes me wish I was just writing C#.
Bash is a shell language. At its heart it's a CLI, emphasis on the I, it's the primary way of interacting with a computer, not a way to write programs. Even awk is arguably better suited.
That's why it neither needs to be verbose nor readable for complete beginners, you memorize it the same way you memorize where buttons are on a keyboard or what items you can expect in a right click context menu on Windows.
Most bash scripts people write are far too complex for it and could stand a rewrite in perl or python or heck, what I think actually works amazing as a "scripting language" - C.
In PowerShell most common cmdlets for basic operations have aliases by default. And funnily enough you can use both Windows (cmd.exe) and Unix shell names for these. (copy vs cp, del vs rm, etc.)
AFAIK The cmdlets that you use only by Verb-Noun convention are mostly used in scripts, or in some administration tasks.
I also think that some poeple miss the point of PowerShell, as it's not supposed to be worked with like with Unix shells, since it's more object-oriented than string-oriented.
This is me. I'm taking the L on this one and I've (at least occassionally) used Unix-like systems professionally for 15 years. I'm all self-taught on Linux and didn't figure out Tab until I was doing some awful Grub troubleshooting and it spells out that tab autocompletes. So I tried it in terminal and then smirked at the camera like Jim
Yeah I was gonna say that while it sounds completely unusable, it's surprisingly not too bad actually. Some of the more complex shortcuts can get pretty tedious, but nothing that a good config can't solve.
I remember once my friend's laptop died, and while it was in RMA he was using his phone with an external keyboard and mouse to develop a webapp lol. Just goes to show that any computing device that can run a web browser and VIM covers 90% of your daily software needs haha.
What keyboard do you use? Do you need something like Unexpected Keyboard, or are you still able to be productive in vim with a more "standard" Android keyboard?
Personally I just run gotop at startup and keep it on my second monitor. I know it's a small waste of resources but I enjoy watching the blinkenlights.
The only thing worse than reading documentation/tutorials about how to do things in GUIs is writing documentation about how to do things in GUIs. It's just screenshot after screenshot. And following it is like playing a ScummVM game, only less fun and lots more alt+tabbing.
In my experience, half the time it's a bloody YouTube video. Nothing says "fun" like having to seek back around in a video to find the next step without waiting 20 extra seconds because you already had to seek back and pause the video after it breezed past an overcomplicated and poorly explained step.
And the audio is text to speech because it was created by some 12-year-old neckbeard (is that a contradiction?) who is too embarrassed to use their voice on the video they made just to get likes and subscribers.
There are definitely people who think it is reasonable to memorize button locations and 10 levels of menus in GUI programs but would rather go into cardiac arrest than use something like program --option input-file output-file.
While you don't need to memorize button locations and menus, the frustration is that it takes longer, and memorizing those details slightly mitigates. It's torture helping someone do something while they hunt for the UI element they need to get to the next level of hierarchy. They will do it, in time, but it just feels like an eternity.
The main issue in GUI versus CLI is that GUI narrows the available options at a time. This is great, for special purpose usage. But if you have complex stuff to do, a CLI can provide more instant access to a huge chunk of capabilities, and provide a framework for connecting capabilities together as well as a starting point for making repeatable content, or for communicating in a forum how to fix something. Just run command "X" instead of a series of screenshots navigating to the bowels of a GUI to do some obscure thing.
Of course UI people have generally recognized the power and usefulness of text based input to drive actions and any vaguely powerful GUI has to have some "CLI-ness" to it.
Of course my terminals outnumber my browser tabs by about 3:1 right now. Commenting on an internet site needs neither scale nor complexity and a WebUI is fine for that.
To be fair if you want to learn your options (without properly informing yourself using a manual) tab complete can be useful if implemented.
Also most programs come with their manuals so I'd barely call it external. The manuals are also usually better than what I've come to expect from the text to go with buttons in a GUI.
Knowing what commands are required is always going to be necessary but there's also not that many worth remembering.
thing with terminal is you don't need to memorize commands, syntax and options. If you do it's poor design. Good code lets you find things you didn't know you were looking for intuitively, without external resources or manual.
Gui requires you to know what exactly you are doing and is impossible to use without external resources.
Nothing against gui but unless you know what you are doing and every click required to complete that action, it's ass. If term was so bad and gui was so good, terminals would not be used by anyone.
I mean you dont go around copy pasting device ids and running buttons for 20 minutes to connect your device through gui when it is done with 2 commands in the term even by someone who has never used a pc before.
As far as I'm concerned "windows key, start typing the name of the application" or "CMD+space, start typing the name of the application" is the right way to handle GUI. Apple nailed it with Spotlight and it's vastly improved Windows and a variety of Linux DE's
I suppose the point is that the way people interact with GUIs actually resembles how they interact with CLIs. They type from memory instead of hunting through a nested hierarchy to get where they were going. There was a time when Desktop UIs considered text input to be almost a sin against ease of use, an overcorrection for trying to be "better" than CLI. So you were made to try to remember which category was deignated to hold an application that you were looking for, or else click through a search dialog that only found filenames, and did so slowly.
Now a lot of GUIs incorporate more textual considerations. The 'enter text to launch' is one example, and a lot of advanced applications now have a "What do you want to do?" text prompt. The only UI for LLMs is CLI, really. One difference is GUI text entry tends to be a bit "fuzzier" compared to a traditional CLI interface which is pretty specific and unforgiving.
It wasn't the first, no. But it was the first that was commonplace and implemented well enough that others almost immediately adopted it.
It's the same as the iPad. Tablets existed before the ipad. Nobody bought them until apple created a market for them. It's their biggest strength as a company.
It's not that they are mad others use CLI, it's that they're mad that Linux devs regularly stop creating P&CI features, instead opting for CLI with no P&CI equivalent action.
It's kind of obvious why - CLI is already very flexible right out of the box, and it takes much less work to add functionality within CLI rather than creating it for the P&CI.
At the same time, I understand the P&CI folk's frustration, since one of biggest obstacles to getting more people on Linux is the lack of P&CI solutions, and the fact that many actions on Linux are explained solely via CLI.
CLI folks have invested the time to use terminals effectively and view overuse of the P&CI as beneath them, and P&CI folks have no interest in dumping time into learning CLI to do something they could do on Windows with P&CI.
The GUI applications are just terminal applications where you press buttons instead of typing. Creating the buttons and UI is extra overhead for developers.
CLI folks have invested the time to use terminals effectively and view overuse of the P&CI as beneath them, and P&CI folks have no interest in dumping time into learning CLI to do something they could do on Windows with P&CI.
There are people who have learned to use Linux, using whatever tools are best for the job and people who have decided that the only way to interact with a computer is with a mouse and refuse to learn anything else.
You don't have to swap away from Windows. But, if you choose to, know that you will have to learn a new operating system and, on Linux, this means becoming familiar with the terminal.
If you're going to artificially limit yourself, despite the chorus of Linux users telling you otherwise, by deciding that any terminal use indicates a failure of the OS or of developers, then you should not use Linux.
It's hard enough to learn a new OS. Artificially restricting yourself to only using your mouse is going to severely limit your ability to function.
Obviously I'm talking about the DE packages, not the kernel or CLI base. We are talking about windows users switching to linux-based DEs, which are directly trying to compete with Windows and iOS.
This is not me having issue with CLIs. I've been on Linux for decades. I am pointing out the perspective of those that are frustrated with Linux DEs being blatantly unready for mass-adoption, specifically because they expect layman users to learn CLI. See my previous comment and this comment for more details.
It's just that their expectations do not align with reality and they're only going to hurt their experience by thinking that there is a path to using Linux without using the terminal. Some distros do a really good job of creating something that seems like a pure GUI experience, but that illusion only lasts right up until there is a problem that the UI designers didn't anticipate and the only way forward is to type terminal commands.
I'm not trying to be an asshole when I say this kind of thing.
It's just disingenuous for people to recommend Linux and also say 'Don't worry, you won't need the terminal' or to foster the illusion, in new users, that their fear of the terminal is justified. I get that, of all things Linux, the most alien thing from a Windows/Smartphone user's perspective, is a text-based interface.
It seems difficult and social media is full of people acting like the terminal is incredibly difficult to learn so people believe that they can simply opt out of using the terminal. You can't, and trying to do so is going to make users have a horrible experience. It'd be like telling people that Windows doesn't require a mouse, that's possibly true but if a person artificially limits themselves in that way, they're going to have a much harder time than they would have if they'd spend the time to use the OS properly.
This is kind of erasing the author with your description of the issue. The reason that apps eventually require CLI to complete tasks is because devs think of CLI first and then produce a stop-gap P&CI over top of it. It is explicitly how devs in the Linux environment operate which creates a gap between CLI and P&CI. If apps were developed with P&CI in mind first, with CLI added after, this would not be a problem - and we know this because of every app developed for both Windows and Linux, which lack these gaps in functionality - or lack CLI entirely.
Your stance also de-emphasizes the difficulty of learning CLI for the first time. It's not the most difficult thing ever, but it can be fairly frustrating. It's not something you want to deal with when just trying to unwind after work on your PC, or while you're trying to do your job at work. I think it's pretty reasonable most people don't want to have to learn yet another paradigm just to do what they've already figured out how to with a P&CI.
Being realistic, of course, this paradigm shift is not going to happen. Linux will continue to be only a small portion of total computers used by end users because of this, and various other reasons it's found unpalatable.
I've heard that KDE and GNOME, however, are both at a level now where P&CIs are all you really need. I have not tried them myself, though.
The CLI is first because Linux is, first and foremost, an operating system built for terminal access. It was based on Unix, a mainframe operating system that served terminals.
I’ve heard that KDE and GNOME, however, are both at a level now where P&CIs are all you really need. I have not tried them myself, though.
Between all of my devices at home and work, I use KDE, XFCE and hyprland.
KDE has a pretty comprehensive GUI, but to say that they're all you need is a gross exaggeration. Sure, you can connect your bluetooth device via the GUI but if there is any problem with it the GUI is woefully insufficient for troubleshooting. Similarly, you can adjust the volume in the GUI... but if your device is using the wrong bitrate or you want to do anything more complicated than control the device that sound is sent to, then you're going to be editing dot files and using the terminal.
In Linux, the GUI applications are a convenience but the core of the system is the terminal interface. That's what everything has been designed for since the beginning. Graphical Desktop environments are not, at all, a replacement for the terminal.
Your stance also de-emphasizes the difficulty of learning CLI for the first time. It’s not the most difficult thing ever, but it can be fairly frustrating. It’s not something you want to deal with when just trying to unwind after work on your PC, or while you’re trying to do your job at work. I think it’s pretty reasonable most people don’t want to have to learn yet another paradigm just to do what they’ve already figured out how to with a P&CI.
I don't think that it is reasonable to want to swap operating systems without learning the new operating system.
If a person has decided that they never want to use anything but a mouse to solve their problems then Linux is not the OS for them. Learning a new operating system means learning how the operating system works, not declaring how you think it should work and declaring anything outside of your expectations as unreasonable.
If you're coming into this with the idea that you're going to swap to Linux but only use your Windows/Mac knowledge to puzzle through a GUI and also refuse to touch anything that is in the terminal then you should not use Linux. If you're asking for help and then telling the people trying to help you that you're not going to use the terminal, you're going to face a lot of negative responses.
I was specifically trying to not sound conspiratorial. I'm pointing out that it's a matter of having learned a paradigm vs having to learn a new paradigm.
Devs have already gotten used to CLI and very rarely make full P&CI suites because of it. Even if the original Dev only did CLI for the app and someone came back and made a P&CI for that app, those P&CI interfaces are still fairly barebones. This is both a mix of devs knowing how good CLI can be and because it's all open source volunteer work.
Layman users of P&CI-focused DEs actively avoid CLI so they don't have to learn it. This means that using most Linux apps are something to be avoided for most Windows users, making the OS base mostly unusable for them.
To be clear, when I am talking about P&CI-focused DEs, like windows and iOS, I mean that if you cannot perform an action with the P&CI, then that action essentially does not exist for the average user. Contrast that with Linux DEs, where it's quite common to have to directly edit configs or use the CLI to perform various actions.
As a veteran user, CLI does not bother me. I do understand the frustration of those who want some Linux DEs to become as default as Windows and iOS, because lack of P&CI does damage that effort.
This is not every app in Linux obvi, but the ones that are best at making sure the P&CI is full-flddged, are the apps that develop for windows and iOS as well as Linux - Blender, LibreOffice, Logseq, Godot, etc. The most common offenders are the utility apps, such as those that handle drivers, sound systems, DE functions, etc.
In a pretty high end high tech company, there's still lots of people who see a terminal and think "ha hah, they are still stuck in old mainframe stuff like you used to see in the movies".
My team determined long ago that we have to have two user experiences for our team to be taken seriously.
A GUI to mostly convince our own managers that it's serious stuff. Also to convince clients who have execs make the purchasing decisions without consulting the people that will actually use it.
An API, mostly to appease people who say they want API, occasionally used.
A CLI to wrap that API, which is what 99% of the customers use 95% of the time (this target demographic is niche.
Admittedly, there's a couple of GUI elements we created that are handy compared to what we can do from CLI, from visualizations to a quicker UI to iterate on some domain specific data. But most of the "get stuff done" is just so much more straightforward to do in CLI.
I don’t think so, but I do criticize not having an option, that is why I stopped using Cisco personally and professionally, some things are fast using the cli, some things just need an Ui, you need both.
See, in my mind, a CLI is a line buffer-based interface, whereas a TUI is an interactive character-based interface. sed or bash is CLI and vi or rogue is TUI.
I think of tui as "text user interface" and use it as a broad category but mostly for more advanced clis that have a graphical quality to them despite being text based, such as ranger or slack-term. Some tuis even have mouse controls!
Like I get and appreciate the CLI and for networking, that's pretty much all I'm using anyway, but I am shocked that enterprise networking doesn't even bother to do any GUI. Once upon a time Mellanox Onyx bothered to do a GUI and I could see some people light up, finally an enterprise switch that would let them do some stuff from a GUI. Then nVidia bought them and Cumulus and ditched their GUI.
There's this kind of weird "turn in your geek card" culture about rejecting GUIs, but there's a good amount of the market that want at least the option, even if they frankly are a bit ashamed to admit it. You definitely have to move beyond GUI if you want your tasks to scale, but not every engagement witih the technology needs to scale.
I posted a meme a while back and out of the woodwork comes some guy ranting about how apt install sshfs is confusing. Like, the meme wasn't even about CLI vs GUI lol. Nobody was claiming superiority, but there they go ranting anyway.
Yeah apt tends to shit itself very often. I don't like how it's actually two different programs (dpkg and apt) glued together with perl and python. It all feels too fragile. A friend once tried updating a package, and it failed because... he was issuing the apt command from with a python virtual environment. Can't say for pacman because I've never used arch, but xbps is just one set of self-contained binaries, which feels much more robust. Alpine's APK fits that bill as well, lovely little package manager. Tho I guess apt predates both of those, so it's not a fair comparison. Someone had to make those mistakes for the first time.
I also really dislike the Debian/Ubuntu culture of fucking around with the sources file to add other people's repositories on top of the distro-default ones (ubuntu calls this PPA). It's a good idea in theory, but in practice those third party repos always fuck up in some way and brick your package manager. Just search for "apt Failed to fetch" in your favourite internet search engine, and you will see hundreds of people confused about it. You can do it with almost any package manager, but for some reason it's mainly the debian/ubuntu people who like shooting themselves in the foot like this.
I have a coworker that likes to pick fun at my usage of CLI tools. He said it's confusing "why would I use a terminal when the GUI was made after?". They vehemently hate anytime they have to work with CLI.
I watched them use an FTP program to download and change one value in a .conf file. Like they downloaded the file, opened it in notepad++, changed one thing, saved it, reuploaded / overretten the original. I tried to show them how to just use nano and got told their way was "better since you could ensure the file was replaced". Its okay, I've secretly caught them using it a couple times lol
Fortunately, Linux terminals are gorgeous and easy to use. I never wanted to use Windows' com because it was so ugly and user-hostile. I know Powershell is a thing now, but it still looks ugly to me.
I use Linux and I prefer GUIs. I'm the kind of person that would rather open a filemanager as superuser and drag and drop system files than type commands and addresses. I hope you hax0rs won't forget that we mere mortals exist too and you'll make GUIs for us 🙏🙏🙏
Tbf, the file explorer is actually one really good argument for GUIs over terminals. Same with editing text. Its either simple enough to use Nano or I need a proper text editor. I don't mess around with vim or anything like that that.
Its all tools. Some things are easier in a file manager, some things are easier in a GUI.
Yeah I prefer fancy text editor too. And my biggest heartbreak was learning that I can't just sudo kate (there's a way to use Kate to edit with higher privileges but I never remember how, edit: apparently it's opensuse specific problem).
The problem is running GUI code as root as it's never been vetted for that. What you want, effectively, is to have EDITOR variable of your session set to kate and open system files using sudoedit. I'm a terminal guy myself, so this exact thing is enough for me. Having said that - I'm sure someone will chime in with a plugin/addon/extension/etc that adds this to the right click context for what I assume is KDE. Or you can try looking for that om your favourite search engine.
You can edit system files with a GUI text editor by opening the containing folder as root in a GUI file manager, then opening the file you want to edit from there.
FWIW I do use the file browser too when I'm looking for a file with a useful preview, e.g. images.
When I do have to handle a large amount of files though (e.g. more than a dozen) and so something "to them", rather than just move them around, then the CLI becomes very powerful.
It's not because one uses the CLI that one never used a file browser.
Yeah, when I need to inspect lots of images I just open the folder in gwenview.
For peeking at a single picture or two through you can hold down control and click/hover on the filename when using Konsole. Love that feature. You can even listen to .wav files this way.
Very nice, I don't seem to have that option available but I can right-click on a filename to open the file manager in the current directory. Good to know!
I once did rm \* accidentally lol. I now have a program that just moves files to trash aliased as "rm" just in case. I just don't feel confident moving files in CLI
Yeah it happened to all of us. The console is powerful and it means when you mess up, it will have BIG consequences. One learns to test first before globbing https://en.wikipedia.org/wiki/Glob_(programming) too much!
I would say "why not, to each their own" if not the thought about what else the filemanager is going to do with root access (like downloading data from web for file preview). But the general sentiment still stands, it is absurd to think that computer must be used only in one way by all people
meanwhile Windows users: let me drop into this random strangers discord who claims he will make my PC faster by dropping this .bat file that will run thousands of commands to "debloat" my install. also let me edit the registry and add random values to keys that I don't know what they're used for. this process is basically irreversible because I will inevitably forget which keys I've edited over time, wow windows is so simple and easy and intuitive 🤡
That's not a windows problem, it's a user problem. The same scenario could play out with a shell script that modifies a hundred dotfiles. Lots of solutions on Linux help forums are "Paste this into your terminal. Don't forget the sudo!"
I actually used to make backups (Export) of each edited key and keep them in folders with context, so I could later look them up or even set them again in case of a reinstall.
Now, they are lying, forgotten, on some NTFS drive that I haven't opened in years.
I wonder if registry keys can be set with an ansible script? Granted, that is still not as nice as a declarative config (yay NixOS), but better than having to write down and do by hand again on a new install
I mean, the reverse is also true, people have memorized which buttons, menus, etc they need to click/drag with do be productive. Sometimes i m OK with all the clicking, but most times I just want to do the thing now.
Yeah exactly ANY interface made by humans speaks a design language, and it's only "intuitive" insofar as the user understands that language. There's nothing inherently "intuitive" about GUI, it's a language that you've learned through a long process of trial and error. This is painfully obvious to anyone who's ever had to help Grandma reset her gmail password out over the phone. Same for CLI. At first you're copy-pasting commands from tutorials and struggling with man pages, but after a while you get used to the conventions. You learn that -h helps you out and --verbose tells you more and so forth. You could make the case that the GUI design language is more intuitive because it's based of physical objects like buttons and sliders that many people are familiar with, but honestly ever since we abandoned skeumorphic design that argument rings a little hollow.
That's a very nuanced analysis. I've explained it this way especially to people who describe themselves as "bad at computers". Hey, give yourself a break, you've learned a lot about how to cope with windows. But this investment leads to a conservatism--- they dont want to learn coping skills o a new system. The devil you know.
I'd just add that GUI is more discoverable. When faced with a terminal, what to do? Whereas with a GUI you have a menubar, some icons etc. The GUI gives a lot more hints.
In the terminal (which I love) it is more powerful once you know how to crack the lid.
Exactly. You need documentation to figure out how to do anything in a CLI, and if you forget it's back to the documentation, but a GUI exposes all its commands immediately, allowing the user to find things on their own.
Except the iOS UI, which is heavily reliant on gestures with varying numbers of fingers, pressure dependent touch commands that are difficult to pull off consistently (seriously, how the hell do you deliberately do the multi-select drag thing?), and hidden menus that are exposed by dragging in from specific portions of the screen at specific angles with no hint that they're there.
Are the "Windows evangelists" in the room with us right now? Every Windows admin I know hates Microsoft with a burning rage. Literally the only people I've ever seen promote Windows are being paid to do it.
Counterintuitively, that's one reason I like dealing with Windows: the community knows what it is and doesn't pretend otherwise, like some other more "zealous" fan bases.
CLI is effective because every command serves a specific purpose. UIs are the opposite, you have to imagine all possible intentions the user could have at any given point and then indicate possible actions, intuitively block impossible actions, and recover from pretty much any error.
CLI is effective also because of its history (i.e. one can go back, repeat a command as-is or edit it then repeat) but also the composability of its components. If one made a useful command before, it can be combined with another useful command.
Rinse & repeat and it makes for a very powerful tool.
The Unix principle of piping between two or even multiple programs, together with “all data should be in the simplest common format possible” (that is, largely unformatted strings), was a really clever invention to be popularized. As proven by the fact it is still so useful decades later on a myriad of computers unimaginably more powerful than what they had back then.
It’s not perfect by any means (alternative title: why something like Nushell exists), but it’s pretty good all things considered I dare say.
Absolutely. I learned about that decades ago as a teenager and never would I have thought it would still be useful today... yet, in 2025 if you want to do anything powerful, in the cloud, on your phone, even in your XR headset, it is STILL relevant!
Lol no. Many posts in this community recently making fun of gimp. Do you see anyone in the comments going WELL ACTUALLY IF YOU JUST USE IMAGEMAGICK? No. Plenty of things to complain about in the big DE's like KDE and Gnome. But do you see people saying "just use tty"? Also no. Meanwhile you mention terminal once and you get at least two randos going on about how ThIs Is WhY LiNuX IsNt ReAdY. The meme is not backwards, your perception of reality is.
Many posts in this community recently making fun of gimp. Do you see anyone in the comments going WELL ACTUALLY IF YOU JUST USE IMAGEMAGICK? No.
You really don't see why people would suggest using other GUI alternatives for image manipulation? image manipulation?
Plenty of things to complain about in the big DE's like KDE and Gnome. But do you see people saying "just use tty"? Also no
"People don't recommend entirely dropping GUI over one or two GUI issues!" Shocker, wow. They do condescendingly say 'just go into terminal and do x,y,z" though, like I said
It isn't condescending. It's the easiest and simplest way to do a thing. Additionally, there's a wide variety in GUI options on Linux, so if I'm helping somebody out, I'm going to give the terminal commands. Not because I'm a terminal elitist or some nonsense, but because I know it will work regardless of whatever their GUI setup is. I might know where to go in KDE, but I don't know where it would be in GNOME or any other desktop environment I'm unfamiliar with. The terminal command is going to be the same for everybody, though.
Nope, I encourage people to learn CLI but to also use GUI if it does what they need it to. The insult was only to people who think they're superior for using CLI cuz that's a silly stance
Just laughing at the meme being backwards from my own personal experience
Yeah I totally agree. But still, I feel like there are much more terrible GUI programs out there than terrible CLI programs. The only truly awful CLIs I can think of is that tool for managing MegaRAID controllers that has the weird abbreviations everywhere, and shell interfaces to GUI-first bloatware like Dconf that were probably added as an afterthought. I think with CLI there's only so many things that the developer can fuck up. It's all just text. Meanwhile with GUI there are endless opportunities for truly horrid design. Think of Teams. Think of the github web interface. Think of the r*ddit redesign. Or go watch that Tantacrul video on Sibelius. CLI could never have such a breadth of terribleness.
Here's two commands. See if you can guess what they might do:
pacman -S package_name
pacman -Syu
::: spoiler Solution
The first command installs a package.
The second command updates all packages.
:::
I believe, there's some sort of logic to the letters, but man, most users seriously do not care. They just want to install, update and remove packages 99% of the time, so they shouldn't need to learn that intricate logic for three commands.
I guess, you could use pkcon to do that instead, but that doesn't really help new users...
Arch presumes that the user has some familiarity with CLI tools and can read documentation. You couldn't even install it without using the terminal until archinstall became a thing. If it's an issue, Arch is the wrong OS for you.
Besides:
pacman -S - synchronises packages between the remote and local repo.
I figured, I'd ruffle some feathers by saying that. 😅
But yeah, I stand by my point. Just because your target users are capable of dealing with complexity, doesn't mean you should be making use of that rather than simplifying usability, since your users have plenty other things they could be learning instead.
I will caveat that I can see it becoming worth it to learn an intricate logic for a power user, when things fall into place and make sense at a higher level as you learn more about it.
But in my experience, that's just not the case with package managers. You need a few specific commands to be obvious and then the special cases can be obscure flags.
AFAIK, arch never pretended to cater to new linux/cli users, I've always read it as a recommandation for advanced (or at least comfortable with reading docs and using CLI) users.
My first time using arch required me following the arch wiki for install and when I finally got a working system (I'm as bad at following tutorials as I am at following cooking recipes) the pacman commands were not something I struggled with.
But yeah coming from Debian where I had the gloriously intuitive apt syntax, I get your point.
I only learned what pacman -Syu meant, after literal years of typing it in not knowing anything other than "this updates the packages", because I got curious and googled it.
To me it was just an adeptus mechanicus incantation.
EDIT: And I still have no clue how 'y' translates to 'refresh the database'. Like. Sure. S to synchronise from the server to the computer. And u to mark for update all the updatable packages. But -- Why the fuck is 'y' the refresh?
I think they either just ran out of letters, or y was seen as reinforcing the action (as in "yes, download the database too"), with yy being an even stronger action ("yes, download the database even if there's nothing to update").
You think that's bad? For as much as I love seeing a well-configured Nix system, it's beginner-unfriendly learning curve is almost as bad as "compile everything yourself" distros.
As a beginner, do you have a question about Nix? RTFM. You did? Well, wrong Nix. You wanted to learn something about Nix the language, but those docs were about Nix the OS and Nix the package manager.
You just read a guide for using the nix command and wanted to install a program with nix-env? That's an outdated guide. You should be using flakes and nix profile. You tried that, but it said the nix command is experimental so you didn't do it? No, you were supposed to edit /etc/nix/nix.conf to enable them first.
Don't get me wrong here though, I like Nix. It just desperately needs an actual beginner-friendly beginner guide for flakes and nix command commands that doesn't assume everyone is a software developer. 80% of the Nix documentation tutorials aren't even relevant to regular users, only package maintainers and NixOS users.
Eh, I'm fine with man pages. I looked at tldr before, but I've been using the command line for many things almost exclusively for like 10+ years now. I usually just need the reference details.
Having started out in programming before the GUI era, typing commands just feels good to me. But tbh Linux commands really are ridiculously cryptic - and needlessly so. In the 1980s and 90s there was a great OS called VMS whose commands and options were all English words (I don't know if it was localized). It was amazingly intuitive. For example, to print 3 copies of a file in landscape orientation the command would be PRINT /COPIES=3 /ORIENTATION=LANDSCAPE. And you could abbreviate anything any way you wanted as long as it was still unambiguous. So PRI /COP=3 /OR=LAND would work, and if you really hated typing you could probably get away with PR /C=3 /O=L. And it wasn't even case-sensitive, I'm just using uppercase for illustration.
The point is, there's no reason to make everybody remember some programmer's individual decision about how to abbreviate something - "chmod o+rwx" could have been "setmode /other=read,write,execute" or something equally easy for newbies. The original developers of Unix and its descendants just thought the way they thought. Terseness was partly just computer culture of that era. Since computers were small with tight resources, filenames on many systems were limited to 8 characters with 3-char extension. This was still true even for DOS. Variables in older languages were often single characters or a letter + digit. As late as 1991 I remember having to debug an ancient accounting program whose variables were all like A1, A2, B5... with no comments. It was a freaking nightmare.
Anyway, I'm just saying the crypticness is largely cultural and unnecessary. If there is some kind of CLI "skin" that lets you interact with Linux at the command line using normal words, I'd love to know about it.
Yesterday I showed a local business owner how he could set up the signboards and menus in his shop using a raspberry pi. The guy is a windows guy. the second he saw the boot screen he balked. I told him they needed to be set up one time and the rest of the time he could manage them with a windows program (winscp). I don't expect to hear back.
They fear CLI.
Another local guy had a huge archive of forestry images. They were all folders that had been renamed for the location and time they were taken but underneath they were all the standard filenames you get from a digital camera. It was nearly twenty years of pictures and he was getting five figure quotes to rename them all to match the folder names. I told him I could build a script to do it so he brought me one of his backups and I promptly did it using CLI before I was going to build a script. The next day he calls to say he talked it over with one of his vendors and they decided to drop their price down to a two thousand dollars.
He wasn't interesting in me doing it. I hung up and a few years later when he called me to come fix something someone had messed up I hung up again.
I have no doubt the people he was talking to did something similar probably using bash scripts. So now when I tell someone I can sort out their file naming or some other sorting task I don't let them see how I do it.
I was gonna charge the guy 500 dollars to rename thirty thousand images to match the directory names. Since the guy had switched cameras several times it would have involved more than one simple script but I wasn't being paid for the script. I was being paid to do the job. Except my bash prompt scared the guy. The truth of it is he used me to leverage the company that specialized in data recovery into lowering their price down to a still absurd but much smaller amount.
Its not the first time I've seen it but when they do something like that to me they burn a bridge.
A related scam is charging absurd amount to convert and catalog microfiche to images or PDF's. Granted a machine to do this quickly and efficiently is in the 10 to 20 grand range. The process is boring and repetitious and in no way worth the amount some companies want to charge.
It's all a matter of preference anyway (assuming you have both options anyway). CLI is less intuitive and takes longer to learn, but can be wicked fast if you know what you're doing. GUI is more intuitive and faster to pick up, but digging through the interface is usually slower than what a power user can accomplish in the CLI.
It depends on what your use case is and how you prefer your work flow. The only dumb move is judging how other people like their setup.
I do most of my work at the command line, my co-workers do think I'm nuts for doing it, but one of our recent projects required us all to log into a client's systems, and a significant portion of the tasks must be done via bash prompt. Suddenly, I'm no longer the team weirdo, I'm a subject matter expert.
I used to be on the yelling guys side and boy was I wrong. I now write scripts to do anything repetitive, all the time and it's great. I have a whole library of them I use and add to and improve all the time.
It always makes me kind of sad when people disparage CLI use. It's like people thinking they don't need to actually learn anything because they can always look up what they need to know on their phone. It seems a shame to miss so much of the richness of the experience. I found myself arguing, promoting, whatever, terminal use a few times and then realized how pointless it is. It's like arguing with someone about what food they like. You can just hope they develop a more sophisticated palate at some point, or at least become more open-minded, but you can't force it on them.
This was a long way to get around to saying I like that you had that change of frame and are embracing the fun of personalizing your interactions with your computer.
Thanks! Yeah, for me it's that I have a bad memory so memorizing argument orders and things like that felt painful. Scripting is the solution! And you learn while you do it. It's actually kind of fun to make a solid script that works between various OSes as nerdy as that is. I've taken a lot of typing and memorization and turned it into writing (ideally solid) software that allows me to type 1-3 words instead of 20 words. It's satisfying. And you're right, it's something people won't get until they come to it on their own terms.
At work I routinely do laborious tasks the rest of my team procrastinates due to how repetitive and annoying it is. And often it's with a command or two. It feels quite powerful. And it's so flexible how you can combine languages and tools! It's also just interesting to be reminded how all the basic problems were solved by the 1970s when a lot of these tools were created.
Did a process last week that took me 13 steps in the command line that took about an hour. If I'd have done it manually it would have taken days. After I worked out how to do it I trimed it down to 6 steps and sent it to my coworker that also needs that information. His eyes glazed over on step two of explaining it to him and he's just going to keep doing it his way....
So you're right... To an extent... I usually say I'm making a new button when I'm figuring out an alias.
I guess a better way to express my point is that I'm not geared for interpreting graphics to tell what a button is supposed to do, nor am I cool with needing to press the same buttons in order multiple times.
On the CLI, all the buttons are named with (impo) meaningful names, and I can combine them into new just-as-accessable buttons whenever I want for free! It might align more with my working frustrations, I hate dragging my eyes over the same text/iconography every time I wanna do something, I want it to just 'happen'. I need a user interface that can react to me faster than I can think and to achieve that I just limit my UI to exactly what I want and I keep it easy for me to expand as I need it.
reverse-i-search (typically ctrl-r) or ~/.bashrc (or whatever your alternative shell configuration file equivalent is) means one doesn't have to memorize much indeed, especially while commenting properly.
They see the script as the end, when in reality it's a foundation. I rarely look at my foundation. I build on it.
With this workflow I have dozens, hundreds, or thousand of automatic actions that "just work". Idk, works for me.
That said, if you prefer to click yourself to RSI to accomplish the same task, who am I to judge. I just watch and nod until I'm asked for a suggestion.
GUI is a generic swiss army knife. It's easy to introduce to someone, and it has a whole array of tools ready for use. However, each of those tools is only half-decent at its job at best, and all of the tools are unwieldy. The manual is included, but it mostly tells you how to do things that are pretty obvious.
CLI is a toolbox full of quality tools and gadgets. Most people who open the box for the first time don't even know which tools they're looking for. In addition, each tool has a set of instructions that must be followed to a T. Those who know how to use the tools can get things done super quickly, but those who don't know will inevitably cause some problems. Oh, but the high-detail manuals for all the tools are in the side compartment of the toolbox too.
I mean, legitimately, unless you're doing power user things, you don't really need the terminal. And if you are doing power user things, then find me a Windows power user that has never used the command prompt or powershell.
I mean, legitimately, unless you’re doing power user things, you don’t really need the terminal.
This is a fairly recent development, though. Last time I tried Linux I was using the terminal several times a week just browsing the internet and playing games. I've been pleasantly surprised by how infrequently I have to use it now, but I was surprised given my previous experience.
fair enough, I only switched to Linux last February. I do remember it being an absolute pain in the ass in the mid 2010s, I've tried linux a few times over the years. But insofar as now goes, on Mint, the terminal is much the same as the command prompt or PowerShell in windows -- nice for power user functionality, but generally unnecessary for the average user.
I've never met any windows evangelists to be honest. Lots of Apple evangelists though who will spend forever talking about windows. Every developer I've met who uses Windows always had a tongue in cheek sort of "well it kind of sucks in some ways but it's what I'm used to, one day maybe I'll get off my ass and change OS".
Reminds me of the "I use Arch Linux btw" meme which doesn't really happen as much anymore other than as a joke. Also, I use Arch Linux btw
For a program at work the scripting language is Delphi and the Documentation is not available. If you want to know something call the support. CLI is not an option.
It'd be really useful to have a CI run, but that is never going to happen.
Noooo, you cannot have a consistent UI/UX experience across platforms with decades old commands and tools, my imaginary grandma might get confused, also you need three IT degrees to type "man command" into a term window.
Tbf, most man files are not easy to understand.
Between man, tldr, ArchWiki, and an occasional O'Reilly book I can usually get things done, but documentation on Linux still has a lot of room for improvement.
Other than stuff like ffmpeg - which has so many features that a man page just can't cut it; and sed - which doesn't have a simple hyperlink saying "you go here to learn sed regexp", most man pages do what I need them to do.
You just need to learn the basics of how the man page is organised and what the brackets in the SYNOPSIS section mean and that makes using them much easier.
I don't mean that man itself isn't functional, I mean the way most man pages are written isn't clear enough to communicate how to use the programs they refer to.
I'd include the man page for man in that, and I'd encourage anyone else to look at it from the eyes of someone who can follow written instructions and ask "How does this manual/help file compare to others I have read?".
So, for example, in the examples, it says:
man -a intro
Display, in succession, all of the available intro manual pages contained within the manual. It is possible to quit between successive displays or skip any of them.
Those two lines are the only place within man's man page (at least the one you get from man man) that use the string "intro". What is an intro in this context? Guess you got to run it to find out.
What is -a for? About 200+ lines down there is a two sentence explanation.
The first sentence tells you how man normally behaves, saying: "By default, man will exit after displaying the most suitable manual page it finds." This sentence is unclear ("When does man exit after displaying the most suitable manual page it finds? When I run man ls I see the manual for ls on my screen until I press 'q' to 'quit' out of it.") and not immediately connected to the purpose of the flag/option.
The second sentence says: "Using this option forces man to display all the manual pages with names that match the search criteria." This is a lot clearer, and my only complaint about it can be that it's not the first sentence in the explanation.
Yeah, one big problem of man I found was the severe lack of explanation of what the command is mainly intended to do.
It's as if the user is expected to run the man after knowing what purpose a specific program exists for, which, I guess is what it is intended for.
I tend to rely on the package manager's information and other similar sources for that information and man mainly for determining the exact usage.
I don't at all expect man to be useful for someone who can just follow written instructions.
The reason being than man is just supposed to tell the user, what typy stuff needs to be done for specific functionality. And most programs tend to be doing some small thingy and not fulfilling the user's whole requirement in one go.
Meaning, to be happy with just man, one needs to be able to create a solution for themselves by properly fitting little parts and that is already more than half way to being able to do programming.
Your man -a intro example and what followed, made me more confused than before of what you were trying to say, so I am just trying to go with the feel of it for now.
...
Maybe knowing that you can use / and then whatever string of text to find something in the man page (because it uses less to paginate the output) would be useful for some of what you said. So you can do /-a and press Enter to start searching for "-a". And the reason for it being so far is because it is in the "OPTIONS" section.
I now feel like someone who reads a lot of legal documents would be fine with man pages. Was this format made by someone in that field?
Yeah I'm okay with the basic navigation options. The primary point is that man pages do look like they had written by someone who does not do technical writing. Whether that's someone coming from a law background, programming, or whatever.
It's not written for an end user who wants to know how to use the tools they have available. It will tell you what a command "does", sometimes, but it doesn't explain itself. It presumes a certain amount of pre-existing knowledge, or familiarity with the syntax of man writers.
For another example, the man for ls repeatedly lists options referencing "implied" entries without ever explaining what "implied" means in this context. It presupposes that the reader knows what that term means. I know what an implication is in an English class, and the antonym for "implied" is "explicit", but in a man page? No clue. Not like there's reference to or examples of "explicit" entries to contrast with "implied" entries. You just have to know what it means in context, or figure it out some other way.
It's more about most people don't have time to learn all the commands to be a sufficient enough user. I don't want to dig through an endless stream of AI slop articles hallucinating me the commands I need for something, nor have the time and money to retreat from society "to learn it properly". Also often the things I do is more intuitive for a button or shortcut press (I have made a card for my keyboard for F-keys) rather than typing in every time the commands.
Going CLI from GUI feels like ripping out the interiors and the dashboard from your car to make it slightly lighter the same way race cars are done, but instead you're doing it to the family car. Sure, a lot of GUI is now a web app, because some techbro in the 2010's wanted to collect our data for advertisement opportunities and creating the Torment Nexus free us from software installations, so we could just type www . wordprocessor . com into the URL bar of our browser instead of running the spooky and scary wordprocessor.exe after running the even spookier and scarier wordprocessor_install_1_6_5.exe. This in turn lead to a lot of student being over-reliant on HTML-like formatting for UI, and GTK and Qt not being taught in turn, which also could serve as lightweight and mostly cross-platform GUI. I even created my own GUI subsystem in my game engine for its editors.
A lot of problems caused by those on the top are being blamed on "normie users", because we need to be "ideologically neutral", except when it comes to "supressed" ideologies...
That varies from command to command though. man is nice if you know how to use the command but have forgotten which option does what you want. But if you have no idea how to use a program, reading e.g. man awk will not be very helpful
People can do whatever they like, and heck I find CLI intimidating sometimes, but I'm always learning something new a little bit at a time.
I'm tired of seeing it in every field of interest that has any kind of payoff, whether art or FOSS.
"I'm [(almost always) a guy] who (maybe has kids and) has a job. I stopped learning anything after I got my job-paper / degree / highschool diploma. I shouldn't have to learn anything anymore. I am happy to shell out disposable sad-salary-man money (and maybe my soul idk) to any mega-corp that offers me a "create desired outcome button" without me having to think too much. It's [current year]! I shouldn't have to think anymore! Therefore Linux is super behind and only for nerds and I desire its benefits so much that I leave this complaint anywhere these folks gather so they know what I deserve."
Agh. I gotta go before this rant gets too long lol
Think this is more of a accessibility thing. No one denies the CLI is really efficient to use if you're a professional, it shouldn't be the norm that you have to be proficient with it to use your computer to the fullest though. Nor to receive help if you don't feel comfortable using it.
It would be nice if everyone could enjoy free and trustworthy computing, including people who either can't or won't learn many dozens text commands and paradigms.
The weirdest thing for me is when people complain about terminal when there is a meme how much easier it is to do something on Linux compared to windows or MacOS.
Terminal is the easiest way to highlight that for a meme.
It is really weird, yeah. Half the commands are actual sentences. Tbf most of the common ones have shorter aliases (test-netconnection -> tnc, clear-itemproperty -> clp, get-content -> cat, etc).
The killer feature of PowerShell imo is the -WhatIf flag. I wish all shells had something like that, it's fantastic for testing scripts without risk of damaging anything.
I love its Verb-Noun system and verbose parameter names. It's easy to understand what command or parameter does just by the name. Get-MailboxPermission probably retrieves mailbox permissions, Stop-Process stops process, Remove-ADUser deletes AD user etc. If there would be no auto complete I might find it irritating, but once you get a hang of it, it's a breeze.
Ofc they do. But most users don't use it at all. Even most windows admins (based on my experience) don't know PowerShell which doesn't mean they know how to use CMD.
They must be some pretty shitty admins then. PowerShell is essential for managing more than a handful of windows boxes. If you're running server core (which you should be in most cases) PowerShell and rsat are the only way to manage your boxes
Another example is Exchange where all Admin Center (GUI) operations are calling PS commands underneath. Not everything is in Admin Center so you must use PS eventually. Not to mention that you cannot perform batch tasks without scripting.
Another example is boot or login scripts that run on all the servers/desktops to make environment changes you can't handle with group policy. This person is talking nonsense, they don't know any windows admins.
Sounds to me like they chose to be helpdesk. It's nearly impossible to be a windows admin without using PowerShell, unless you're super old school and use vbs for everything.
People just don’t want to confess that they are feared from that little black box that apparently kills your whole machine, if you just type a wrong letter having a terminal open. 🤗
As always,
not enough education in society.
If more people would be brave to test it, more people would see that they can interact like this, better. And some, like me, appreciate the hard work GUI designers do, to make stuff more intuitive in the cost of efficiency
I love GUI with integrated terminal, tho, like dolphin
Tbh the terminal is super convenient. No random UI placement. Most things follow one of several conventions so less to get used to. It’s easy to output the results of one command into another making automation obvious, no possibility for ads. It’s pretty sweet
I never touched that file. Actually wait I did. I put in a quick script to run the Gmouse.exe. Basically to run the mouse driver which you had to do manually every time! But with it there you could automate it and not worry about it.
Ahh, gmouse...pkunzip (which I called Punk unzip). Fun times.
I worked customer support for a WordPress hosting company for a while, and about 70% of all of their troubleshooting was done in terminal.
I never used terminal until that job. To this day I do most of my management the same way
I feel like a lot more people be comfortable using the terminal if the text displayed when it was first opened gave you a list of commands to try. There is a very steep initial learning curve immediately which discourages experimentation, and I think that with a little bit of effort you could get a lot of people over that hump and then they could enjoy terminal Bliss.
Ever since switching to fish, I've been using the terminal more and more. It's the most intuitive interface I can think of. Now to fix my neovim configuration...
I love fish, but I can see why POSIX purists would hate it. I haven't run into any problems, but if I need to use bash, I have it installed, too. The biggest problem is that it doesn't have wide adoption, so everybody assumes you're using bash, and a lot of the bash commands don't work in fish. So you have to be a bit of a power user if you want to do anything fancy.
Worst case scenario is that you run just those commands in sh. I don't see a problem really. I also like fish's syntax, so it's easy to trade for POSIX compatibility. If you really really must, you could also use an LLM to convert your bash script to fish.
Just the other day, I was trying to run a CLI program, one I won't name.
I'm trying out a new immutable distro, and couldn't install it, so I said hey these new flatpaks are supposed to be all a guy could ever need.
So I downloaded an app that uses this unnamed CLI program as its core. It was a GUI app. And while it worked just fine, I also had very little control over what exactly was gonna happen and how it would happen. I wanted to do some specific things I knew the core program could do, but there was no way to do it.
Eventually I dug deeper and realized I'm an idiot and the CLI program can run without installing it or any dependencies, so it was fine to use natively. I was able to accomplish my task quickly and efficiently after that, happy as a clam.
CLI and GUI both have their place. I prefer GUI most the time, honestly. But having some CLI chops can be extremely useful at times.
Due to work environment and me not switching yet (I won't go to W11,but switching requires a bunch of time investment I haven't gotten around to yet) I'm mostly working in Windows, but even them I use CLI a ton. Mostly powershell, but there are a lot of cmd commands useful in troubleshooting, and robocopy and other tools are more reliable than their gui counterparts.
It’s wild that Linux stans are such masochists that they believe they can convert people to loving abuse, instead of just making the interface better to attract users.
I've found that one of the best things to do when making a library for something that is going to have a web interface is to first have it work in the terminal. You can much more quickly play around with the design and fix issues there instead of having to work with a more complex web interface.
You just create a simple menu system, like input("1: Feature A\n2: Feature B\n>") and just start trying out all of the different scenarios and workflows.
I use both Windows and Linux. I also mess around with github programs here and there and they almost all require use of a command line to install or manipulate. And because a command line intrinsically is going to inform you way too little or way too much about what you are doing I end up having way more technical issues because I don't realize I'm missing a dependency or I glazed over an error that popped up in a sea of text during installation.
Linux's leaning on CLI is good for extremes: ultra-techy programmers and perfectionists and the exact opposite: people who just want internet and a word processor (who will install like basically nothing anyway so CLI wont bother them and probably keep them from breaking something in a GUI settings page).
People in the middle who are semi-techy end up annoyed because if they want to do some middle of the road changes to their system they have to use a command line or even code something themselves. Instead of just using a search engine to find the 1 out of a billion different little windows based applications that already exist to do the small yet very specific thing to a "good enough" level. Which just requires a minute or two of internet research, clicking download, waiting a bit, then installing a thing. Some of those tasks you can do while doing something else.
Or yes, maybe they end up needing to edit an ini file or a registry file (very rarely in the latter case).
Basically I'm talking about tech users that always use the path of least resistance rather than the most advanced or custom. People who want to do 20% of the work to get 80% of the results.
meanwhile windows users complacent in learning complex muscle memory in order to navigate only the most autistic UI design ever created (it was windows)
Fucking terminal, in many of them ctrl+c and ctrl+v don't even work.
and don't get me started on how they implement ctrl+z. I'm waiting for a terminal to have the ms-office ribbon menu bar before I'll use it.
I am almost afraid to say it, but I'm confident someone out there has created such a cursed terminal. The modern word ribbon does not match the windows XP theme, though :(
There is nothing productive about searching online for some stupid command that is outdated for 2 years, breaks some shit and then you need another 2 hours to unfuck it because it's not obvious from the long noodle of a command how to revert it. For something that could just be 3 clicks through control panel that every idiot could navigate without having to use online search engine.
Why are you entering commands that you read about online without knowing what they do? There's a running joke that you need to enter rm -fr / to remove the French language from your system; it actually wipes the entire disk mounted to /.
When you know what the commands do, using the terminal is always going to be faster (i.e., more productive) and use fewer system resources than using a GUI. That's just a fact, sorry if it annoys you when people point it out. Whenever I need to move a lot of stuff around, I will always use mv instead of Thunar (my file manager) even though I prefer a GUI for most tasks.
I agree. For regular user facing tasks, the terminal should be a last resort. I say this as someone who will happily defer to the terminal if I need more advanced control. But when basic configuration is subject to just CLI, it's not as accessible as it could or should be
There are two different "efficiency" and "simplicity" perspectives clashing here. If you already are proficient with the CLI it's arguably more efficient and/or simple than GUI solutions. If you are not then there's literally a steep learning cliff in front of you, something many in the first group apparently either forget or otherwise want to ignore. It just sucks, some people in the community do have a lot of knowledge but a complete lack of understanding for people outside of their tech bubble.
" i shouldn't have to memorize commands"
the up arrow:
The commands: ls cp mv...
Meanwhile you get Windows people who memorize things like Get-AllUsersHereNowExtraLongJohn
Get-ListOfFunnyPowershellReferences++
(Seriously...
ExtraLongJohnis damn funny)Get-command -noun <string[]>
Handy AF
Versus:
man $commamdPowerShell might be okay script syntax for people with uncorrected sight issues and the elderly who's heart might not handle bash without
set -ebut to be useful as a CLI shell prompt that is your primary way of interacting with the computer like it can be on Linux it needs to be so so so much shorter. I'll be dead by the time I type out half the shit it'd be like 4 key presses total on Linux.And that's before you get to the issues of it being a whole object oriented and typed programming language with .NET whereas shell is nice universal text everywhere that can be piped around however you want.
There are even those absolute mad lads who unironically use PowerShell on Linux.
Learning the absolute basics of how to use tmux, vim, sed, awk and grep and pipes and redirects and the basics of handling stdin and stdout genuinely made me feel like all my life I was an NPC in the matrix and now I'm Neo just because passing around bits of text is so powerful when everything works on that basis.
Yea, when I switched to Linux, at first I installed PowerShell to get something familiar, but quickly realized that contrary to Windows, terminal on Linux is actually usable on it's own out of the box.
PowerShell doesn't stop on errors either by default. And of course a significant number of tools you need aren't available in PowerShell, only cover partial functionality or are an exe you need to call so even if it did stop on error, doesn't work for those tools by default.
It is still a shock to me that some genius aliased curl to
Invoke-WebRequestand thatcurl.exeis what you actually want.Re: length of commands, PS commands are longer, but they also have tab completion so realistically you never type the whole thing, only enough to be unambiguous and press tab. I'll grant it's still longer than the equivalent bash, but not by as much as it appears.
I'm one of those that use PowerShell on linux.
You can use tmux, vim, sed, awk or whatever binary you want from PowerShell. Those are binaries, not shell commands.
You can use pipes, redirects, stdin and stdout in PowerShell too.
I personally don't regularly use any object oriented features. But whenever I search how to do something that I don't know what to do, a clear object-oriented result is much easier to understand than a random string of characters for awk and sed.
Mixing the two philosophies of coreutils and unix bins and whatever is happening in PowerShell seems even more unholy to me than the phrase "object oriented result", but different strokes.
I gave up on PowerShell on Windows as a plausible alternative to Bash on Linux the minute I realized there's no real equivalent to
cat, there'stypeor if you hate yourself -Get-Contentwhich is aliased ascatbut doesn't really work the same way.If I can't even very basically list a file irregardless of what's in it, it's just dead out of the gate.
On Linux, I once sent myself an MP3 from my server to my laptop with
cat song.mp3 | base64 -w0 > /dev/tcp/10.10.10.2/9999because I cba to send ssh keys.I'll give modern windows a few points - the new terminal emulator application is sweet, and having ssh makes it easy to login to remotely.
PowerShell is a strange programming language that makes me wish I was just writing C#.
Bash is a shell language. At its heart it's a CLI, emphasis on the I, it's the primary way of interacting with a computer, not a way to write programs. Even
awkis arguably better suited.That's why it neither needs to be verbose nor readable for complete beginners, you memorize it the same way you memorize where buttons are on a keyboard or what items you can expect in a right click context menu on Windows.
Most bash scripts people write are far too complex for it and could stand a rewrite in
perlorpythonor heck, what I think actually works amazing as a "scripting language" - C.In PowerShell most common cmdlets for basic operations have aliases by default. And funnily enough you can use both Windows (
cmd.exe) and Unix shell names for these. (copyvscp,delvsrm, etc.)AFAIK The cmdlets that you use only by Verb-Noun convention are mostly used in scripts, or in some administration tasks.
I also think that some poeple miss the point of PowerShell, as it's not supposed to be worked with like with Unix shells, since it's more object-oriented than string-oriented.
Long long maaaaan
Just wait until they learn about ctrl-R haha
I've seen people not realize tab autocompletes.
I learned that tab=autocomplete when I first played minecraft in grade school haha. I just assumed that it was common knowledge but apparently not...
Oof, my back.
I'll save you a spot at the bingo table
This is me. I'm taking the L on this one and I've (at least occassionally) used Unix-like systems professionally for 15 years. I'm all self-taught on Linux and didn't figure out Tab until I was doing some awful Grub troubleshooting and it spells out that tab autocompletes. So I tried it in terminal and then smirked at the camera like Jim
These people would be mind-blowing if they try fish.
Holy shit
Wait until you learn about fzf - a replacement for ctrl-r that offers fuzzy search with a nice tui
I'm completely familiar with fzf!
I also generally tap in the first few letters of a command then use pgUp (on my system) to autocomplete. Or use the ol' !<command#>.
But I have somehow never friggin heard about Ctrl+r.
Huh, interesting, I never used fzf outside of ctrl-r!
holy hell
old response dropped
actual Redditors
I'm the type to spend 10 minutes going through my previous commands, rather than 5 seconds typing it.
I've got
haliased tohistory | grepand it's been revolutionaryAlternatively, ctrl+r
Sounds like you should try fzf to get a better ctrl+r experience.
What about ctrl+r to reverse search?
Up arrow about 400 times for that one command*
See also: atuin - a shell history tool that records your shell history to sqlite.
Seamless sync across shell sessions & machines, E2EE + trivially self-hostable sync server, compatible with all major shells, interactive search, etc.
GNU Terry Pratchett
Well, now I know they use gruvbox for the demo/screenshots, I guess I have to see if it can be a replacement for Mcfly.
"Alias? What is that?"
That’s it, I need to hook up a controller to my PC so I can open Htop with a button press
Almost as painful as using vim on your phone without an external keyboard
I genuinely use vim inside of termux on a daily basis. I dunno if I'm sick in the head or what, but I kinda like vim on my phone.
Yeah I was gonna say that while it sounds completely unusable, it's surprisingly not too bad actually. Some of the more complex shortcuts can get pretty tedious, but nothing that a good config can't solve.
I remember once my friend's laptop died, and while it was in RMA he was using his phone with an external keyboard and mouse to develop a webapp lol. Just goes to show that any computing device that can run a web browser and VIM covers 90% of your daily software needs haha.
What keyboard do you use? Do you need something like Unexpected Keyboard, or are you still able to be productive in vim with a more "standard" Android keyboard?
Just default Gboard. It's not pleasant, but it's good enough for most of what I do.
Personally I just run gotop at startup and keep it on my second monitor. I know it's a small waste of resources but I enjoy watching the blinkenlights.
If you're on Xorg, you can also use xwinwrap to make gotop (or any other app) your wallpaper btw. Kinda useless on a tiling WM tho
Make all your windows translucent!
Just use a MIDI controller or an Arduino button box. You can do it!
What are you, a Tintin villain based on Greek stereotypes?
btop could be pretty controller friendly
I love btop!
The only thing worse than reading documentation/tutorials about how to do things in GUIs is writing documentation about how to do things in GUIs. It's just screenshot after screenshot. And following it is like playing a ScummVM game, only less fun and lots more alt+tabbing.
Screenshots? Look at Mr. Speedy Pants over here!
In my experience, half the time it's a bloody YouTube video. Nothing says "fun" like having to seek back around in a video to find the next step without waiting 20 extra seconds because you already had to seek back and pause the video after it breezed past an overcomplicated and poorly explained step.
Unregistered hypercam 2 + notepad instructions + evanescence is an aesthetic tho
And the audio is text to speech because it was created by some 12-year-old neckbeard (is that a contradiction?) who is too embarrassed to use their voice on the video they made just to get likes and subscribers.
Or loud crappy generic music with notepad open for captions.
My experience has usually been someone with a very thick accent and an incredibly crappy microphone.
If the GUI is good, then it's self documenting.
I've got a new favorite quote: "I don't need tutorials, I need verbose tooltips." -Wonderbot
Are there people who are mad at other people for using the terminal? Is this really a thing that exists?
Usually it’s the other way around
Not really. But you know, gotta find ways to feel smarter than other people so here we go.
And those Windows evangelists! Don't we all know 'em with their strong opinions about operating systems? *shakes fist at cloud*
Yeah you just can't be in a server room anymore without some dude trying to sell you on Office365 and Cortana, sigh.
Do you have a moment to talk about our Lord and savior, the Microsoft App Store, and his enlightened prophet, Candy Crush Saga?
There are definitely people who think it is reasonable to memorize button locations and 10 levels of menus in GUI programs but would rather go into cardiac arrest than use something like
program --option input-file output-file.While you don't need to memorize button locations and menus, the frustration is that it takes longer, and memorizing those details slightly mitigates. It's torture helping someone do something while they hunt for the UI element they need to get to the next level of hierarchy. They will do it, in time, but it just feels like an eternity.
The main issue in GUI versus CLI is that GUI narrows the available options at a time. This is great, for special purpose usage. But if you have complex stuff to do, a CLI can provide more instant access to a huge chunk of capabilities, and provide a framework for connecting capabilities together as well as a starting point for making repeatable content, or for communicating in a forum how to fix something. Just run command "X" instead of a series of screenshots navigating to the bowels of a GUI to do some obscure thing.
Of course UI people have generally recognized the power and usefulness of text based input to drive actions and any vaguely powerful GUI has to have some "CLI-ness" to it.
Of course my terminals outnumber my browser tabs by about 3:1 right now. Commenting on an internet site needs neither scale nor complexity and a WebUI is fine for that.
To be fair if you want to learn your options (without properly informing yourself using a manual) tab complete can be useful if implemented.
Also most programs come with their manuals so I'd barely call it external. The manuals are also usually better than what I've come to expect from the text to go with buttons in a GUI.
Knowing what commands are required is always going to be necessary but there's also not that many worth remembering.
The alternative to memorization is the analog to "hunt and peck typing" where you just search the whole fucking screen/program.
thing with terminal is you don't need to memorize commands, syntax and options. If you do it's poor design. Good code lets you find things you didn't know you were looking for intuitively, without external resources or manual. Gui requires you to know what exactly you are doing and is impossible to use without external resources. Nothing against gui but unless you know what you are doing and every click required to complete that action, it's ass. If term was so bad and gui was so good, terminals would not be used by anyone.
I mean you dont go around copy pasting device ids and running buttons for 20 minutes to connect your device through gui when it is done with 2 commands in the term even by someone who has never used a pc before.
Ftfy buddy
man genfstab
genfstab whateveroptionsyouwant
Now give me all the X and Y coordinates of where i would click on my QHD screen for your example in gui plz
man genfstab gave an error? Neither CLI nor GUI is gonna help with simply not having something installed that the guide assumed.
Yawn, sure sure.
Thats a lot of text without a single x y coordinate buddy. Try harder while touching that grass, won't ya?
As far as I'm concerned "windows key, start typing the name of the application" or "CMD+space, start typing the name of the application" is the right way to handle GUI. Apple nailed it with Spotlight and it's vastly improved Windows and a variety of Linux DE's
Uh.. Do you think spotlight was first doing search by typing from a hotkey..?
What you're describing are basic menus and icon search. I honestly don't get what you're getting at with this at all, maybe I'm just dumb.
I suppose the point is that the way people interact with GUIs actually resembles how they interact with CLIs. They type from memory instead of hunting through a nested hierarchy to get where they were going. There was a time when Desktop UIs considered text input to be almost a sin against ease of use, an overcorrection for trying to be "better" than CLI. So you were made to try to remember which category was deignated to hold an application that you were looking for, or else click through a search dialog that only found filenames, and did so slowly.
Now a lot of GUIs incorporate more textual considerations. The 'enter text to launch' is one example, and a lot of advanced applications now have a "What do you want to do?" text prompt. The only UI for LLMs is CLI, really. One difference is GUI text entry tends to be a bit "fuzzier" compared to a traditional CLI interface which is pretty specific and unforgiving.
It wasn't the first, no. But it was the first that was commonplace and implemented well enough that others almost immediately adopted it.
It's the same as the iPad. Tablets existed before the ipad. Nobody bought them until apple created a market for them. It's their biggest strength as a company.
Ahh I hate that windows does that. It makes it impossible to do anything else with the super key.
Super+D is what I use but anything but just tap that button and flash your screen with a menu you didn't want is great.
It's not that they are mad others use CLI, it's that they're mad that Linux devs regularly stop creating P&CI features, instead opting for CLI with no P&CI equivalent action.
It's kind of obvious why - CLI is already very flexible right out of the box, and it takes much less work to add functionality within CLI rather than creating it for the P&CI.
At the same time, I understand the P&CI folk's frustration, since one of biggest obstacles to getting more people on Linux is the lack of P&CI solutions, and the fact that many actions on Linux are explained solely via CLI.
CLI folks have invested the time to use terminals effectively and view overuse of the P&CI as beneath them, and P&CI folks have no interest in dumping time into learning CLI to do something they could do on Windows with P&CI.
Pardon my ignorance but what does P&CI stand for?
Edit: nvm got it I think it's Point & Click Interface
Correct, point and click interface
Linux is the terminal.
The GUI applications are just terminal applications where you press buttons instead of typing. Creating the buttons and UI is extra overhead for developers.
There are people who have learned to use Linux, using whatever tools are best for the job and people who have decided that the only way to interact with a computer is with a mouse and refuse to learn anything else.
You don't have to swap away from Windows. But, if you choose to, know that you will have to learn a new operating system and, on Linux, this means becoming familiar with the terminal.
If you're going to artificially limit yourself, despite the chorus of Linux users telling you otherwise, by deciding that any terminal use indicates a failure of the OS or of developers, then you should not use Linux.
It's hard enough to learn a new OS. Artificially restricting yourself to only using your mouse is going to severely limit your ability to function.
Obviously I'm talking about the DE packages, not the kernel or CLI base. We are talking about windows users switching to linux-based DEs, which are directly trying to compete with Windows and iOS.
This is not me having issue with CLIs. I've been on Linux for decades. I am pointing out the perspective of those that are frustrated with Linux DEs being blatantly unready for mass-adoption, specifically because they expect layman users to learn CLI. See my previous comment and this comment for more details.
I do understand their perspective.
It's just that their expectations do not align with reality and they're only going to hurt their experience by thinking that there is a path to using Linux without using the terminal. Some distros do a really good job of creating something that seems like a pure GUI experience, but that illusion only lasts right up until there is a problem that the UI designers didn't anticipate and the only way forward is to type terminal commands.
I'm not trying to be an asshole when I say this kind of thing.
It's just disingenuous for people to recommend Linux and also say 'Don't worry, you won't need the terminal' or to foster the illusion, in new users, that their fear of the terminal is justified. I get that, of all things Linux, the most alien thing from a Windows/Smartphone user's perspective, is a text-based interface.
It seems difficult and social media is full of people acting like the terminal is incredibly difficult to learn so people believe that they can simply opt out of using the terminal. You can't, and trying to do so is going to make users have a horrible experience. It'd be like telling people that Windows doesn't require a mouse, that's possibly true but if a person artificially limits themselves in that way, they're going to have a much harder time than they would have if they'd spend the time to use the OS properly.
This is kind of erasing the author with your description of the issue. The reason that apps eventually require CLI to complete tasks is because devs think of CLI first and then produce a stop-gap P&CI over top of it. It is explicitly how devs in the Linux environment operate which creates a gap between CLI and P&CI. If apps were developed with P&CI in mind first, with CLI added after, this would not be a problem - and we know this because of every app developed for both Windows and Linux, which lack these gaps in functionality - or lack CLI entirely.
Your stance also de-emphasizes the difficulty of learning CLI for the first time. It's not the most difficult thing ever, but it can be fairly frustrating. It's not something you want to deal with when just trying to unwind after work on your PC, or while you're trying to do your job at work. I think it's pretty reasonable most people don't want to have to learn yet another paradigm just to do what they've already figured out how to with a P&CI.
Being realistic, of course, this paradigm shift is not going to happen. Linux will continue to be only a small portion of total computers used by end users because of this, and various other reasons it's found unpalatable.
I've heard that KDE and GNOME, however, are both at a level now where P&CIs are all you really need. I have not tried them myself, though.
The CLI is first because Linux is, first and foremost, an operating system built for terminal access. It was based on Unix, a mainframe operating system that served terminals.
Between all of my devices at home and work, I use KDE, XFCE and hyprland.
KDE has a pretty comprehensive GUI, but to say that they're all you need is a gross exaggeration. Sure, you can connect your bluetooth device via the GUI but if there is any problem with it the GUI is woefully insufficient for troubleshooting. Similarly, you can adjust the volume in the GUI... but if your device is using the wrong bitrate or you want to do anything more complicated than control the device that sound is sent to, then you're going to be editing dot files and using the terminal.
In Linux, the GUI applications are a convenience but the core of the system is the terminal interface. That's what everything has been designed for since the beginning. Graphical Desktop environments are not, at all, a replacement for the terminal.
I don't think that it is reasonable to want to swap operating systems without learning the new operating system.
If a person has decided that they never want to use anything but a mouse to solve their problems then Linux is not the OS for them. Learning a new operating system means learning how the operating system works, not declaring how you think it should work and declaring anything outside of your expectations as unreasonable.
If you're coming into this with the idea that you're going to swap to Linux but only use your Windows/Mac knowledge to puzzle through a GUI and also refuse to touch anything that is in the terminal then you should not use Linux. If you're asking for help and then telling the people trying to help you that you're not going to use the terminal, you're going to face a lot of negative responses.
I've never seen this?
It's typically a completely different developer who creates the CLI first, and then one of us adds a P&C after.
So if something is brand new, sure there might be no P&C, yet.
I promise There's no conspiracy to not have nice things. Haha.
I was specifically trying to not sound conspiratorial. I'm pointing out that it's a matter of having learned a paradigm vs having to learn a new paradigm.
Devs have already gotten used to CLI and very rarely make full P&CI suites because of it. Even if the original Dev only did CLI for the app and someone came back and made a P&CI for that app, those P&CI interfaces are still fairly barebones. This is both a mix of devs knowing how good CLI can be and because it's all open source volunteer work.
Layman users of P&CI-focused DEs actively avoid CLI so they don't have to learn it. This means that using most Linux apps are something to be avoided for most Windows users, making the OS base mostly unusable for them.
To be clear, when I am talking about P&CI-focused DEs, like windows and iOS, I mean that if you cannot perform an action with the P&CI, then that action essentially does not exist for the average user. Contrast that with Linux DEs, where it's quite common to have to directly edit configs or use the CLI to perform various actions.
As a veteran user, CLI does not bother me. I do understand the frustration of those who want some Linux DEs to become as default as Windows and iOS, because lack of P&CI does damage that effort.
This is not every app in Linux obvi, but the ones that are best at making sure the P&CI is full-flddged, are the apps that develop for windows and iOS as well as Linux - Blender, LibreOffice, Logseq, Godot, etc. The most common offenders are the utility apps, such as those that handle drivers, sound systems, DE functions, etc.
I take your point. And this was very much the case for a long time.
But it's worth pointing out that Gnome and KDE are both done, now.
I haven't been forced to reach for command line to change something - anything - on either of my last couple of Linux installs.
Edit: I almost didn't notice, but it feels worth celebrating and raising awareness.
In a pretty high end high tech company, there's still lots of people who see a terminal and think "ha hah, they are still stuck in old mainframe stuff like you used to see in the movies".
My team determined long ago that we have to have two user experiences for our team to be taken seriously.
A GUI to mostly convince our own managers that it's serious stuff. Also to convince clients who have execs make the purchasing decisions without consulting the people that will actually use it.
An API, mostly to appease people who say they want API, occasionally used.
A CLI to wrap that API, which is what 99% of the customers use 95% of the time (this target demographic is niche.
Admittedly, there's a couple of GUI elements we created that are handy compared to what we can do from CLI, from visualizations to a quicker UI to iterate on some domain specific data. But most of the "get stuff done" is just so much more straightforward to do in CLI.
I don’t think so, but I do criticize not having an option, that is why I stopped using Cisco personally and professionally, some things are fast using the cli, some things just need an Ui, you need both.
A cli is a ui. I know that's pedantic but this is Linux memes
See, in my mind, a CLI is a line buffer-based interface, whereas a TUI is an interactive character-based interface.
sedorbashis CLI andviorrogueis TUI.I think of tui as "text user interface" and use it as a broad category but mostly for more advanced clis that have a graphical quality to them despite being text based, such as ranger or slack-term. Some tuis even have mouse controls!
Like I get and appreciate the CLI and for networking, that's pretty much all I'm using anyway, but I am shocked that enterprise networking doesn't even bother to do any GUI. Once upon a time Mellanox Onyx bothered to do a GUI and I could see some people light up, finally an enterprise switch that would let them do some stuff from a GUI. Then nVidia bought them and Cumulus and ditched their GUI.
There's this kind of weird "turn in your geek card" culture about rejecting GUIs, but there's a good amount of the market that want at least the option, even if they frankly are a bit ashamed to admit it. You definitely have to move beyond GUI if you want your tasks to scale, but not every engagement witih the technology needs to scale.
I posted a meme a while back and out of the woodwork comes some guy ranting about how
apt install sshfsis confusing. Like, the meme wasn't even about CLI vs GUI lol. Nobody was claiming superiority, but there they go ranting anyway.To me apt is confusing but that's because I've become so used to pacman. The only package manager that comes close to pacman for me is xbps.
Yeah apt tends to shit itself very often. I don't like how it's actually two different programs (dpkg and apt) glued together with perl and python. It all feels too fragile. A friend once tried updating a package, and it failed because... he was issuing the apt command from with a python virtual environment. Can't say for pacman because I've never used arch, but xbps is just one set of self-contained binaries, which feels much more robust. Alpine's APK fits that bill as well, lovely little package manager. Tho I guess apt predates both of those, so it's not a fair comparison. Someone had to make those mistakes for the first time.
I also really dislike the Debian/Ubuntu culture of fucking around with the sources file to add other people's repositories on top of the distro-default ones (ubuntu calls this PPA). It's a good idea in theory, but in practice those third party repos always fuck up in some way and brick your package manager. Just search for "apt Failed to fetch" in your favourite internet search engine, and you will see hundreds of people confused about it. You can do it with almost any package manager, but for some reason it's mainly the debian/ubuntu people who like shooting themselves in the foot like this.
I think you linked the wrong post
I have a coworker that likes to pick fun at my usage of CLI tools. He said it's confusing "why would I use a terminal when the GUI was made after?". They vehemently hate anytime they have to work with CLI.
I watched them use an FTP program to download and change one value in a .conf file. Like they downloaded the file, opened it in notepad++, changed one thing, saved it, reuploaded / overretten the original. I tried to show them how to just use nano and got told their way was "better since you could ensure the file was replaced". Its okay, I've secretly caught them using it a couple times lol
Fortunately, Linux terminals are gorgeous and easy to use. I never wanted to use Windows' com because it was so ugly and user-hostile. I know Powershell is a thing now, but it still looks ugly to me.
Yes, that's a real thing. They use it as an excuse to dog on linux distros & say "Muh linux not great yet"
Maybe I misinterpreted the meme, I thought the yelling guy is also a Linux user.
Speaking from experience.... Yes. Absolutely yes.
Yes https://lemm.ee/post/59138795/19097469
Setting the colorscheme to green on black increases hacker rating by 20%
I would recommend Cool retro term for that, but you need to run it on a CRT to make it full.
courier gets you another 15%I'm using a monospace font, am I a hacker yet?
Change font into hack gives another 20%
I use Linux and I prefer GUIs. I'm the kind of person that would rather open a filemanager as superuser and drag and drop system files than type commands and addresses. I hope you hax0rs won't forget that we mere mortals exist too and you'll make GUIs for us 🙏🙏🙏
Tbf, the file explorer is actually one really good argument for GUIs over terminals. Same with editing text. Its either simple enough to use Nano or I need a proper text editor. I don't mess around with vim or anything like that that.
Its all tools. Some things are easier in a file manager, some things are easier in a GUI.
You've angered the Emacs gods 😨
Good. They need to be humbled haha
I think it depends, if I have a simple file structure and know where stuff is, it's pretty efficient to do operations in the terminal.
If I have a billion files to go through a file manager might be easier.
Nano, the best text editor
Yeah I prefer fancy text editor too. And my biggest heartbreak was learning that I can't just
sudo kate(there's a way to use Kate to edit with higher privileges but I never remember how, edit: apparently it's opensuse specific problem).Born to Kate, forced to nano
The problem is running GUI code as root as it's never been vetted for that. What you want, effectively, is to have
EDITORvariable of your session set tokateand open system files usingsudoedit. I'm a terminal guy myself, so this exact thing is enough for me. Having said that - I'm sure someone will chime in with a plugin/addon/extension/etc that adds this to the right click context for what I assume is KDE. Or you can try looking for that om your favourite search engine.You can edit system files with a GUI text editor by opening the containing folder as root in a GUI file manager, then opening the file you want to edit from there.
I use both, depends a bit on the task at hand. Generally simple tasks GUI and complex ones CLI. Especially if I want anything automated.
I tried to learn superfile thinking it could make terminal more exciting but nah.
Gimme that comfy file explorer gui.
Totally agree.
It depends. But yeah I’d rather use something like Handbrake than raw dog FFmpeg.
FWIW I do use the file browser too when I'm looking for a file with a useful preview, e.g. images.
When I do have to handle a large amount of files though (e.g. more than a dozen) and so something "to them", rather than just move them around, then the CLI becomes very powerful.
It's not because one uses the CLI that one never used a file browser.
Yeah, when I need to inspect lots of images I just open the folder in gwenview.
For peeking at a single picture or two through you can hold down control and click/hover on the filename when using Konsole. Love that feature. You can even listen to
.wavfiles this way.Very nice, I don't seem to have that option available but I can right-click on a filename to open the file manager in the current directory. Good to know!
I once did
rm \*accidentally lol. I now have a program that just moves files to trash aliased as "rm" just in case. I just don't feel confident moving files in CLIYeah it happened to all of us. The console is powerful and it means when you mess up, it will have BIG consequences. One learns to test first before globbing https://en.wikipedia.org/wiki/Glob_(programming) too much!
I would say "why not, to each their own" if not the thought about what else the filemanager is going to do with root access (like downloading data from web for file preview). But the general sentiment still stands, it is absurd to think that computer must be used only in one way by all people
meanwhile Windows users: let me drop into this random strangers discord who claims he will make my PC faster by dropping this .bat file that will run thousands of commands to "debloat" my install. also let me edit the registry and add random values to keys that I don't know what they're used for. this process is basically irreversible because I will inevitably forget which keys I've edited over time, wow windows is so simple and easy and intuitive 🤡
That's not a windows problem, it's a user problem. The same scenario could play out with a shell script that modifies a hundred dotfiles. Lots of solutions on Linux help forums are "Paste this into your terminal. Don't forget the sudo!"
Amen. I remember having to frequently reinstall the system to keep it performant. Thanks windows rot.
I used to reinstall Windows once a year. Now with Debian stable I just fix the problem if there is any and that's it.
I actually used to make backups (Export) of each edited key and keep them in folders with context, so I could later look them up or even set them again in case of a reinstall.
Now, they are lying, forgotten, on some NTFS drive that I haven't opened in years.
I wonder if registry keys can be set with an ansible script? Granted, that is still not as nice as a declarative config (yay NixOS), but better than having to write down and do by hand again on a new install
yeah,
reg set <key> <value>i think it isI mean, the reverse is also true, people have memorized which buttons, menus, etc they need to click/drag with do be productive. Sometimes i m OK with all the clicking, but most times I just want to do the thing now.
Type 3 words or click through 9 context menus. 😅
Yeah exactly ANY interface made by humans speaks a design language, and it's only "intuitive" insofar as the user understands that language. There's nothing inherently "intuitive" about GUI, it's a language that you've learned through a long process of trial and error. This is painfully obvious to anyone who's ever had to help Grandma reset her gmail password out over the phone. Same for CLI. At first you're copy-pasting commands from tutorials and struggling with man pages, but after a while you get used to the conventions. You learn that
-hhelps you out and--verbosetells you more and so forth. You could make the case that the GUI design language is more intuitive because it's based of physical objects like buttons and sliders that many people are familiar with, but honestly ever since we abandoned skeumorphic design that argument rings a little hollow.That's a very nuanced analysis. I've explained it this way especially to people who describe themselves as "bad at computers". Hey, give yourself a break, you've learned a lot about how to cope with windows. But this investment leads to a conservatism--- they dont want to learn coping skills o a new system. The devil you know.
I'd just add that GUI is more discoverable. When faced with a terminal, what to do? Whereas with a GUI you have a menubar, some icons etc. The GUI gives a lot more hints.
In the terminal (which I love) it is more powerful once you know how to crack the lid.
Exactly. You need documentation to figure out how to do anything in a CLI, and if you forget it's back to the documentation, but a GUI exposes all its commands immediately, allowing the user to find things on their own.
Except the iOS UI, which is heavily reliant on gestures with varying numbers of fingers, pressure dependent touch commands that are difficult to pull off consistently (seriously, how the hell do you deliberately do the multi-select drag thing?), and hidden menus that are exposed by dragging in from specific portions of the screen at specific angles with no hint that they're there.
This is an incredibly sane dissection, wasn't expecting it under a meme
Are the "Windows evangelists" in the room with us right now? Every Windows admin I know hates Microsoft with a burning rage. Literally the only people I've ever seen promote Windows are being paid to do it.
Counterintuitively, that's one reason I like dealing with Windows: the community knows what it is and doesn't pretend otherwise, like some other more "zealous" fan bases.
Yeah, that's the demographic I had in mind. Lemmy is full of paid shills lol.
it's Linux, who's going to pay them Canonical? IBM? Wait, nvm, I could see IBM having paid shills
Do they have any money?
CLI is effective because every command serves a specific purpose. UIs are the opposite, you have to imagine all possible intentions the user could have at any given point and then indicate possible actions, intuitively block impossible actions, and recover from pretty much any error.
CLI is effective also because of its history (i.e. one can go back, repeat a command as-is or edit it then repeat) but also the composability of its components. If one made a useful command before, it can be combined with another useful command.
Rinse & repeat and it makes for a very powerful tool.
The Unix principle of piping between two or even multiple programs, together with “all data should be in the simplest common format possible” (that is, largely unformatted strings), was a really clever invention to be popularized. As proven by the fact it is still so useful decades later on a myriad of computers unimaginably more powerful than what they had back then.
It’s not perfect by any means (alternative title: why something like Nushell exists), but it’s pretty good all things considered I dare say.
Absolutely. I learned about that decades ago as a teenager and never would I have thought it would still be useful today... yet, in 2025 if you want to do anything powerful, in the cloud, on your phone, even in your XR headset, it is STILL relevant!
PS: I project I'm contributing to on the topic https://nlnet.nl/project/xrsh/ ideas welcomed!
Lol, meme's backwards
CLI evangelists try to shit on GUI constantly, as though it makes them better at computers. It doesn't, kids
Can see it in this very thread
Was gonna say, never had anyone tell me to use a GUI over CLI
but definitely had the other way around
Do you ever use the CLI, though?
Yes
Lol no. Many posts in this community recently making fun of gimp. Do you see anyone in the comments going WELL ACTUALLY IF YOU JUST USE IMAGEMAGICK? No. Plenty of things to complain about in the big DE's like KDE and Gnome. But do you see people saying "just use tty"? Also no. Meanwhile you mention terminal once and you get at least two randos going on about how ThIs Is WhY LiNuX IsNt ReAdY. The meme is not backwards, your perception of reality is.
You really don't see why people would suggest using other GUI alternatives for image manipulation? image manipulation?
"People don't recommend entirely dropping GUI over one or two GUI issues!" Shocker, wow. They do condescendingly say 'just go into terminal and do x,y,z" though, like I said
It isn't condescending. It's the easiest and simplest way to do a thing. Additionally, there's a wide variety in GUI options on Linux, so if I'm helping somebody out, I'm going to give the terminal commands. Not because I'm a terminal elitist or some nonsense, but because I know it will work regardless of whatever their GUI setup is. I might know where to go in KDE, but I don't know where it would be in GNOME or any other desktop environment I'm unfamiliar with. The terminal command is going to be the same for everybody, though.
But that's what you're doing too. Making the meme the correct way round.
Nope, I encourage people to learn CLI but to also use GUI if it does what they need it to. The insult was only to people who think they're superior for using CLI cuz that's a silly stance
Just laughing at the meme being backwards from my own personal experience
It's is not either or. Also good cli require an eye for design just like gui. Lots of cli suck because there is no eye.
Yeah I totally agree. But still, I feel like there are much more terrible GUI programs out there than terrible CLI programs. The only truly awful CLIs I can think of is that tool for managing MegaRAID controllers that has the weird abbreviations everywhere, and shell interfaces to GUI-first bloatware like Dconf that were probably added as an afterthought. I think with CLI there's only so many things that the developer can fuck up. It's all just text. Meanwhile with GUI there are endless opportunities for truly horrid design. Think of Teams. Think of the github web interface. Think of the r*ddit redesign. Or go watch that Tantacrul video on Sibelius. CLI could never have such a breadth of terribleness.
Arch's package manager is pretty terrible.
Here's two commands. See if you can guess what they might do:
::: spoiler Solution The first command installs a package.
The second command updates all packages. :::
I believe, there's some sort of logic to the letters, but man, most users seriously do not care. They just want to install, update and remove packages 99% of the time, so they shouldn't need to learn that intricate logic for three commands.
I guess, you could use
pkconto do that instead, but that doesn't really help new users...Arch presumes that the user has some familiarity with CLI tools and can read documentation. You couldn't even install it without using the terminal until archinstall became a thing. If it's an issue, Arch is the wrong OS for you.
Besides:
pacman -S- synchronises packages between the remote and local repo.pacman -Q- queries the local repo.pacman -R- removes packages.pacman -F- queries the files of a package.Et cetera.
I figured, I'd ruffle some feathers by saying that. 😅
But yeah, I stand by my point. Just because your target users are capable of dealing with complexity, doesn't mean you should be making use of that rather than simplifying usability, since your users have plenty other things they could be learning instead.
I will caveat that I can see it becoming worth it to learn an intricate logic for a power user, when things fall into place and make sense at a higher level as you learn more about it.
But in my experience, that's just not the case with package managers. You need a few specific commands to be obvious and then the special cases can be obscure flags.
Ui designers should not presume people are familar with the ui. That's not design.
Yeah built in user screening process. Screwed by endeavourOS though.
AFAIK, arch never pretended to cater to new linux/cli users, I've always read it as a recommandation for advanced (or at least comfortable with reading docs and using CLI) users.
My first time using arch required me following the arch wiki for install and when I finally got a working system (I'm as bad at following tutorials as I am at following cooking recipes) the
pacmancommands were not something I struggled with.But yeah coming from Debian where I had the gloriously intuitive
aptsyntax, I get your point.Advanced users would still benefit from good design.
I do agree, I'm just not surprised it wasn't done this way at the start and I'm not bothered enough by it to want a change.
I only learned what
pacman -Syumeant, after literal years of typing it in not knowing anything other than "this updates the packages", because I got curious and googled it.To me it was just an adeptus mechanicus incantation.
EDIT: And I still have no clue how 'y' translates to 'refresh the database'. Like. Sure. S to synchronise from the server to the computer. And u to mark for update all the updatable packages. But -- Why the fuck is 'y' the refresh?
The
ystands for "yoink the database"./s
I think they either just ran out of letters, or
ywas seen as reinforcing the action (as in "yes, download the database too"), withyybeing an even stronger action ("yes, download the database even if there's nothing to update").You think that's bad? For as much as I love seeing a well-configured Nix system, it's beginner-unfriendly learning curve is almost as bad as "compile everything yourself" distros.
As a beginner, do you have a question about Nix? RTFM. You did? Well, wrong Nix. You wanted to learn something about Nix the language, but those docs were about Nix the OS and Nix the package manager.
You just read a guide for using the nix command and wanted to install a program with nix-env? That's an outdated guide. You should be using flakes and
nix profile. You tried that, but it said the nix command is experimental so you didn't do it? No, you were supposed to edit /etc/nix/nix.conf to enable them first.Don't get me wrong here though, I like Nix. It just desperately needs an actual beginner-friendly beginner guide for flakes and
nix commandcommands that doesn't assume everyone is a software developer. 80% of the Nix documentation tutorials aren't even relevant to regular users, only package maintainers and NixOS users.i raise you the man command
Manpages are great though? They're not the best if you need examples, but as a reference for the behavior of flags? I love'em.
Install tldr if you haven't already
Eh, I'm fine with man pages. I looked at tldr before, but I've been using the command line for many things almost exclusively for like 10+ years now. I usually just need the reference details.
But that's why I love tldr!
It gives written examples of a handful of the most common use cases with a super brief explanation. It's perfect for quick reference.
But you do you, I don't own any tldr stock or anything.
thanks for the reminder! I'll try it out
The good thing about CLIs is that if they suck too much, you can easily create a wrapper around them.
Having started out in programming before the GUI era, typing commands just feels good to me. But tbh Linux commands really are ridiculously cryptic - and needlessly so. In the 1980s and 90s there was a great OS called VMS whose commands and options were all English words (I don't know if it was localized). It was amazingly intuitive. For example, to print 3 copies of a file in landscape orientation the command would be PRINT /COPIES=3 /ORIENTATION=LANDSCAPE. And you could abbreviate anything any way you wanted as long as it was still unambiguous. So PRI /COP=3 /OR=LAND would work, and if you really hated typing you could probably get away with PR /C=3 /O=L. And it wasn't even case-sensitive, I'm just using uppercase for illustration.
The point is, there's no reason to make everybody remember some programmer's individual decision about how to abbreviate something - "chmod o+rwx" could have been "setmode /other=read,write,execute" or something equally easy for newbies. The original developers of Unix and its descendants just thought the way they thought. Terseness was partly just computer culture of that era. Since computers were small with tight resources, filenames on many systems were limited to 8 characters with 3-char extension. This was still true even for DOS. Variables in older languages were often single characters or a letter + digit. As late as 1991 I remember having to debug an ancient accounting program whose variables were all like A1, A2, B5... with no comments. It was a freaking nightmare.
Anyway, I'm just saying the crypticness is largely cultural and unnecessary. If there is some kind of CLI "skin" that lets you interact with Linux at the command line using normal words, I'd love to know about it.
Whenever someone cries about the command line, I just post the link to Cookie clicker for the mousers out there
chad move tbh
Nothing wrong with CLI. It is fast and responsive.
Unless you want mainstream use. Because the majority of people can't even use a UI effectively. And CLI is much worse.
Yesterday I showed a local business owner how he could set up the signboards and menus in his shop using a raspberry pi. The guy is a windows guy. the second he saw the boot screen he balked. I told him they needed to be set up one time and the rest of the time he could manage them with a windows program (winscp). I don't expect to hear back.
They fear CLI.
Another local guy had a huge archive of forestry images. They were all folders that had been renamed for the location and time they were taken but underneath they were all the standard filenames you get from a digital camera. It was nearly twenty years of pictures and he was getting five figure quotes to rename them all to match the folder names. I told him I could build a script to do it so he brought me one of his backups and I promptly did it using CLI before I was going to build a script. The next day he calls to say he talked it over with one of his vendors and they decided to drop their price down to a two thousand dollars. He wasn't interesting in me doing it. I hung up and a few years later when he called me to come fix something someone had messed up I hung up again.
I have no doubt the people he was talking to did something similar probably using bash scripts. So now when I tell someone I can sort out their file naming or some other sorting task I don't let them see how I do it.
Where do I get the $2000 bash script gig?
I was gonna charge the guy 500 dollars to rename thirty thousand images to match the directory names. Since the guy had switched cameras several times it would have involved more than one simple script but I wasn't being paid for the script. I was being paid to do the job. Except my bash prompt scared the guy. The truth of it is he used me to leverage the company that specialized in data recovery into lowering their price down to a still absurd but much smaller amount.
Its not the first time I've seen it but when they do something like that to me they burn a bridge.
A related scam is charging absurd amount to convert and catalog microfiche to images or PDF's. Granted a machine to do this quickly and efficiently is in the 10 to 20 grand range. The process is boring and repetitious and in no way worth the amount some companies want to charge.
Okay yeah, I see how it could be a decent bit of work, but no where near 10k lol. I know date-time formats can be a bitch.
CLI is being able to speak a language to tell your computer what to do; GUI is only being able to point and grunt.
It's all a matter of preference anyway (assuming you have both options anyway). CLI is less intuitive and takes longer to learn, but can be wicked fast if you know what you're doing. GUI is more intuitive and faster to pick up, but digging through the interface is usually slower than what a power user can accomplish in the CLI.
It depends on what your use case is and how you prefer your work flow. The only dumb move is judging how other people like their setup.
CLI this, GUI that. Where are my TUI degens?
You may not like it but that's how peak productivity looks like.
/s
As a Steam Deck user, using a CLI with a gamepad is definitely doable but it is an unpleasant experience.
Terminal is fun. I like being hackerman
I do most of my work at the command line, my co-workers do think I'm nuts for doing it, but one of our recent projects required us all to log into a client's systems, and a significant portion of the tasks must be done via bash prompt. Suddenly, I'm no longer the team weirdo, I'm a subject matter expert.
Perception: "the CLI is scary and hard to use" Reality: "computer, install gimp" "yessir, that'll be 141MB, is that okay?"
I used to be on the yelling guys side and boy was I wrong. I now write scripts to do anything repetitive, all the time and it's great. I have a whole library of them I use and add to and improve all the time.
Yeah, I was wrong.
It always makes me kind of sad when people disparage CLI use. It's like people thinking they don't need to actually learn anything because they can always look up what they need to know on their phone. It seems a shame to miss so much of the richness of the experience. I found myself arguing, promoting, whatever, terminal use a few times and then realized how pointless it is. It's like arguing with someone about what food they like. You can just hope they develop a more sophisticated palate at some point, or at least become more open-minded, but you can't force it on them.
This was a long way to get around to saying I like that you had that change of frame and are embracing the fun of personalizing your interactions with your computer.
Thanks! Yeah, for me it's that I have a bad memory so memorizing argument orders and things like that felt painful. Scripting is the solution! And you learn while you do it. It's actually kind of fun to make a solid script that works between various OSes as nerdy as that is. I've taken a lot of typing and memorization and turned it into writing (ideally solid) software that allows me to type 1-3 words instead of 20 words. It's satisfying. And you're right, it's something people won't get until they come to it on their own terms.
At work I routinely do laborious tasks the rest of my team procrastinates due to how repetitive and annoying it is. And often it's with a command or two. It feels quite powerful. And it's so flexible how you can combine languages and tools! It's also just interesting to be reminded how all the basic problems were solved by the 1970s when a lot of these tools were created.
Did a process last week that took me 13 steps in the command line that took about an hour. If I'd have done it manually it would have taken days. After I worked out how to do it I trimed it down to 6 steps and sent it to my coworker that also needs that information. His eyes glazed over on step two of explaining it to him and he's just going to keep doing it his way....
Memorize? Nah.
I search through my endless command history with fzf and look up commands I don’t remember with cheat.sh
Imo I don't memorize commands. Everything on my zsh is so aliased that I don't think I can teach someone else how to use any other cli.
It just turned into me telling the machine what I want it to do and let it figure out how to rather than me do every little button click step.
An alias is tantamount to a button click. That’s why this whole thing is so stupid.
It's actually even more efficient because one can search through the list of all available buttons.
So you're right... To an extent... I usually say I'm making a new button when I'm figuring out an alias.
I guess a better way to express my point is that I'm not geared for interpreting graphics to tell what a button is supposed to do, nor am I cool with needing to press the same buttons in order multiple times.
On the CLI, all the buttons are named with (impo) meaningful names, and I can combine them into new just-as-accessable buttons whenever I want for free! It might align more with my working frustrations, I hate dragging my eyes over the same text/iconography every time I wanna do something, I want it to just 'happen'. I need a user interface that can react to me faster than I can think and to achieve that I just limit my UI to exactly what I want and I keep it easy for me to expand as I need it.
reverse-i-search (typically ctrl-r) or ~/.bashrc (or whatever your alternative shell configuration file equivalent is) means one doesn't have to memorize much indeed, especially while commenting properly.
On CLI I figure out the command I need once.
Put it in a script.
Cron it if I want it to be daemonized.
Never think about it ever again.
Anti-CLI folks just have a bad workflow.
They see the script as the end, when in reality it's a foundation. I rarely look at my foundation. I build on it.
With this workflow I have dozens, hundreds, or thousand of automatic actions that "just work". Idk, works for me.
That said, if you prefer to click yourself to RSI to accomplish the same task, who am I to judge. I just watch and nod until I'm asked for a suggestion.
GUI is a generic swiss army knife. It's easy to introduce to someone, and it has a whole array of tools ready for use. However, each of those tools is only half-decent at its job at best, and all of the tools are unwieldy. The manual is included, but it mostly tells you how to do things that are pretty obvious.
CLI is a toolbox full of quality tools and gadgets. Most people who open the box for the first time don't even know which tools they're looking for. In addition, each tool has a set of instructions that must be followed to a T. Those who know how to use the tools can get things done super quickly, but those who don't know will inevitably cause some problems. Oh, but the high-detail manuals for all the tools are in the side compartment of the toolbox too.
I mean, legitimately, unless you're doing power user things, you don't really need the terminal. And if you are doing power user things, then find me a Windows power user that has never used the command prompt or powershell.
This is a fairly recent development, though. Last time I tried Linux I was using the terminal several times a week just browsing the internet and playing games. I've been pleasantly surprised by how infrequently I have to use it now, but I was surprised given my previous experience.
fair enough, I only switched to Linux last February. I do remember it being an absolute pain in the ass in the mid 2010s, I've tried linux a few times over the years. But insofar as now goes, on Mint, the terminal is much the same as the command prompt or PowerShell in windows -- nice for power user functionality, but generally unnecessary for the average user.
I've never met any windows evangelists to be honest. Lots of Apple evangelists though who will spend forever talking about windows. Every developer I've met who uses Windows always had a tongue in cheek sort of "well it kind of sucks in some ways but it's what I'm used to, one day maybe I'll get off my ass and change OS".
Reminds me of the "I use Arch Linux btw" meme which doesn't really happen as much anymore other than as a joke. Also, I use Arch Linux btw
Didn't even know there were such a thing as evangelists for Windows
Software would be more useful if every end-user program has both GUI and minimal CLI modules, as in Dolphin vs cp, mv etc.
Why?
GUI: Year of the Linux smartphone
CLI: Automation, scripting.
TUI is a subset of GUI that uses text in a terminal to render UI elements. It does not make automation any easier. What you want is called CLI.
For a program at work the scripting language is Delphi and the Documentation is not available. If you want to know something call the support. CLI is not an option.
It'd be really useful to have a CI run, but that is never going to happen.
Try xdotool
Even if it was less productive, I would insist on it, because it's just more fun.
CLI is fun
Noooo, you cannot have a consistent UI/UX experience across platforms with decades old commands and tools, my imaginary grandma might get confused, also you need three IT degrees to type "man command" into a term window.
Tbf, most man files are not easy to understand. Between man, tldr, ArchWiki, and an occasional O'Reilly book I can usually get things done, but documentation on Linux still has a lot of room for improvement.
Other than stuff like
ffmpeg- which has so many features that a man page just can't cut it; andsed- which doesn't have a simple hyperlink saying "you go here to learn sed regexp", most man pages do what I need them to do.You just need to learn the basics of how the man page is organised and what the brackets in the SYNOPSIS section mean and that makes using them much easier.
We also have
man manfor that purpose.I don't think you get what I mean.
I don't mean that man itself isn't functional, I mean the way most man pages are written isn't clear enough to communicate how to use the programs they refer to.
I'd include the man page for man in that, and I'd encourage anyone else to look at it from the eyes of someone who can follow written instructions and ask "How does this manual/help file compare to others I have read?".
So, for example, in the examples, it says:
man -a intro Display, in succession, all of the available intro manual pages contained within the manual. It is possible to quit between successive displays or skip any of them.
Those two lines are the only place within man's man page (at least the one you get from man man) that use the string "intro". What is an intro in this context? Guess you got to run it to find out.
What is -a for? About 200+ lines down there is a two sentence explanation.
The first sentence tells you how man normally behaves, saying: "By default, man will exit after displaying the most suitable manual page it finds." This sentence is unclear ("When does man exit after displaying the most suitable manual page it finds? When I run man ls I see the manual for ls on my screen until I press 'q' to 'quit' out of it.") and not immediately connected to the purpose of the flag/option.
The second sentence says: "Using this option forces man to display all the manual pages with names that match the search criteria." This is a lot clearer, and my only complaint about it can be that it's not the first sentence in the explanation.
Yeah, one big problem of
manI found was the severe lack of explanation of what the command is mainly intended to do. It's as if the user is expected to run themanafter knowing what purpose a specific program exists for, which, I guess is what it is intended for. I tend to rely on the package manager's information and other similar sources for that information andmanmainly for determining the exact usage.I don't at all expect
manto be useful for someone who can just follow written instructions.The reason being than
manis just supposed to tell the user, what typy stuff needs to be done for specific functionality. And most programs tend to be doing some small thingy and not fulfilling the user's whole requirement in one go.Meaning, to be happy with just
man, one needs to be able to create a solution for themselves by properly fitting little parts and that is already more than half way to being able to do programming.Your
man -a introexample and what followed, made me more confused than before of what you were trying to say, so I am just trying to go with the feel of it for now....
Maybe knowing that you can use
/and then whatever string of text to find something in the man page (because it useslessto paginate the output) would be useful for some of what you said. So you can do/-aand press Enter to start searching for "-a". And the reason for it being so far is because it is in the "OPTIONS" section.I now feel like someone who reads a lot of legal documents would be fine with
manpages. Was this format made by someone in that field?Yeah I'm okay with the basic navigation options. The primary point is that man pages do look like they had written by someone who does not do technical writing. Whether that's someone coming from a law background, programming, or whatever.
It's not written for an end user who wants to know how to use the tools they have available. It will tell you what a command "does", sometimes, but it doesn't explain itself. It presumes a certain amount of pre-existing knowledge, or familiarity with the syntax of man writers.
For another example, the man for ls repeatedly lists options referencing "implied" entries without ever explaining what "implied" means in this context. It presupposes that the reader knows what that term means. I know what an implication is in an English class, and the antonym for "implied" is "explicit", but in a man page? No clue. Not like there's reference to or examples of "explicit" entries to contrast with "implied" entries. You just have to know what it means in context, or figure it out some other way.
This is why I hate linux, it appeals to the male fantasy !!!
I guess you never heard of the finger command.
It's more about most people don't have time to learn all the commands to be a sufficient enough user. I don't want to dig through an endless stream of AI slop articles hallucinating me the commands I need for something, nor have the time and money to retreat from society "to learn it properly". Also often the things I do is more intuitive for a button or shortcut press (I have made a card for my keyboard for F-keys) rather than typing in every time the commands.
Going CLI from GUI feels like ripping out the interiors and the dashboard from your car to make it slightly lighter the same way race cars are done, but instead you're doing it to the family car. Sure, a lot of GUI is now a web app, because some techbro in the 2010's wanted to
collect our data for advertisement opportunities and creating the Torment Nexusfree us from software installations, so we could just type www . wordprocessor . com into the URL bar of our browser instead of running the spooky and scary wordprocessor.exe after running the even spookier and scarier wordprocessor_install_1_6_5.exe. This in turn lead to a lot of student being over-reliant on HTML-like formatting for UI, and GTK and Qt not being taught in turn, which also could serve as lightweight and mostly cross-platform GUI. I even created my own GUI subsystem in my game engine for its editors.A lot of problems caused by those on the top are being blamed on "normie users", because we need to be "ideologically neutral", except when it comes to "supressed" ideologies...
you don't have to memorize the commands, just use
tldr commandandaproposto your advantage.Everything will seem difficult when you're not used to it and are changing habit, it's not just a GUI to CLI thing.
"imaginary grandma" is a crazy form of grandparent-denying gaslighting and I will absolutely start using it
That varies from command to command though.
manis nice if you know how to use the command but have forgotten which option does what you want. But if you have no idea how to use a program, reading e.g.man awkwill not be very helpfulPeople can do whatever they like, and heck I find CLI intimidating sometimes, but I'm always learning something new a little bit at a time.
I'm tired of seeing it in every field of interest that has any kind of payoff, whether art or FOSS.
"I'm [(almost always) a guy] who (maybe has kids and) has a job. I stopped learning anything after I got my job-paper / degree / highschool diploma. I shouldn't have to learn anything anymore. I am happy to shell out disposable sad-salary-man money (and maybe my soul idk) to any mega-corp that offers me a "create desired outcome button" without me having to think too much. It's [current year]! I shouldn't have to think anymore! Therefore Linux is super behind and only for nerds and I desire its benefits so much that I leave this complaint anywhere these folks gather so they know what I deserve."
Agh. I gotta go before this rant gets too long lol
Think this is more of a accessibility thing. No one denies the CLI is really efficient to use if you're a professional, it shouldn't be the norm that you have to be proficient with it to use your computer to the fullest though. Nor to receive help if you don't feel comfortable using it.
It would be nice if everyone could enjoy free and trustworthy computing, including people who either can't or won't learn many dozens text commands and paradigms.
The weirdest thing for me is when people complain about terminal when there is a meme how much easier it is to do something on Linux compared to windows or MacOS.
Terminal is the easiest way to highlight that for a meme.
Ironically, in Linux, if I ever see a Terminal, it's because I opened it. If I'm doing stuff in GUI, terminals never pop up.
In Windows, doing stuff in GUI a blank terminal opens up and goes away during GUI interaction, or while executing background tasks occasionally.
If only windows and macos included a terminal...
I hate powershell so much
Why does it have to be so verbose
It is really weird, yeah. Half the commands are actual sentences. Tbf most of the common ones have shorter aliases (test-netconnection -> tnc, clear-itemproperty -> clp, get-content -> cat, etc).
The killer feature of PowerShell imo is the -WhatIf flag. I wish all shells had something like that, it's fantastic for testing scripts without risk of damaging anything.
I love its Verb-Noun system and verbose parameter names. It's easy to understand what command or parameter does just by the name. Get-MailboxPermission probably retrieves mailbox permissions, Stop-Process stops process, Remove-ADUser deletes AD user etc. If there would be no auto complete I might find it irritating, but once you get a hang of it, it's a breeze.
Ofc they do. But most users don't use it at all. Even most windows admins (based on my experience) don't know PowerShell which doesn't mean they know how to use CMD.
They must be some pretty shitty admins then. PowerShell is essential for managing more than a handful of windows boxes. If you're running server core (which you should be in most cases) PowerShell and rsat are the only way to manage your boxes
Another example is Exchange where all Admin Center (GUI) operations are calling PS commands underneath. Not everything is in Admin Center so you must use PS eventually. Not to mention that you cannot perform batch tasks without scripting.
Another example is boot or login scripts that run on all the servers/desktops to make environment changes you can't handle with group policy. This person is talking nonsense, they don't know any windows admins.
They chose to be windows admins.
Sounds to me like they chose to be helpdesk. It's nearly impossible to be a windows admin without using PowerShell, unless you're super old school and use vbs for everything.
CLIs are almost always magnitudes more expressive than their feeble, derivative GUIs.
People just don’t want to confess that they are feared from that little black box that apparently kills your whole machine, if you just type a wrong letter having a terminal open. 🤗
As always,
not enough education in society.
If more people would be brave to test it, more people would see that they can interact like this, better. And some, like me, appreciate the hard work GUI designers do, to make stuff more intuitive in the cost of efficiency
I love GUI with integrated terminal, tho, like dolphin
"i shouldn't have to memorise commands just to do basic tasks"
me:
Tbh the terminal is super convenient. No random UI placement. Most things follow one of several conventions so less to get used to. It’s easy to output the results of one command into another making automation obvious, no possibility for ads. It’s pretty sweet
I am an elder millennial who never forgot the MS-DOS commands of my childhood. So I would kick that guys arse!
when i was a kid i used to make fake autoexec.bat scripts that did nothing just to pretend :3
I never touched that file. Actually wait I did. I put in a quick script to run the Gmouse.exe. Basically to run the mouse driver which you had to do manually every time! But with it there you could automate it and not worry about it.
Ahh, gmouse...pkunzip (which I called Punk unzip). Fun times.
I worked customer support for a WordPress hosting company for a while, and about 70% of all of their troubleshooting was done in terminal. I never used terminal until that job. To this day I do most of my management the same way
I feel like a lot more people be comfortable using the terminal if the text displayed when it was first opened gave you a list of commands to try. There is a very steep initial learning curve immediately which discourages experimentation, and I think that with a little bit of effort you could get a lot of people over that hump and then they could enjoy terminal Bliss.
My guy, it's because you're the vegans of tech.
Nobody cares. It doesn't need to be your personality.
Isn't this what ctrl+r is for? 😅
Ever since switching to fish, I've been using the terminal more and more. It's the most intuitive interface I can think of. Now to fix my neovim configuration...
I love fish, but I can see why POSIX purists would hate it. I haven't run into any problems, but if I need to use bash, I have it installed, too. The biggest problem is that it doesn't have wide adoption, so everybody assumes you're using bash, and a lot of the bash commands don't work in fish. So you have to be a bit of a power user if you want to do anything fancy.
Worst case scenario is that you run just those commands in sh. I don't see a problem really. I also like fish's syntax, so it's easy to trade for POSIX compatibility. If you really really must, you could also use an LLM to convert your bash script to fish.
Frame #2 looks like top- everyone here should try btop!
sudo aptitude reinstall '~i'Just the other day, I was trying to run a CLI program, one I won't name.
I'm trying out a new immutable distro, and couldn't install it, so I said hey these new flatpaks are supposed to be all a guy could ever need.
So I downloaded an app that uses this unnamed CLI program as its core. It was a GUI app. And while it worked just fine, I also had very little control over what exactly was gonna happen and how it would happen. I wanted to do some specific things I knew the core program could do, but there was no way to do it.
Eventually I dug deeper and realized I'm an idiot and the CLI program can run without installing it or any dependencies, so it was fine to use natively. I was able to accomplish my task quickly and efficiently after that, happy as a clam.
CLI and GUI both have their place. I prefer GUI most the time, honestly. But having some CLI chops can be extremely useful at times.
There are Windows evangelists?? 🤦🏽♀️
A Windows or LInux evangelist who's also vegan - now that's a formidable combination.
Due to work environment and me not switching yet (I won't go to W11,but switching requires a bunch of time investment I haven't gotten around to yet) I'm mostly working in Windows, but even them I use CLI a ton. Mostly powershell, but there are a lot of cmd commands useful in troubleshooting, and robocopy and other tools are more reliable than their gui counterparts.
It’s wild that Linux stans are such masochists that they believe they can convert people to loving abuse, instead of just making the interface better to attract users.
I've found that one of the best things to do when making a library for something that is going to have a web interface is to first have it work in the terminal. You can much more quickly play around with the design and fix issues there instead of having to work with a more complex web interface.
You just create a simple menu system, like
input("1: Feature A\n2: Feature B\n>")and just start trying out all of the different scenarios and workflows.Windows kept making things easier so people could let their brains rot away.
I use both Windows and Linux. I also mess around with github programs here and there and they almost all require use of a command line to install or manipulate. And because a command line intrinsically is going to inform you way too little or way too much about what you are doing I end up having way more technical issues because I don't realize I'm missing a dependency or I glazed over an error that popped up in a sea of text during installation.
Linux's leaning on CLI is good for extremes: ultra-techy programmers and perfectionists and the exact opposite: people who just want internet and a word processor (who will install like basically nothing anyway so CLI wont bother them and probably keep them from breaking something in a GUI settings page).
People in the middle who are semi-techy end up annoyed because if they want to do some middle of the road changes to their system they have to use a command line or even code something themselves. Instead of just using a search engine to find the 1 out of a billion different little windows based applications that already exist to do the small yet very specific thing to a "good enough" level. Which just requires a minute or two of internet research, clicking download, waiting a bit, then installing a thing. Some of those tasks you can do while doing something else.
Or yes, maybe they end up needing to edit an ini file or a registry file (very rarely in the latter case).
Basically I'm talking about tech users that always use the path of least resistance rather than the most advanced or custom. People who want to do 20% of the work to get 80% of the results.
My favorite example of the use of both are PDFs:
pdfuniteto merge PDFs.meanwhile windows users complacent in learning complex muscle memory in order to navigate only the most autistic UI design ever created (it was windows)
You're not Neo.
Use a UI like a grown up
Fucking terminal, in many of them ctrl+c and ctrl+v don't even work. and don't get me started on how they implement ctrl+z. I'm waiting for a terminal to have the ms-office ribbon menu bar before I'll use it.
For anyone having the copy-paste skill issue, try
Ctrl+Shift+CandCtrl+Shift+V.Wait till you see what "yank" means in vi and emacs.
I am almost afraid to say it, but I'm confident someone out there has created such a cursed terminal. The modern word ribbon does not match the windows XP theme, though :(
Haha that would be awesome/softwaregoresome. I'd pay money (well not much money) to see it just to troll MS-GUI fanatics with it.
All I can find is some mention of libreoffice doing it. and yes I did try ddging with 'safe search' off.
https://forums.linuxmint.com/viewtopic.php?t=407404
Oh shit - I turned it on in my LO writer and I can't find the button to turn it back . . .
And the 4 linux users in the world kept jacking themselves off and then whining about how windows is more popular for having a UI
There is nothing productive about searching online for some stupid command that is outdated for 2 years, breaks some shit and then you need another 2 hours to unfuck it because it's not obvious from the long noodle of a command how to revert it. For something that could just be 3 clicks through control panel that every idiot could navigate without having to use online search engine.
You're the type of guy we're making fun of btw
It's not the own you think it is...
Most cli tools have a -h or a tldr entry.
Or a man page
Bold of you to assume that someone struggling with basic cli tools would read a man page.
Why are you entering commands that you read about online without knowing what they do? There's a running joke that you need to enter
rm -fr /to remove the French language from your system; it actually wipes the entire disk mounted to/.When you know what the commands do, using the terminal is always going to be faster (i.e., more productive) and use fewer system resources than using a GUI. That's just a fact, sorry if it annoys you when people point it out. Whenever I need to move a lot of stuff around, I will always use
mvinstead of Thunar (my file manager) even though I prefer a GUI for most tasks.I agree. For regular user facing tasks, the terminal should be a last resort. I say this as someone who will happily defer to the terminal if I need more advanced control. But when basic configuration is subject to just CLI, it's not as accessible as it could or should be
There are two different "efficiency" and "simplicity" perspectives clashing here. If you already are proficient with the CLI it's arguably more efficient and/or simple than GUI solutions. If you are not then there's literally a steep learning cliff in front of you, something many in the first group apparently either forget or otherwise want to ignore. It just sucks, some people in the community do have a lot of knowledge but a complete lack of understanding for people outside of their tech bubble.
So, I wonder what happens if we add an option for every single one of those tasks in the UI? O right!
msvc.exe is calling!
Go to a free online AI (or run one locally) and ask it your Linux questions.
That way you won't have to dig around old forums for answers.
this method saved me years of useless search for real