Why the terminal is actually great for beginners

OR: Why my grandmother uses the terminal and yours should too.

The terminal is always a hot topic amongst Linux users, whether you think it’s a barrier to new users or the greatest thing since sliced bread. I came up with a list of fun reasons why any Linux user, from Noob to Root should want to use the terminal. These are in no particular order.

Please add your own reasons too. This could be the definitive guide to why the terminal is fantastic.

Accessibility

The terminal is in your language (most likely). It’s merely text so it resizes easily to suit your eyesight needs and screen reading software will have no trouble at all. Speech to text probably works fine too. Whatever cards life dealt you, there’s a way to use the terminal. Avoid seemingly non-sensicle icons of things that don’t exist anymore (what’s a floppy disk and what does it have to do with saving anything???) just :wq your way to productivity, sweet, explicit, unambiguous productivity.

OG Dark Mode

The terminal has always been white or green text on a black background. After all these years, the ORIGINAL colour scheme is coming back to a GUI near you. Tell your friends you’ve been using dark themes since before it was cool.

Verbose output

Running applications from CLI is the best way to find out what is going on when things don’t work. Instead of flooding the Nooby forums with “Help, <application> doesn’t work!” you might be able to search for a previously found solution with specific errors from the console output. If not, at least you have something useful to share with people who could help right away.

Promotes literacy

I can foresee a future where the young generation only communicate with emoticons. Whole sentences strung together with nothing but glyphs of yellow cartoon faces and the odd eggplant. Combat this dystopian future with CLI and trick your kids into reading with some classic text based adventure games!

Universal UI

No matter what DE you are using, terminal commands don’t change. Grandmas got the window buttons on the left? Uncle Edgar prefers the bar at the top? (like a sane person should) Evade the labyrinth of personal preferences and get rid of TeamViewer, just apt upgrade already!

Friggen Aliases

When sudo zypper dup starts to look like the opening crawl from Star Wars and you have 20,000 pending updates it’s time for aliases. Turn any complicated command into a short, memorable command quickly and easily with an alias. Launch Firefox with a quick ff, launch Chrome with a simple fu, do anything any way you want!

Shell scripting is the “gateway” programming language

Shell scripting is easy, fun and rewarding. I know Scratch is a fun toy but when you want to get your feet wet with productive programming that solves actual problems you have right now you gotta try shell scripting. Simple syntax, speedy to write, instant results. It’s the perfect launch pad toward learning any other language.

Looking forward to hearing your excuses to use Terminal/CLI!

4 Likes

The newest coolest Open Source apps start off in the terminal, then later on someone makes a nice GUI. So one’s willingness to tough it on the command line results in a powerful early-entrant advantage which the GUI-expecting masses don’t get, sometimes for years.

Witness Wireguard, which is the cat’s pyjamas. Great example. Those willing to use it on the terminal were able to run ahead of the lazier people who needed a GUI before they were willing to try it.

Another advantage: your command-line gains are usable on a $5/US-per-month VPS in the cloud. So you can migrate cloud apps from a locally-hosted Raspberry Pi to a VPS as you please, once you’ve prototyped them. I did this with Mattermost Team Server several times, and loved this flexibility.

Well I disagree there. I got my mother to use Linux Mint, but I would never suggest she touches the terminal, or she might flee back to a Mac.

This just felt relevant so going to leave this here.

1 Like

MacOS has Bash, she can use the terminal wherever she goes.

I think that by acting like the terminal is scary to new users and projecting that on new users we inadvertently make them feel nervous about it and they’ll avoid it or Linux all together.

This is the episode that inspired me to write this. I don’t expect every user to care or want to learn but to be always telling people “no, no, no Linux has a GUI! Look! Shiny! You’ll never need to use that terminal thing!” Is doing users a disservice in my opinion.

If you’re using Windows do you use an antivirus program? Do you backup your files? Do you run a disk-defrag every now and then? Do you restart the PC to finish installing those security updates? Do you keep your laptop charged?

Like anyone would expect to do at least ONE of those things on Windows, I think it’s OK to ask new Linux users to know how to do a few things in the terminal. Its an important tool for Linux maintenance and people should know that. That’s my opinion.

1 Like

And while I agree that the terminal can be a valuable tool, BUT give the right tool to the right person. The Windows examples you give are all done from a GUI not the PowerShell or CMD. So if the maintenance can be done from a GUI instead of the terminal, and they are a “new” user and are used to the GUI options there is nothing wrong with giving them the GUI options to maintain their system, while still leaving the terminal therefor the people that need it. As far as troubleshooting terminal outputs and reports always give more info than the GUI option will I wont dispute that. IE Ubuntu has encountered an error prompt that comes to mind. Not saying I’m for or against it just saying point the right people to the right tool is all.

You’re right Matt. I have undermined the point of this thread by creating yet another polarising argument about this dead horse topic. Instead I wanted to have fun coming up with good or terrible excuses to use the terminal.

Avoid costly subscriptions

replace your Disney + subscription with the terminal. Watch ASCII Star Wars AND the fireplace channel right in the terminal! What else could you need?

1 Like

I agree and I think that at one point every new Linux user that will not be new anymore if that user stays on Linux will and should learn and even appreciate the terminal for what it is.

To go back to the topic’s idea I think @Ethanol covered most of the use cases.

Personally if I have to troubleshoot a machine remotely of some friend or family member (very rare) I indeed make them open the terminal and let them type what I think will solve the problem. I also explain why but really that is unusual. Normally they do not complain and Ubuntu’s GUI (or any other distro) tools take care of their issues.
That way I do not have to share the screen or use unnecessary and even proprietary applications or send pictures in bad quality to see what is wrong there. Of course they have to explain what is not working.

Sometimes we assume too much and think that new users are clueless. They are not. If you show them how to use some terminal commands, they will actually appreciate it.
Something like apt update is so easy to memorize and damn efficient.

Just try to remember. Once we were all beginners. That does not mean you have to use the console but it is always there waiting for you and yes, even on a Mac and all the BSDs.

1 Like

A few more things…

  • More developer time spent on features instead of GUI work.
  • Access to pipes and argument combinations so numerous it’d be extremely cumbersome if not impossible to list them all in a GUI.
  • Increased speed of no GUI overhead and not needing drivers to be perfect.
    • Helps reduce e-waste + easier installs.
  • Greater competition because less developer time is required to compete.
  • Increased security and reliability due to lower code complexity, size and dependencies.
    • Much easier to isolate apps with the likes of podman.
1 Like

I totally agree! Especially the sudo zypper dup part. I do like the integration of terminal with GUI though. Dolphin file manager makes for a nice combination and the awesomeness of Plasma makes it like a gateway to the terminal where you can dip your toes in it from time to time while still keeping the GUI as a fallback. If you were to add FISH to this write up in some way… that would have been one step more awesome.

Please add your favourite FISH uses!

1 Like

When I start typing a command and I can’t remember the exact option, I just hit tab and I get all the options nicely listed out that I can arrow over into. THAT is my favorite!

I would argue that it is only good for beginners if said beginners have no preconceived notion of desktop computers in general.

The push that I would like to see to make the terminal accessible to new users by enabling a “new user syntax”, possibly making it even the default. The idea is that you are able to “converse” to the command line ala Siri/Cortana/Alexa/Google Assistant. We all know that we can type firefox www.youtube.com and have it launch to the site but what I want command line to do is be a competent voice assistant alternative and do the same if the newcomer types i want to watch youtube.

The technological hurdle is actually less because we can skip the entire voice recognition.

So, to Linux devs out there, can we have this baked into your Linux OS?

While I am not “new” to Linux or the terminal, if I need to perform an action, its much easy to study and later run text than find out which buttons to press when these buttons are different for each Distro or DE/WM or set of extensions installed. The terminal indeed is maybe not “easier” but certainly more consistent and reliable for me and I would think a lot of others.

For many new users the command line is like using a table saw without the ability to see what you are doing or where your hands are in relation to the blade. You know there will be blood.

“You put a space in that command?!?! Of course that wiped your data!”

Presentation of simple commands that give useful results much more quickly than the GUI will are the best novice uses of the command line. It build confidence and teaches the CLI as a useful and not so scary thing. For example:

inxi -Fxxxrz
lsblk
neofetch
speedtest

are easy to use, answer a question and give a fairly understandable result. Too many times we try to give them a string of Klingon and act confused that they don’t understand what the syntax means.

The other thing, launching a GUI app from GUI makes sense to the novice. The idea of launching a GUI app from the command line may baffle them.

2 Likes