My brother is 12 and just like other people of his age he can’t use a computer properly because he is only familiar with mobile devices and dumbed-down computers
I recently dual-booted Fedora KDE and Windows 10 on his laptop. Showed him Discovery and told him, “This is the app store. Everything you’ll ever need is here, and if you can’t find something just tell me and I’ll add it there”. I also set up bottles telling him “Your non-steam games are here”. He installed Steam and other apps himself
I guess he is a better Linux user than Linus Sebastian since he installed Steam without breaking his OS…
The tech support questions and stuff like “Can you install this for me?” or “Is this a virus?” dropped to zero. He only asks me things like “What was the name of PowerPoint for Linux” once in a while
After a week I have hardly ever seen my brother use Windows. He says Fedora is “like iOS” and he absolutely loved it
I use Arch and he keeps telling me “Why are you doing that nerdy terminal stuff just use Fedora”. He also keeps explaining to me why Fedora better than my “nerd OS”
Why are you doing that nerdy terminal stuff
That is a legitimate question. I still don’t fully understand people’s obsession about terminal. It’s 2023, we should be able to do everything comfortably using GUI rather than type everything, remembering all the commands, parameters, paths, permissions etc.
Terminal fan here (though I’m on Mac). GUIs, in an attempt to contain all the features of a CLI program while being user friendly, make compromises on simplicity. It’s difficult to remember the combination of buttons to click to get what you want. For CLI programs, you have man and —help to figure it out. Of course there’s the pipes and automation aspects of it too.
one of the most important things about text based interfaces is reproducability. Being able to run commands and get the expected results every time and easily share it with others. GUIs can be customized and re-arranged, and its much harder to automate things with a GUI program vs a text based one. Those are handy features which will probably prevent the terminal from ever dying.
I mean you could certainly have both but Linux treating its terminal as a first class interface is a big killer feature of Unix/Linux I think and why it’s still used in the server/dev world so much. Having a command line interface that’s not an afterthought, fully scriptable, and can be automated is very convenient for large tasks that need to be chained together whereas on Windows you have things like PowerShell where not every program you want to do things with in PowerShell has a way to interact with PowerShell, since in Windows you have the opposite problem of GUI being the only first class interface. I think I’d be worried that if you de-emphasized the terminal more you’d get the weird situation that happened to Windows and PowerShell whereas it’s usually not super hard to build your own GUI around an open source terminal program. A lot of people aren’t especially motivated to do that so some programs don’t have GUIs, but if you’re feeling like more programs need one then go for it.
It’s way easier to communicate a terminal based solution over the internet. Instead of making a guide with images, possibly needing annotation, you can just say “run x, y, z in order” and the user can just copy and paste it (even though it’s a bad habit to run random commands off the internet)
In a GUI, your options are human-readable and all presented to you. In a terminal, you have to know the names of the programs/commands. It’s not a big deal for something like Notepad or vim, but it gets more complicated when you don’t know the name of what you’re looking for. It’s easier to remember the which program you need when you have a list and icons. You can do all the same things, but a GUI is much more intuitive for the majority of people.
- Press the Super/Windows button
- Type the letter ‘n’ (or ‘t’ if on most Linux distros)
- Press the ‘Return’ key.
Congratulations, you now opened Notepad / Random open source text editor.
- Ctrl + S = Save for pretty much everything
The above pattern works for almost every program. There is no need to memorise the ridiculously inconsistent nuances of the 4 different commands you specified.
9/10 times I personally prefer GUI over terminal for efficiency. With three buttons I already have a text editor open. At this point, you’ve just started typing the letter ‘v’ in your first step.
As a terminal fan, my main reasons for preferring them over a gui (for some tasks) are:
- It’s faster to type than to navigate menus
- If I don’t know where something is and can’t guess it instantly, it’s usually faster to search for it in a man page than randomly digging through gui menus
- You can combine commands with each other with pipes or
$()
- You can search through your command history to find previous commands
- You can write scripts and aliases to automate common tasks
- The terminal requires less context switching. Typing ten commands is less mentally taxing than opening ten different guis
The barrier for entry is higher with terminals but unless you need visual feedback (e.g. because you’re editing an image) it’s easier and faster for both common and rare tasks.
Well some if those are only true for smie people. Add in a vad case of dyslexia and it get real hard to kniw if what you just tyoed is correct, and does any cli have a spell checker.
There’s this aptly-named utility that I’m currently using:
https://github.com/nvbn/thefuck
I do think GUI is the way to go for “typical” usage, but if you wanted to set up a faster way to run a command you use often, you would create an alias to handle a complex command or something you do often.
For example, I have ‘updateall’ as my command to run ‘sudo apt update && sudo apt upgrade && flatpak update’. Why not GUI for this? I like to see what’s going on during my updates. It’s also kind of satisfying for some reason.
Anyway, I suspect your problem then would end up being not running a syntax, assuming it even exists, but the correct syntax, which I often encounter, but that’s what ‘history | grep’ is for.
Fair enough, I’m not against people making guis as well for people who prefer them for whatever reason, my point is that people don’t just prefer terminals because of elitism or something. I imagine terminals can be better than guis for some disabilities as well.
Because it just works ™. And it is flexible to a point that no GUI can ever accomplish. It’s liberating. It’s repeatable, It’s automatable. It’s about control. And most importantly, it’s FAST!
If you try to max out the control, GUI comes out of as an UX disaster. Check any enterprise software GUI to see what I mean. There will be lot’s and lot’s of buttons all around, and you would also end up with some kind of text input or programming environment inside it.
Consider this but triple the complexity and everything https://wiki.wxwidgets.org/images/1/1f/BinPjOptions.PNG
I just find certain things to be quicker in the terminal than doing it through a GUI.
Like installing software. I think it’s quicker and more direct to do something like sudo pacman -S Firefox than to go through a gui. Especially if Im using a drop down terminal that I have hot keyed.
As for remembering everything, I’d say it’s just a matter of experience. Like, you had to learn how to use a GUI app at one point or another.
This is what sucks about Linux. It’s still not as complete as Windows in that regard… Things being too techy, even the real user friendly ones still got it.
You got this the wrong way around. Windows is lacking a proper terminal. You are at the mercy of constantly redesigned GUIs for literally everything. Windows is an absolute pain to use if you aren’t used to it and have developed a certain amount of Stockholm syndrome.
I agree in certain circumstances. For example a file manager I don’t understand why people use in a terminal. When I need to do like batch deletions or something I can easily just write a couple terminal commands. Everything else I just use the default file manager. Either Finder on MacOS or the Gnome one on Linux.
But stuff like vim, a terminal text editor, is simply more fluid and enjoyable than a GUI program. I’ve tried using vim plugins for various different GUI text editors like Sublime or VS Code but there’s nothing like a personalized vim install. It takes a little bit to get used to the commands, but once you do it’s like riding a bike. You just feel faster and muscle memory takes care of the rest. You don’t actively think about it
same thing with for example package managers. it’s faster to just press my hotkey to open up terminal, type in “sudo dnf install <whatever>” and it’s installed. why do we need a GUI here? it doesn’t make anything faster. In fact, it just gets in the way.
so some things GUIs don’t actually improve. Some they do. It’s a per case thing I think