Lots of people choose to use the terminal instead of a graphical interface for coding, system administration, and even day-to-day computing – but why?
Here’s a bunch of reasons.
Most servers lack a GUI
(If you ignore Windows)
Most Linux servers are remotely administered via the terminal through a remote SSH connection – so being comfortable in the terminal by using it day-to-day makes things easier when it comes to running commands on your servers.
It’s safe to say that most Linux servers don’t support a GUI – or even have a monitor (or even exist physically!). When you spin up a Linux server on a cloud host you’re usually given an IP address to connect to, some credentials, and little else. You connect, and everything else is configured on the command line.
No doubt you’re planning on running some mission-critical stuff, so being confident in what shell commands you are using and what they will do is important. Silly mistakes when typing terminal commands can render a system inoperable. Practice makes perfect, and using the terminal for your daily menial tasks is practice.
Autocomplete & Suggestions
Drag the mouse across the screen. Double click. Peer at the list of folders. Scroll a bit. Peer again – where is it? Not there. Scroll some more. Damn, scrolled past it…
The GUI is easy to use, but it’s not always convenient. Navigating complex file/folder trees is a pain.
The terminal makes this easy – type the first part of the folder name you’re looking for, hit the tab key, and it’ll autocomplete.
More Tools
Your GUI file browser looks nice, but beyond being able to do some simple navigation, maybe rename, move, delete, or copy some files, it doesn’t do a lot else.
The command line is packed with tools that can be called upon with a few keystrokes – rename files in bulk, merge files, search the contents of files, become powerful.
Work Faster and Smarter
With standard redirection, you can take the output of one program and feed it directly into another. Chain commands together and let them loose on your files to process entire directories of data with a single command.
See What Went Wrong
The Linux shell/terminal is verbose. When a program encounters a problem, it’ll tell you exactly what went wrong. Using standard redirection, you can make sure these errors are recorded to a file if need be. Never wonder why a command failed again.
Fix Problems
Broken Linux system? Things go wrong sometimes. Disks run out of space. Updates fail. Programs do things they aren’t meant to.
The command line is available even when other parts of your system may not be functioning. Clear some disk space, fix configuration files, or re-install software packages without having to do a full reformat.
If all else fails, you can use the terminal to back up your files before you wipe everything.
Scripting
Automate everything! The best thing about the Linux terminal is being able to script just about everything. Get system reports emailed to you, automate backups, script data processing – the sky is really the limit. If you can do it from the command line, you can probably script it (and use the spare time for an extra coffee break here and there).
You do You
Prefer to use graphical tools? Use them. No one actually cares how the job gets done – so long as it gets done well.
Elitism over the choice of tools you use at your job or for your own purposes is really weird.