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.
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
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 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.
I have literally never seen whatever this post is referring to
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.
There are Windows evangelists?? 🤦🏽♀️
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.
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.
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…
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.
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
EDITOR
variable of your session set tokate
and 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.
It depends. But yeah I’d rather use something like Handbrake than raw dog FFmpeg.
I tried to learn superfile thinking it could make terminal more exciting but nah.
Gimme that comfy file explorer gui.
Totally agree.
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 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
Didn’t even know there were such a thing as evangelists for Windows
" 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…
ExtraLongJohn
is damn funny)Get-command -noun <string[]>
Handy AF
Versus:
man $commamd
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.
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.
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-WebRequest
and thatcurl.exe
is what you actually want.
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’stype
or if you hate yourself -Get-Content
which is aliased ascat
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
orpython
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
vscp
,del
vsrm
, 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
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
h
aliased tohistory | grep
and 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
“Alias? What is that?”