this post was submitted on 06 Nov 2025
30 points (70.3% liked)

Linux

13984 readers
156 users here now

Welcome to c/linux!

Welcome to our thriving Linux community! Whether you're a seasoned Linux enthusiast or just starting your journey, we're excited to have you here. Explore, learn, and collaborate with like-minded individuals who share a passion for open-source software and the endless possibilities it offers. Together, let's dive into the world of Linux and embrace the power of freedom, customization, and innovation. Enjoy your stay and feel free to join the vibrant discussions that await you!

Rules:

  1. Stay on topic: Posts and discussions should be related to Linux, open source software, and related technologies.

  2. Be respectful: Treat fellow community members with respect and courtesy.

  3. Quality over quantity: Share informative and thought-provoking content.

  4. No spam or self-promotion: Avoid excessive self-promotion or spamming.

  5. No NSFW adult content

  6. Follow general lemmy guidelines.

founded 2 years ago
MODERATORS
 

I know we all enjoy being nerds and using commands (H4ckerman). But now that everything is either a gui or web based, is there really any use to terminal commands?

For example, on windows I never used powershell or cmd hardly ever. I realize now I probably could have. But Linux just drives me to use it more, which i like anyway (because let's be honest, it makes us feel superior)

top 50 comments
sorted by: hot top controversial new old
[–] dual_sport_dork@lemmy.world 60 points 1 week ago

Even outside of scripting and so forth, which I use a lot, often it's far easier and faster to just cook up a wildcard string or a regex or whatever when you're faced with a folder with eleventy bazillion files in it, only some of which you'd like to move somewhere else.

Yes, you could point-and-click on all of those for the next hour and a half plucking them all out of your file browser window. Me personally, I'd really rather not.

Other similar use cases abound.

[–] LiamMayfair@lemmy.sdf.org 37 points 1 week ago* (last edited 1 week ago) (1 children)

IT guy here. The CLI is not something I'd expect the average computer user to use at all. However, for power users and professionals it's a force multiplier at least, and a prerequisite often.

There are several reasons for this. Firstly, IT system and server administration, in the cloud or your own hardware, is often done via the CLI. This is because it's not that common or convenient to hook up every server in a rack to a monitor to click on stuff. But dialling into it remotely via SSH or even a serial port to perform bootstrapping procedures, troubleshooting and even routine management tasks sometimes, is very quick , easy and reliable.

The other main reason is automation. If I buy 10 servers to power my website, they all need installing and configuring a whole bunch of software, e.g. an Apache web server, DNS, SQL, Active Directory, AV, firewall, networking, and a host of other services. Now imagine doing all of that by hand. You don't even need to be a professional sysadmin installing server racks for a living for this to be important. Even if you run a couple desktop/servers/Raspberry Pi/NAS at home, they'll need updating, upgrading or replacing every once in a while. Having to click your way through everything every time you need to (re)configure them gets old very quickly.

GUIs are extremely poor at providing a consistent, predictable, automatable way to do things. They force you to do mostly everything manually and be present to supervise the whole thing. With the CLI you can script out pretty much any task and let it run in the background while you go do other things. I really don't see CLIs going anywhere anytime soon. I'd say it's actually the opposite. PowerShell was Microsoft's way of acknowledging this very fact years ago. The primitive Windows Batch scripting language wasn't cutting it for anyone, especially Windows Server users who had to painstakingly configure every Win Server install they did manually through a GUI wizard.

[–] Cratermaker@discuss.tchncs.de 3 points 1 week ago

Funny thing about Powershell is that it was controversial inside of MS when it was first created, and the inventor had to really push for it to make it into Windows. Everyone thought people wanted wizards for everything instead. There's a great Corecursive episode about it. https://corecursive.com/building-powershell-with-jeffrey-snover/

[–] Nollij@sopuli.xyz 28 points 1 week ago

It really depends on what you mean by "the real world".

The most common use for Linux is on servers. For this scenario, not only does the terminal make sense, but it's often required as there is no GUI installed.

For Linux on the desktop, the terminal is very much analogous to Windows PowerShell. More casual users can ignore it for most purposes, but may sometimes need it for troubleshooting.

If you are trying to say that you "know" Linux, say for career development, you absolutely need to know the terminal. Nearly all professional roles will require it.

[–] SmoothOperator@lemmy.world 18 points 1 week ago (3 children)

For programming it's essential.

load more comments (3 replies)
[–] aubeynarf@lemmynsfw.com 18 points 1 week ago (1 children)

yes, it’s the most natural and efficient way to do lots of things, and the only way to do some things.

load more comments (1 replies)
[–] Pika@rekabu.ru 18 points 1 week ago* (last edited 1 week ago)

Absolutely!

First, terminal is, for the most part, distro- and DE-agnostic. Unless you use something specific to the distro or DE (like package management or working with DE dependencies), what would work on one Linux system would also work on the other. This allows you to immediately get a grasp of any Linux system.

Second, terminal is fast. You can search through GUI for all eternity, or you can type one line that does what you want, saving tons of time in the process.

With that said, both GUI and terminal should develop hand in hand to provide a user experience that suits both regular and power users alike. Windows commonly shifts to the side of regular user, while making it harder for power users to do what they want. Linux as it was in the old days shifted towards power users.

Nowadays, I think Linux finally strikes the right balance - it is accessible and powerful at the same time.

[–] pastermil@sh.itjust.works 16 points 1 week ago

It's easier to automate.

[–] knightly@pawb.social 16 points 1 week ago (1 children)

Of course, some of the best single-purpose applications are command-line tools.

FFMPEG or YT-DLP for examples.

[–] DrDystopia@lemy.lol 3 points 1 week ago

And they have so many great GUI frontends on practically all platforms out there!

[–] Treczoks@lemmy.world 10 points 1 week ago

Many things are way easier on the command line than they could ever be in a GUI. Especially for processes that need repeatability, e.g converting a whole directory of images in a certain way.

[–] Jokulhlaups@lemmy.world 10 points 1 week ago (1 children)

Depends on your work. If you manage headless remote servers or computers, terminal through SSH is kinda the only way to use the computer. There is a lot of software and algorithms or databases that don't actually require a gui. Terminal comands are also great because they can be easily reused and further integrated and automated.

[–] DrDystopia@lemy.lol 4 points 1 week ago

SSH in terminal and understanding the basic commands is a must for hobbyists as well, baby's first VPS is what got me hooked.

[–] masterofn001@lemmy.ca 10 points 1 week ago (7 children)

Pipes etc.

A GUI can't combine commands from several different programs and move data to and from and use that with the ease and explicit nature of a terminal.

load more comments (7 replies)
[–] SillySausage@lemmynsfw.com 9 points 1 week ago (1 children)

Here's a task for you: how do you convert a folder with 5000 images from png to jpg, while ensuring that they are scaled to at most 1024x768 and have a semi transparent watermark on them?

I know how to do it quickly using the command line, but have no idea how to do it with a GUI.

load more comments (1 replies)
[–] medem@lemmy.wtf 9 points 1 week ago (2 children)

A command line is WAY faster than using the mouse, provided you can type fast enough. A thing I'd like to add is that, to me, all those shiny pointy-clicky interfaces are little more than a distraction: they literally slow me down and prevent me from doing real work. Of course, this last bit is a very personal opinion and YMMV.

load more comments (2 replies)
[–] yyprum@lemmy.dbzer0.com 8 points 1 week ago* (last edited 1 week ago) (2 children)

You've got plenty of examples of how the command line is more than jus a "cool" way to do things. So I'll address a couple other issues.

On windows you are discouraged to use command line because that way windows gets more control over what you can do or can't do. Remember windows is not a neutral piece of software, it's a company's business model. On Linux there's no reason to impede using the command line, all the power to you.

(because let's be honest, it makes us feel superior)

I don't know if it's because of my autism, but this strike me as odd. Do people really think like this? I have a certain expertise, that's computers, and I can use a bunch of different tools to the best of my knowledge to do things. I choose command line or GUI depending on how easy the task is to do in each or the time it takes. Not everyone is trying to show off, it's just the best tool to use sometimes.

[–] Garbagio@lemmy.zip 6 points 1 week ago (1 children)

The meme of people feeling superior for using CLI is 30 years old. What you have from op is lazy, out-of-date humor. Like sure, there have always been and will always be a minority of people that upon learning a small bit of something will brag about it (in this case how to use a CLI), but mostly it's just boomer humor. I wouldn't take it seriously that there are any people of note who feel superior for using a CLI.

[–] yyprum@lemmy.dbzer0.com 3 points 1 week ago

Ah I see, thanks for the explanation. So my autism is not to blame, I'm just out of the loop. I mean, yeah, it's always funny when you see in a movie they put a command line tool just to make it look like someone is a R34L |-|4c|<3r and they are just doing ls and cd but never really knew it was a thing in general too.

I guess I've earned a woosh in the OP's joke.

[–] bridgeenjoyer@sh.itjust.works 2 points 1 week ago

Yes, just making a joke, however when anyone sees me use Linux even for basic stuff they freak out that im hacking. So the cliche still stands strong.

Good point on windoze!

[–] ArsonButCute@lemmy.dbzer0.com 7 points 1 week ago

I already know what I want the computer to do: why do I have to search with my slow-ass eyes through what someone else decided was the optimum workflow to get the job done?

[–] Badabinski@kbin.earth 6 points 1 week ago

My work and personal computers typically have two applications open—a web browser and a terminal (well, really a shitload of terminals). I don't have a desktop, I have a terminal. I don't have a graphical file manager, I have a terminal. I'm not doing this because it's cool, I do it because it's efficient as all fuck and makes it trivial to fire off one-liners to automate shit.

Like, I stream a certain video game competitively, and I need to keep recordings if I want to submit runs. I started off recording my gameplay using x264, and the file sizes were too damn big. I tested various av1 options out using ffmpeg on a small sample clip, and when I was done it was simplicity itself to just do this:

# I'm typing this on my phone so I'm not going to write out the ffmpeg args
for file in recordings/*.mp4; do ffmpeg "${some_args[@]}"; done

I didn't have to learn some stupid GUI batch processing thing. I didn't have to install any extra tools (since I already had ffmpeg). I just took my command, substituted the input and output files for variable names, and looped that shit.

I feel that the command line is the most efficient interface for a huge number of tasks. Discoverability is awful (although improved with good tab completion and just reading the fucking manual), but the efficiency and composability of a CLI built in the Unix tradition is hard to overstate imo.

[–] oasis@piefed.social 5 points 1 week ago

Absolutely, I use PowerShell loads every single day.

Some things are easier or faster with a GUI and some things are easier or faster with a terminal.

[–] TheDemonBuer@lemmy.world 5 points 1 week ago (1 children)

I fixed a family member's Windows PC once. Stuck in an update boot loop. Had to rebuild the bootloader to fix it. It took ten minutes once I looked up the commands online. He had already taken it to a PC repair shop and they said all they could do was reinstall the operating system. Honestly, these Windows people are like handicapped because they never really interact with their computers. They only interact with a kind of software nanny that keeps them away from the scary stuff for their own good.

I love my terminal.

[–] bridgeenjoyer@sh.itjust.works 2 points 1 week ago

Yeah linux made me love computers again! Interacting more closely with the machine is so much better for me

[–] Willdrick@lemmy.world 5 points 1 week ago

Terminal is nice for a lot of repetitive tasks that would be a chore via GUI.

Even though I've been a Linux user for almost 20 years >!(fuck I feel old)!<, I mostly use GUI stuff. Terminal is super neat for doing batch stuff, I've even learned how to do some stuff for windows for whenever I inevitably get a call from family to fix their shit. I was pleasantly surprised with winget and I keep a .txt file to batch install common general use apps for them, same as I keep some dotfiles for getting my preferences over on a new PC or install.

[–] aesthelete@lemmy.world 5 points 1 week ago* (last edited 1 week ago)

Unless we're in a simulation, very yes.

Normal people don't seem to realize this but the reason developers swarmed to Mac OS X over Windows when given a choice for work laptops is that Mac OS X has a built-in POSIX shell.

CLI is and will always be more expressive than a GUI. Some "web apps" have even tacitly acknowledged this by adding terminal emulators to their web apps.

[–] tal@lemmy.today 5 points 1 week ago* (last edited 1 week ago)

I try to use terminal versions of programs whenever possible. It's a lot more pleasant to work on a system remotely in the terminal than using graphical programs, and generally automation is better. If you're accustomed to a workflow centered around the terminal, you can take advantage of those benefits.

I've worked on systems over X11, VNC, RDP, etc, but you're just generally going to have a better time using a remote Linux system, especially with any appreciable latency or limited bandwidth, over mosh or ssh.

I also get a lot of mileage out of the fact that I use terminal-only emacs for a lot of things, and it has packages to cover a lot of areas. Long learning curve there, though.

That being said, there are some categories of software where there aren't really competitive terminal alternatives. For most image-editing or Web browsing, I'd use a GUI program.

Most users also won't run into this, but for sysadmins in particular, having access to a system via a serial console even when nothing else is functional is not uncommon. If you don't know how to use a system via the terminal, you're going to have a harder time of it.

While it doesn't have to split along terminal/GUI likes, a lot of terminal software uses text files for configuration intended to be edited as such, and Unix has a long history of powerful tools to manipulate text. Store configuration in a git repository, migrate it to a new system, view and merge configuration changes, search through config, etc.

Also, the GUI has a tendency to be reinvented by people every few years as they hop on some new paradigm or similar. Maybe they decide that they want a unified UI for touchscreen and mouse


one such example that happened


or something like that. That can being benefits, but it also throws out a user's experience with an existing UI, which is really obnoxious. Linux is better about letting users continue to use their favored GUI interface than, say, Windows is ("Microsoft says you use Windows 11 UI, end of story"), but there's still some pressure. The terminal is a pretty mature environment. Yeah, okay, it's changed to some degree over time, but most of the experience I accrue continues to be pretty directly usable as time goes on. I think that the last significant change I made was switching from GNU screen to the pretty-similar tmux. I generally want UIs to be left alone by software developers unless they have a really good reason to change things.

Related to the above, I've also seen a lot of GUI widget toolkits come and go over the decades. From a maintenance standpoint, 30 year old terminal software generally is pretty much good to go, whereas some GUI toolkits are dead and the GTK and Qt people are constantly changing things and doing new major releases that substantially change things. As a developer, I don't really want to keep having maintenance inflicted on me by the UI guys.

So, in short, from a user standpoint:

  • Better remote operation.

  • Better automation.

  • Ability to use systems in a fairly-broken or limited state.

  • Fewer disruptive changes to UI over time.

[–] jjjalljs@ttrpg.network 4 points 1 week ago

Sometimes it's easier to type cd ~/D{tab}/M{tab}{enter} open . than using the GUI.

Plus all the fancy stuff that people do with scripting

Aside from the automation, which has been mentioned already, I tend to seek out terminal based solutions and heavily use it over GUIs because:

  • my wrists tend to hurt after using a mouse for too long (mouse use is now limited mostly to browsing the web and spreadsheets)
  • lower resource footprint means I can do more with less hardware
[–] HubertManne@piefed.social 3 points 1 week ago (1 children)

So curiously I just did a post on realizing I could move some files around and realize it was quicker in the terminal. Basically I had a bunch of files in a folder and I needed to make some sub folders and move the files into them. The difference is not massive but its, to me, a bit easier in the terminal. mkdir "directoryname" instead of click new folder folder name. then like looking at a large amount of files with ls is sorta easier. ls -l resume then mv resume to ./jobs . In the gui I have to hunt around to multi select with shift and ctrl and pull them over. It likely does not sound easier but it is. terminal to is something that the more you use the easier it is doing things with it. Like using the mouse a lot does not make you quicker appreciably and moving or renaming or whatever but if you use the terminal more you do get appreciably faster. Im not even sure of the limit as I have never gotten that good but like I had a boss that could edit files so quickly in vi it was just nuts. since deleting lines is two keystrokes and repeating multiplines is even easier with no need to select. He was also crazy good with grep. Im going to make it a point of having the terminal up and think about using it before gui and then going to gui when I think it will be faster. Its kinda good for you when your in tech to. I hope to get back to my old better pace or better.

[–] tal@lemmy.today 2 points 1 week ago* (last edited 1 week ago)

multi select with shift and control

There are cases where manually-selecting from a list of files to perform an operation on is desirable, but there are ways to do so in a terminal. Myself, I'd use dired on emacs: hit C-x d and select the directory in question, then tag the items you want (various tools to do this, but m will mark the current item) and then ! to invoke a specified command on all of them.

There are other terminal file managers out there including Orthodox File Manager-type programs like Midnight Commander and others like ranger. I don't use those, but I'm sure that they have similar "manually build set of files to perform operation on" functionality.

[–] bagsy@lemmy.world 3 points 1 week ago (2 children)

I cant tell if you are trolling or being serious. Either way, you can take my terminal when you pry it from my cold dead hands.

[–] DrDystopia@lemy.lol 5 points 1 week ago

Would you still love terminal if it was a worm?

[–] bridgeenjoyer@sh.itjust.works 2 points 1 week ago

Nono, im not trolling! Actually was just wanting to see people's reasoning

[–] well@discuss.tchncs.de 3 points 1 week ago (1 children)

I know people who work in windows environments as developers or admins using power shell a lot. They can automate sooo many things through scripting. I work in IT too but this advanced scripting shit is still witchcraft to me. But this is real world usage which makes digital infrastructure management work a lot more efficient. Especially if you have repetitive tasks say on different machines. With GUI you would just be clicking through the same shit over and over again (while slowly loosing your mind).

[–] some_kind_of_guy@lemmy.world 3 points 1 week ago

Hey it's me! My job is basically spending hours per day writing automations in powershell. Our prod environment encompasses thousands of servers + separate windows server environments for testing and Dev.

[–] BartyDeCanter@lemmy.sdf.org 3 points 1 week ago

While this feels like bait, I'm going to take it. Yes, there is a huge benefit to learning and using a terminal if you use a computer as a tool for creating and working instead of passively consuming entertainment. Organizing and searching files of any sort, building applications, writing without distraction, working with remote devices, and just generally using your computer as a tool instead of a fancy TV are all made easier, faster and more efficient if you can use a terminal. The unix philosophy gives you the ability to do things by stringing together a few commands that you might have to find a specialized program for, if it even exists in GUI land.

That's not to say the GUI's aren't great for a lot of things. They are! But they also lock you into doing things in a few predetermined ways rather than letting you develop the skills and techniques for exploring new spaces.

[–] wildbus8979@sh.itjust.works 3 points 1 week ago* (last edited 1 week ago)

Here's a repost of another comment I made not long ago of things you can do in the terminal:

Listen to music:

Read the news

Download Linux ISOs

Browse the interwebs

Listen to podcasts

And so, so much more!


As others have mentioned on the fly scripting is something I could never do without. Batch renaming with a quick loop, regex searches, parsing webpages, etc. It's so much faster than trying to find a program to do what I want, that probably won't do it exactly like I want.

[–] BCsven@lemmy.ca 3 points 1 week ago

I have to concatenate off reports for part of work duties. The GUI tools in Adobe or other PDF editors are slow.

The solution was add Linux WSL2 in Windows. And use qpdf

I can now just open the Linux terminal, type qpdf --pages File1.pdf 1-z File2.off 1-z (etc) -- Outputfile.pdf

It is instantly concatenated.

And next report time its just grabbing command from history and editing file name or page numbers needed

[–] cyborganism@lemmy.ca 3 points 1 week ago (1 children)

I have yet to find a gui that allows me to do the equivalent of running a find command with a regex to find specific files and run a set command to search and replace a string in one go.

load more comments (1 replies)
[–] jj4211@lemmy.world 3 points 1 week ago (5 children)

Cmd was torturous and powershell not much better.

Some things are just massively tedious to do through any gui. Sometimes the converse is true.

One reason why LLM is desired as a ui element is that you can describe what you want in text without having to remember how to navigate a bunch of convoluted ui elements. CLI is related, except more precise but more demanding on specifics of input.

load more comments (5 replies)
[–] leftzero@lemmy.dbzer0.com 3 points 1 week ago

On windows, sfc /scannow, dism /Online /Cleanup-Image /RestoreHealth, and dism /Online /Cleanup-Image /StartComponentCleanup /ResetBase are pretty much required to prevent that mess from blowing up...

I've also had to use the command line to do some Exchange 365 stuff like forcing immediate archive population on 100% full inboxes whose users refused to delete any emails from...

[–] raspberriesareyummy@lemmy.world 3 points 1 week ago (3 children)

GUI: ~5 mouse buttons / wheel functions Terminal: +102 keys

load more comments (3 replies)
[–] awful_neutral@mander.xyz 3 points 1 week ago

The terminal makes many functions easier and faster, it's more consistent across updates and changes, can be automated with scripts and is much easier for developers to implement into software than a GUI

There's a learning curve, but there are real practical reasons for someone to use it over GUI

[–] TootSweet@lemmy.world 3 points 1 week ago* (last edited 1 week ago)

You can take my terminal when you can pry it from my cold, dead, hands.

Any one-liner you put together, you can re-run trivially. You can rerun it with modifications trivially. You can wrap it in a for loop that runs it with different parameters trivially. You can stick it in a file and make a reusable Bash script. It's far easier to show someone else how you did it (just copy/paste the text of your terminal session) than dozens of screenshots of a point-and-click adventure (and not in a good way) GUI app. Bash commands are easier over SSH than GUI apps over RDP or VNC or whatever. You can't script a GUI app.

I seriously find myself wondering why someone would use a GUI for something they can do with a terminal. Learning curve is the only reason I can think of.

I frequently find myself creating tools that let me do with a terminal what I formerly could only do with a GUI tool.

[–] UNY0N@lemmy.wtf 2 points 1 week ago

For me the most important aspects of terminal commands is that (1) you are forced to learn how your OS really works and (2) the terminal will always be able to do things that your GUI isn't programmed to do.

For example, I use brew commands to install brew packages on bazzite because there is no GUI frontend available. I also use it to start ollama LLMs on my machine even though there is a GUI frontend available, because I don't need a frontend for two commands.

[–] Sunsofold@lemmings.world 2 points 1 week ago

The GUIs are nice, sometimes, especially for visual things. (Selecting an image, color, etc.) The terminal remains extremely powerful though in that it's much closer to the object, as it were. If you want to, say, change a setting on your personal machine, as long as the GUI designer thought that option should be included in the GUI (because including every possible setting gets very large and unwieldy very quickly) you're fine. But if you want to adjust that setting on 5, 10, 100 machines, that 30 second trip to the settings app turns into lots of work. If you want to set a setting that the GUI designer didn't decide to include, you're stuck. If you want to have an explanation of what you are doing, or what that other setting might do, terminal has man pages. GUI might have tooltips or a crowdsourced explanation.

load more comments
view more: next ›