We’ve all heard it before: People claiming Linux isn’t a viable alternative cause you can’t run it without using the command line.
I decided to test that. Now there are several distros aimed at new users that have preinstalled GUI tools so you don’t have to touch the Terminal. But I wanted to see if that’s also possible on a distro not specifically aimed at fresh converts. The oldest distro with a large userbase, which a lot of people consider to be a “standard” Linux, is Debian, so default Debian with Gnome is what I’ll use.
I consider “running an OS” to at least include booting it with full disk encryption, starting applications, connecting to a network, browsing the web, file management, installing updates and new software (both from the repos and third party sources), installing necessary drivers, setting up printing and scanning, and adjusting the looks and behaviour of the user interface.
So generally anything you’d be able to do on Windows without opening Powershell, CMD, Regedit or a text editor.
I guess I’m telling you nothing new when I say that you can install, boot, launch apps and browse the web on Debian without the command line.
It comes with a pre-installed software center, printer and scanner setup works out of the box from Gnome’s settings.
Here’s where it gets a little trickier: Scrolling on Firefox is rough, cause the preinstalled old version doesn’t have Wayland support enabled. So you either have to enable Wayland support or install the Flatpak version of Firefox.
To enable Wayland, you have to write MOZ_ENABLE_WAYLAND=1
into /etc/environment
. But the file manager doesn’t let you edit system files without starting it as root from the command line. To add an “edit as admin” entry to the context menu in Nautilus, you need the nautilus-admin
package which isn’t available in the software center. It can be installed with syaptic, a pre-installed GUI frontend for apt. But you still need to edit a system text file, which goes against the spirit of this challenge.
The other option requires enabling Flatpak for the Software Center. You can do that by installing gnome-software-plugin-flatpak
using synaptic, then heading over to https://flathub.org/setup/Debian to download the flathub repo file which can be installed with a double-click and a reboot.
Note: Beginner-friendly distros ship with a newer Firefox version and Flatpak support out of the box.
Another issue is that during the boot process, you’re already presented with the command line running boot messages by you, and the password prompt for the disk decryption is also on the command line. Also, the 5 second Grub countdown is kind of annoying. To make this prettier, we need to install grub-customizer
, launch it and add the word splash
at the end of your kernel parameters in the settings. This activates the “boot-prettifier” plymouth which is pre-installed but not activated by default. Again, pushing the boundaries of this challenge.
Note: Beginner-friendly distros come with pretty plymouth boot enabled by default.
To enable the non-free nvidia Driver, you need to enable non-free software during the GUI installation or in the Software Center settings, then install nvidia-driver
from Synaptic, and reboot.
Note: Beginner-friendly distros come with a one-click NVidia driver install
To install Steam from the Debian repos, you’d need to enable Multi-Arch first, which isn’t possible without the command line. Using the Flatpak version is your other option.
Note: Some beginner-friendly distros handle this for you as soon as you install a package that depends on multi-arch
tl/dr: It’s possible to run and administer Debian for standard tasks without touching the command line. It’s just generally faster to use the terminal if you know what you’re doing.
Distros like Ubuntu, Mint, Zorin or Pop!_OS (possibly also Manjaro which I have no experience with) remove the remaining roadblocks. The only time you’ll always need the command line is to fix issues you have with help from other users, because it’s much, much easier to just post the right terminal commands online than to guide you through whichever GUI you might be using.
Anyone who’s ever followed a Windows troubleshooting guide knows what I’m talking about.
In KDE (well, in dolphin) you can edit files in system folders from GUI if you type
admin://path/to/folder
. You might need to install one kio-admin before tho, and you need dbus and polkitI paid for a keyboard, I’m going to use a keyboard!
Every key, too! I may not know what the heck SysReq is, but I’m hitting it!
There is one simple question you gotta ask yourself.
Is it worth it to press SysReq without knowing what it will do?
“do you feel lucky, punk?”
Debian is great for servers, not for desktop novices. Use a state of the art desktop OS like fedora (atomic) and you won’t face a lot of those issues.
Yes, linux “has a problem” with nvidia but we should blame nvidia, not linux.
Yes, but no…
For a basic user, who does not expect to be doing anything special beyond opening existing programs, or using programs downloaded from the package-manager its possible to never touch terminal.
I have two kids who daily drive Manjaro based light gaming PC’s, they never touch the terminal, but they also dont administer their systems, I do.
I do use the terminal, frequently for updates, and some specialized tasks like minecraft mods which require unpacking files and sometimes fixing permissions.
So my TLDR, is that its possible to be a USER without touching the terminal, but I dont think its possible to be an administrator without.
So my TLDR, is that its possible to be a USER without touching the terminal, but I dont think its possible to be an administrator without.
Suse with Yast makes it possible to administer just with GUI. Not 100% sure if it can do absolutely everything possible but it has lots of tools.
I think that the same principle applied to Windows/Mac, doing any administrator work without terminal seems impractical or impossible.
You can update the system with the Software Center and unpack archives and adjust permissions from within Nautilus.
or, I can SSH from my computer in a different room, and do it with one CMD in terminal :)
Yes, it’s faster with the Terminal, but you said that it’s impossible without one, which just isn’t true.
o sure, I could walk over and put in my admin password and do it all in the GUI. I cant think of any basic things that require terminal with modern DE’s like KDE. I just use terminal for remote management because its simpler than trying to work at their desks.
I use the Plasma app store Discover to update, upgrade, install and uninstall apps. Everything is easy. Even unpacking files and permissions are easy in the file manager. No need for CLI as I’m a home PC user.
why are people so terrified of the terminal?
The terminal killed my dog and raped my wife!
Because until you spend many hours getting used to it, it’s annoying as hell. I’m a longtime bash user, but if I have to do anything in PowerShell, it sucks. Bash is even less friendly to novice/casual users due to tools like awk and sed being totally obtuse. When you’re unfamiliar with the workflow, not being to see everything you’re able to do at a glance is pretty frustrating.
I mean, the answer to this is obvious if you can empathize.
Gui has baked into it hints on cause and effect. The terminal is a freeform incantation machine where you need to know and utter magic spells.
sudo rm -rf /
Is just as magically nonsense as
sudo apt-get update
If you don’t know what ANY of it does, your capacity to fuck things up is unbounded on the terminal. In a GUI, rightly or wrongly, you expect your capacity to fuck things up is bounded by the context at hand. I do not expect that I can nuke my system clicking through Firefox.
You can claw the terminal from my cold dead hands, but I’m not offended by the notion of a GUI.
Why? Because developer attention scales broadly by usage. Well used projects get more love. If we could even break 10% home adoption of any Linux distro and the runaway effect of net new developer input would destroy closed source operating systems, and I’m here for it. If that means adding a fucking Ubuntu checkbox to let people enable Wayland without strictly requiring the command line go fucking nuts.
this explains caution, wariness, concern, unfamiliarity with the terminal – it doesn’t explain the revulsion people show to even the thought of the terminal as a partner to a GUI
IMO, caution, wariness, concern, and unfamiliarity manifest as revulsion.
EVs. Solar panels. Heat pumps. Anything outside of CIS heteronormal relationships.
I’m my experience, after the age of like, 25, people (in GENERAL… Obviously many expectations) feel like they’ve got life figured out and push back against pretty much anything that challenges whatever they’ve grown accustomed to.
Nobody bitched about the DOS prompt when nobody knew how to use computers. Young people learned it. Old people insisted computers were a fad and pushed back entirely.
In my calculation, it’s just typical and predictable human response. Open to other theories though.
mhm but the first time you invoke sudo, you get hit with that sudo warning which should trigger something in the user that perhaps they should rethink what they are doing.
Right, and so if you have no idea what ANY of it means you just bail back to windows.
or you know, you could ask people. You wouldn’t start linux if you aren’t curious and or have someone in your circle who knows about linux a bit more.
I can’t even begin to count the number of times I’ve seen absolutely terrible advice posted and taken regarding how to do things in Linux. Can’t connect to something? Easy, make a blanket iptables rule to permit everything. Something can’t read a file? Chmod 777. Install isn’t working? Just install as root and use root as your general login from there on out.
It’s hard to learn Linux.
But it’s even harder to FORGET what you’ve learned, to empathize with what it was like to not understand it at all. That’s why it’s SO HARD for us who’ve been using it daily for a decade to empathize with newcomers.
It’s why people literally can’t fathom why people are afraid of the terminal.
It’s why, even when someone takes the time to explain why, people go, “nah, that couldn’t possibly be it”
It’s like when gun people can’t comprehend why people are afraid of guns. The answer is obvious they just can’t hear it.
I agree that learning Linux, when all you’ve known was Windows, is hard.
My first computer had only PCDOS (it was the early 90s) and I’ve never been afraid of a black screen with a white cursor blinking.
But I refuse that someone who would be interested in Linux, would just willy nilly install it, has to resort to the terminal, is faced with the sudo screen and then just give up. It’s after all not a drop in replacement, neither is macOS.
So where did that interest stem from?
-
Influencers on Social Media? Why not ask those, asking questions doesn’t make you look stupid (unless the questioned are stupid themselves and have a superiorty complex).
-
As a recommendation from a friend? Well that friend totally is now their tech support for anything linux.
-
Or they are own their own but then that curiosity has to be quite immense to begin with and something like a terminal wouldn’t deter them.
Ok, I think I see your position more clearly now:
You’re thinking about people who are interested and installing based on technical interest and curiosity.
In those cases, I think you’re probably right. There is probably some base competency at play. A desire to learn. Probably someone in their sphere to support.
I’m thinking more about the type of people who would buy a Chromebook. Or my cheap ass parents who want to squeeze another 5 years out of an ailing laptop. They don’t want to spend any money and just want to use Facebook and YouTube. Send some emails. Connect to wifi. Print their boarding passes. Not have their machines riddled with viruses within minutes because their windows OS isn’t getting security updates anymore. I think this is actually a massive use case, and I want Linux to be accessible to them without needing to use the terminal for anything.
-
deleted by creator
That’s kinda why shells like Fish are so nice, it shows autocompletes, shows me not only commands, filenames, but also arguments too commands too. If i vaguely remember what the name of the command is, I don’t really have to open up and documentation or google to find it out, i just try some combos and usually get it. The real weird thing is why distros don’t ship with user friendly shells, but insist on sticking with bash
I landed on oh-my-bash, zoxide and some other utilities. It really improved my terminal experience.
There’s a bunch of standards that were supposed to keep all Unix-like systems compatible with each other (POSIX).
Linux deviated from them, then set up a bunch of different standards to make sure all Linux distros are compatible with each other (LSB).
Almost no Linux distro nowadays still follows those standards either, but they are the reason Bash is the default. Fish isn’t standard-compliant.deleted by creator
Lol it’s great, you should try it
- you have to figure out what the icons are and which menu holds which command
- in a GUI, only the basic options are laid out for you – newcomers regularly assume something can’t be done because the option isn’t there rather trying to find out if the option has just been moved to a completely different area of the UI
- GUIs regularly freeze up with even less indication of what’s going on (do you wait a few seconds or half an hour when the beach ball isn’t spinning)
- (on a side note, GUIs are generally a nightmare for accessibility options)
deleted by creator
GUIs regularly freeze up with even less indication of what’s going on (do you wait a few seconds or half an hour when the beach ball isn’t spinning)
mhm, i totally love how
cp
,mv
,rm
doesn’t show ANYTHING resembling progress while it shows a simple blinking cursor, it doesn’t event prevent the user from typing anything.
They’ve been raised on systems where you don’t need it, and they fundamentally don’t understand how one talks to a computer. It’s actually quite a bit to learn, and if you didn’t grow up doing it, it seems like a big cliff.
I feel like Mint is the move if you never want to utilize the terminal. But while it can be intimidating initially, after using it, you’ll grow to love it. Truly makes life way easier. I learned by first finding threads on my issues to copy and paste commands. After doing that enough you’ll gain an understanding of the main commands pretty quick. Fedora is a great starter in my mind, as you can do everything through the GUI when first starting, but unlike Mint, you can still get nerdy with the terminal when you feel up to it. Using a VM is a solid option to learn the terminal without any risk, worst case just delete the VM and make another. But you’d have to mess up pretty thoroughly to need to do that in my experience. Fedora, or Nobara which is a gaming and media centric fork of Fedora, are amazing due to the ability to run great out of the box plus being able to dial in anything you want to alter for your needs down the road. Fedora’s Software center allows you to add flatpak and snap packages, so it’ll all be in one place. Fedora 40 makes NVIDIA drivers pretty easy to deal with too. But this is just my two cents, I’m curious to see what others recommend for you.
I had a situation where the updater didnt work at all so I had to go full debian, knew the steps luckily, and it was a pain.
Like manually searching for version nicknames and changing a textfile.
In Fedora? I’ve had one or two issues with the updater if I postponed the updates for a while, yet sudo dnf update always fixed the issue. I feel like thats step one for terminal use really. It’s also nice when it’s done this way you typically don’t need to reboot, unless it’s kernel or driver updates.
No in Linux Mint. The version was something 20.1 or so and 21.3 is the latest or something.
The updater didnt work at all, apt worked normally.
So
- Debloat random preinstalled deb packages
- Update
- Upgrade
- Check for fixed packages and remove or upgrade them
- Dist-upgrade, full-upgrade (whatever the difference is)
- Reboot to be sure
- Search on the internet for the new ubuntu version nickname and the new mint version nickname
- Search for sources.list, not there but a single file that contains all sources in a subdir, strange
- Manually change the names
- Update, upgrade, dist-upgrade, full-upgrade etc
Worked perfectly, the amount of stuff that can be updated, stopped, swapped without a reboot is fascinating.
Fedora atomic is throwing all that over board, you always need to reboot, there is just one function to get the new stuff. Okay you can install stuff with cache only and a few more tricks. But by default it is
rpm-ostree update
orrpm-ostree rebase
Fedora always requires a reboot for big upgrades, not sure what these are specificslly, for stability, which makes sense.
But atomic doesnt, it goes on the live system in the background, pretty cool.
Interresting list, thanks.
Regarding the Firefox Wayland variable, it should be possible to add the line in ~/.profile instand. And that file can simple be opend by showing hidden files in the file manager of choice.
There are tons of things a distro needs to preconfigure for you to work like that.
It can absolutely work. Imagine:
- atomic distro based on uBlue using KDE Plasma
- a working ISO (lol)
- it updates automatically when battery is okay and the network is not metered
- the image uses
:latest
versions so version upgrades are automatic - flathub is preinstalled
- install apps
- manage flatpak permissions through KDE Settings
- maybe use btrfs-assistant for some fancy backup and management stuff (but that is not preinstalled)
But for some stuff CLI is needed.
Well, the good news is that of course you can use Linux with only as much command line interaction as you get in Windows.
The bad news is that the command line REALLY isn’t what’s keeping people away from Linux.
Hell, in that whole list, the most discouraging thing for a new user isn’t the actually fairly simple and straightforward terminal commands, it’s this:
Here’s where it gets a little trickier: Scrolling on Firefox is rough, cause the preinstalled old version doesn’t have Wayland support enabled. So you either have to enable Wayland support or install the Flatpak version of Firefox.
This is a completely inscrutable sentence. It is a ridiculous notion, it brings up so many questions and answers none. It relates to concepts that have no direct equivalent in other platforms and even a new user that successfully follows this post and gets everything working would come out the other end without understanding why they had to do what they did or what the alternative was.
I’ve been saying it for literal decades.
It’s not the terminal, it’s not the UX not looking like Windows.
I fully agree, regarding Debian. I would never recommend it to any new user. However, every single distro actually targeted at new users doesn’t have this issue.
And if I hadn’t known about this issue before, I probably wouldn’t even have noticed that scrolling is a bit smoother after the adjustment.Bonus: Windows has enough of these completely inscrutable mannerisms as well. Want to change the icon of a program pinned to the taskbar? You’ll find the shortcut file in
C:\Users\Username\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar
Yeah, for sure. If you just drop Ubuntu or Fedora or whatever on a machine where everything works for you out of the box the experience is not hard to wrap your head around. Even if one thing needs you to write something in a terminal following a tutorial, that’s also frequent in Windows troubleshooting.
The problem is that all those conversations about concurrent standards for desktop environments, display protocols, software distribution methods and whatnot are hard to grasp across the board. If and when you hit an issue that requires wrapping your head around those that’s where the familiarity with Winddows’ messy-but-straightforward approach becomes relevant.
In my experience it’s not going through the motions while everything works or using the system itself, it’s the first time you try to go off the guardrails or you encounter a technical issue. At that point is when the hidden complexity becomes noticeable again. Not because the commands are text, but because the underlying concepts are complex and have deep interdependencies that don’t map well to other systems and are full of caveats and little differences depending on what combination of desktop and distro you’re trying to use.
That’s the speed bump. It really, really isn’t the terminal.
In my experience it’s not going through the motions while everything works or using the system itself, it’s the first time you try to go off the guardrails or you encounter a technical issue.
This is also true for Windows though.
Thanks for the list. It’d be interesting to see something like the Are We X Yet sites for Mozilla/Rust projects that tracks this sort of thing
I hate the “just use the terminal” internet advice. Sometimes it’s necessary, but it really shouldn’t be on modern GUI distros. However, on the non-extremist distros (no Arch bleeding edge stuff, no Debian “free software is more important than working drivers” mentality), things aren’t as bad as you’d think they are reading guides online.
If you use a general consumer focused Linux distroa and stick with tools with official support, sure, Linux can be used through the GUI. Pick Ubuntu or maybe Mint, install Steam for games, use whatever app store program these things come with these days. The hardest part is ignoring the people online who tell you to sudo doas run0 awk grep sed for minor changes that you can just as well do in your distros Notepad alternative or a command line tool with names like “Disks” or “Backups”.
Instead of regedit, you can install dconf editor on Gnome or a text editor in KDE (in the few places the normal settings screen doesn’t have a button). Instead of sudo nano, open text files in the text editor.
The Wayland thing should no longer be necessary. Even if you don’t provide the flag, Xwayland will take over and Firefox will still work fine if you don’t know any better
To use nautilus as an admin, there’s a secret trick that Gnome should make a menu button for already: edit the path (ctrl+L) and turn /home/user into admin:///home/user. This will allow you do to root operations. In KDE, this is easier.
In KDE, flatpak support can be added to Discover through the GUI as well. Simply go to the settings, enable Flatpak, and add the default repository, all clickable buttons. I think this should be done by default, but whatever.
Making the boot process prettier is something every OS I know of requires command line tooling for. Unless you use systemd-boot, which hates themes or colours or anything nicer than an 80s prompt really, every major OS I know of comes with a background picture and an animated boot logo by default. If you want to edit those, you’re venturing into the “do it yourself or run some shady program off Github” area similar to that if modding Windows. Similar to modding Windows, you’ll probably break your boot as well.
In Ubuntu, the Nvidia driver can be installed through the “additional drivers” control panel option. Debian is against proprietary software, so they make it very difficult. If you don’t mind proprietary stuff, Debian may not be for you.
I’m not sure if Canonical also broke Flatpak support in Discover, but the important steps are all doable in the GUI on Kubuntu. I think Zorin has a Kubuntu version that may also work. Pop is moving to their own GUI, but that’s still not finished, so that’ll probably require more terminal work for a while. I’m pretty sure Mint will also work out of the box for most of this stuff.
What I’ve noticed is that more and more settings and guides for Windows these days are all done through Powershell. While Linux is (slowly) moving to a GUI oriented desktop, Microsoft seems to be ditching settings for command line tools because they’re afraid general users will break something.
I hate the “just use the terminal” internet advice. Sometimes it’s necessary, but it really shouldn’t be on modern GUI distros.
The problem is no one wants to make a GUI guide for Gnome, KDE, Cinnamon, Mate, XFCE, and so on and so forth.
For normal system administration, Gnome, KDE, Cinnamon, Mate, XFCe, and the others should be making those GUIs. And they do, most of the time, or they reuse tools from other environments.
Programs in general will work on all of those desktop environments.
I’m not a fan of this approach. I think the idea that users should never touch a command line is an inherently proprietary philosophy. Without the command line, at any given moment, the user is fundamentally limited to whatever options the developer elected to offer.
I think a good GUI will assist a user in learning text configuration and command line functions.
What does a command line have to do with being proprietary?
I strongly disagree because users don’t WANT to learn or use a terminal and you can’t change their minds.
I think it’s perfectly possible to use Mint, Ubuntu, or Fedora without the terminal. But a lot of online tutorials are like, “Just run this command.” because it’s faster.
I’m an experienced terminal user but I know with my Steam Deck, I barely ever use it. Really the only time is when I want to update packages quicker than using the GUI tool. But you could successfully use a Steam Deck without ever launching into Desktop mode, much less opening a terminal.
I run mint on my “home entertainment center”. Just an old laptop with a wireless mouse and keyboard.
Granted I don’t use it for much, but once I had mint on it, I’ve only used the desktop environment. Mostly because I’m leaning back in a slothful, shameful lump, and this is not conducive to typing. So I spend way too long pecking at things with the mouse.
Pain in the ass? Yes.
Way more tedious and time consuming? Yes
Possible? Also yes
The command-line is not just faster, it is also much more universal.
You and I may use different distros and different desktop environments. If you want to create instructions that tell us how to do something using the GUI, there is an excellent chance you need different instructions for each of us. If you instead give us CLI instructions, there is an excellent chance that the same instructions will work for both of us.
The CLI is not faster for everyone. Especially non IT users who don’t know any of the options and would have to search the web every time. And there are so many commands the CLI is useless at. Graphics and presentations a big fail. And few people use CLI for email or spreadsheets.
GUI users have a chance to work out how to use a new GUI 99% of the time, as it is all familiar. No exact syntax to type perfectly or it will fail. On other occasions, web help tells you where an option or command is. There is no need to entirety change the way you work, just for a few times when learning new software.
I don’t think you really do anymore. I’d consider myself an experienced Linux user. I’ve been using it as a my desktop OS for over 20 years. I’ve also used Linux heavily through my career and am completely comfortable with the command line.
With recent installs of Fedora the only thing I use the command line for is the initial setup of the multimedia codecs. After that I haven’t been required to touch it.
I used to consider a terminal required to keep your desktop Linux system running. Now I look at is as an optional install for programmers.
Yes. Pretty much on all distros. Also its a very different feeling than when you do it on Windows. On linux its to do a specif desired task and it doesnt have that strange feeling of just running an obscure that you dont understand command like on Windows.
Keep it to Fedora, Opensuse, Ubuntu/Debian or Endevour. The first two are the bests.