Skip Navigation

Why do you use the terminal?

Hi, everybody Recently, a guy noticed that I was using it and asked why? For me it because in Linux many things are done through the terminal because Linux has many different desktop environments

He also compared terminal commands with cheat codes in GTA and other games, he understands what benefits you take from them, but not from terminal commands

163 comments
  • For tasks that I know, I'm faster in the terminal. For tasks where I'm less familiar or that are very important (like disk partitioning) I prefer a GUI because with a GUI I can usually see a bit better what I'm doing.

    Terminal tasks for me include copying stuff, setting folder permissions, uncompressing or compressing folders, quick edits in vim, etc.

  • Terminal is faster when you're used to it and sometimes offer more customization options to some apps that has both a GUI and TUI/CLI version.

    I use the terminal (st with zsh and tmux) for:

    • file management (advcpmv, fd, trash-cli, fzf ...)
    • emails (neomutt)
    • text editing/coding (neovim)
    • project management (taskjuggler)
    • image viewing/organization (ucolla,ge)
    • online video browsing (ytfzf)
    • calendar (khal)
    • ssh
    • vpn
    • news aggregator (newsboat)
    • web, bookmarks manager (buku)
    • passwords manager (pass)
    • dotfiles manager (stow)
    • not in the terminal but I also have a lot of scripts used in rofi to control my audio input/outputs, launch a web search, access my bookmarks, autocomplete username and password fields

    I'm sure I'm missing some obvious tools I use daily. It's hard remember everything when it becomes so natural.

    I have shared my experience with some of these tools here.

  • Here's the ELI5 answer I'd give to your friend:

    Computers are like servants. They do whatever you ask of them. But to be able to ask them things, you must do so in their language. On the extreme low level that means writing code to make programs, but on a higher level, it means talking to programs someone else already wrote using special commands.

    The buttons and switches on a GUI that you can click on with a mouse are like pre-recorded commands that instruct the computer to do some specific thing. The button or whatever will have a symbol or text description that lets you intuitively know what it's for, and when you click on it, it plays a pre-recorded command to the computer in its language that tells it to do that thing. With these buttons, you can ask things of the computer in its language without having to know that language.

    As you get more intimate with the computer, this system can start to feel a bit stiff. You've essentially got a butler who doesn't speak your language, and any time you need to give him a task, you have to fumble through a basket of pre-recorded tape recorder messages to find the one for the task at hand, and play it to him. For more complex tasks, you may need to chain several of these together. It gets slow and awkward. And god forbid you don't even have a tape recording for the thing you need.

    It's easier if you learn the butler's language yourself. Then you can ask him for things directly. You're not bound to any collection of pre-recorded messages to use, you can tell him exactly what you need. And if you don't happen to know the word for something, you can look it up. It cuts out all the faffery with fumbling over a tape recorder looking for the messages you need to play.

    Using a terminal is roughly the computer equivalent of speaking to your butler in his native language. You're not limited to only the buttons and features any particular program lets you have; you can make up exactly what you need on the spot. And you never have to bounce your hand between a mouse and keyboard to do it, you can keep your hands in one position at all times, which really adds up over time in both speed and comfort.

    Practicing this will also give you the side perk of better understanding how the computer actually works overall, and what it's actually doing. This knowledge can come in super handy when diagnosing problems with the thing. When a GUI gives up, a terminal can keep digging.

  • Because I prefer using keyboard for almost everything and in most cases terminal is faster than GUI.

  • it allows easy scripting. also for frequently used commands, i can just scroll up in the history, instead if clicking the same buttons over and over

  • For me the difference between a cli and a gui is like asking someone to do something speaking in a language they can understand and doing it just by pointing at things and doing gestures. It's enough for ordering at a restaurant, but for more complex tasks it gets ridiculous, even at a restaurant you'll get better results if you can ask for some information and understand what the server says

  • Not having to go through a bunch menus to do stuff, not using the mouse, having --help for commands...

    Or just for simplicity. For example, I use simple commands to manage my files: mv, cp, ls, rm, mkdir, etc.

    There's also Neovim, my preferred editor, which runs on the terminal.

    I prefer to use GUI for visual things, like drawing, since that's what it's best at.

  • If I figure out how to do something in the terminal, then I know I can automate it eventually.

    If I figure out how to do something in a GUI I might be able to automate it.

163 comments