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 Synaptic, 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.
To install any compatible binary on your system (like the Universal Android Debloater, for example), just copy it to any place you like. Install the menu editor alacarte
and use it to add a menu entry for the file. Now you can launch it from within Gnome by clicking on its icon or using the global search.
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, set the grub countdown to 0 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.
I paid for a keyboard, I’m going to use a keyboard!
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
Yes.
Anyone who says differently is confusing “necessity” with “efficiency”.
When I first started in Linux I rarely used the command line at all. But as time went on and I became more familiar, I found that there were some things that were simply faster to do in the command line.
I can’t think of a single “everyday regular user task” than needs the command line, tbh.
I think one of the issues, why there terminal is seen as necessity is, that there are almost no tutorials that refer to the gui. So if you’re a newbie and try to find out how something works like adding a third party repo to your package manager or making an install script executable, all you get is a command. You don’t get a “add this address to the list in the settings menu of your package manager, which you can find here”, for example.
You more succinctly, and respectfully, stated my thoughts than I did in my post :)
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.
I use Mint and have yet to use the command line. I browse the web and play games on steam. All of this works right out of the box.
Totally agree…
I’ve been using mint for the last 4 years, and while I have had to use the command line for some obscure installs, it also works as an OS without needing to use it (i jumped in at the deep end and installed it in a pc I got from my brother and used it as my everyday OS)
I don’t understand why Mint isn’t the first suggestion for Linux ‘virgins’ switching over from Windows etc, it has everything you need pre installed plus the download manager for anything else
Linux has a flavour for everyone, and after a while when you’re confidence and skills grow there is the fun of using the command line and a bit of tinkering…or not, if you are happy with the ‘basics’
Exactly, it entirely depends on how you want to use your computer. If you install Mint because you just want a privacy respecting OS that supports your hardware? Then there’s no need to touch the CLI. You can experiment and try out the CLI at your own pace (if you want). I honestly cannot fathom the “if you don’t want to use the CLI you shouldn’t be using Linux” attitude that many of the responders here have. Isn’t the ultimate freedom of open source is to use the hardware how you would like to use it? So what if you spend 20 years on Linux and never touch the CLI?
It’s just generally faster to use the terminal if you know what you’re doing.
It’s also true for other distros. Not because they have poor GUI tools but because CLI is faster than GUI if you know what you are doing.
Kind of, but why? I understand why the CLI is intimidating to a newbie but it’s not some arcane magic for leet haxxorz, but a poweful tool that everyone can learn to use. We Linux users weren’t born knowing how to use it just like a Windows user wasn’t born knowing how to use Control Panel. It’s a different way of working with a computer, but with patience and learning it will become a useful asset, I can’t imagine using a computer without it now.
It’s not intimidating it is a archaic unneeded hindrance.
Don’t get me wrong I don’t mind CLI for advanced users and advanced niche technical stuff.
But when an average non technical user needs to open CLI to install the OS, applications, or drivers for standard computing uses. That is a complete failure of the OS in a desktop environment.
None of the three things you listed need the CLI, except for a couple of distros. Most distros can use the GUI for those.
Just out of curiosity, are you on Windows? If yes, I get why you’d think the CLI is archaic and a hindrance, it’s a terrible experience there. Whole other story on Linux and Mac though. As one example I personally think “sudo apt install name-of-program” is just a more straightforward and easier experience than browsing an app store or downloading an installer. I don’t mean to be an evangelist, it’s fine to stick to what works for you, but just because you’re used to one way of doing things doesn’t mean it’s the only good way.
You missed the point, expecting a non technical casual user to type in a bunch of commands that are completely foreign to them. And they don’t understand, is a failure of the OS. Full stop.
“As one example I personally think “sudo apt install name-of-program” is just a more straightforward and easier experience than browsing an app store or downloading an installer.”
Spoken like a true techie cultist that doesn’t comprehend how a typical casual user thinks.
Users think the way they do because of what they’ve gotten used to in decades of Windows or Mac usage. Commands don’t HAVE to be foreign, I genuinely think people starting out with computers would be perfectly capable of learning the basics just like they learn what a file explorer or a web browser is. Someone advanced enough to install a different OS in the first place would especially benefit from this. We’re fighting over nothing anyway, you can use many modern Linux distros without ever touching the CLI.
Also, massive cringe discarding someone with a different opinion as a “tech cultist”.
why are people so terrified of the terminal?
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.
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.
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.
Edit: I think I better understand that there are more nuances around the cases now, and I think I’m being unfair by making blanket statements about what is and isn’t obvious
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.
-
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.
The terminal killed my dog and raped my wife!
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.
Many times you need to use the terminal with Win and Mac too. Sometimes something goes wrong, or you need to enable something that doesn’t have a UI. So in the last few years, I’ve used the terminal with these OSes too. So I don’t see why you wouldn’t use the terminal with Linux too.
The only time you wouldn’t use the terminal at all, is if someone else is your sysadmin, and you’re just driving a browser or a couple of apps, as a plain user. Then sure, you’ll never need to touch the terminal. My mom only uses a browser for example on her linux laptop. It’s good enough for her. But when there’s an update or anything else such, I’m the one dealing with it.
Yes, absolutely. But I also wouldn’t want to. GUI tools have their issues sometimes. The command line is basically raw compute power.
Is it possible to do work in a shed without using a drill?
It is good of you to do this work and post your findings, so no offense intended, but this command line meme is better off not being spread. The terminal is a tool and should be used when it’s needed. Time spent worrying about this is time that could be spent making it easier to understand.
I was introduced to the terminal by a friend so I don’t know of a good starting tutorial for newbies. I wasn’t interested until I saw you could use the output of one command as the input of another command using a “pipe”, the | character on the keyboard.
You are right that the terminal is a really useful tool. But for the average user, the terminal is intimidating.
No other OS works like Linux in term of UX. You can use iOS or Windows without a command line all your life.
As this post describe, it is next to impossible with a Linux Distro.
For the people that want Linux to be mainstream, this is an important hurdle to go over.
I know that Windows sometimes shit the bed where you need to edit a register or use PowerShell, but for the vast majority of people, it won’t be needed ever in their life.
I once saw an adult struggle to navigate the cursor to a button. It’s a trivial task… to most people - so that’s only true when you know how.
The terminal is not innately intimidating, it’s just new - it’s not something that they were taught in school. That’s where the hurdle actually is.
This is not true, specially with atomic distros. You can get away with doing everything via GUI. I love my terminal, I can shave off hours of GUI with a few commands, but my kids and wife are also Linux users exclusively, and none of them have ever touched the terminal (yet).
If you’re not going to be tinkering, and all you want is your computer to work, absolutely.
Yes.
Its not possible to use windows to its fullest without the command line. You can muddle along and miss out without it but you will always hit a point where the cli is the best way forward.