this post was submitted on 26 Mar 2026
35 points (94.9% liked)

Linux

64114 readers
571 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 6 years ago
MODERATORS
 

Regardless of what the app does and whether the thing that does is particularly useful, powerful or important for what you need to do (or even well implemented), what is a command-line interface that you had a particularly good experience both learning and working with?

In other words, I'm thinking about command line interface design patterns that tend to correlate with good user experience.

"Good user experience" being vague, what I mean is, including (but not limited to)

  • discoverability--learning what features are available),
  • usability--those features actually being useful,
  • and expressiveness--being able to do more with less words without losing clarity,

but if there's a CLI that has none of those but you still like it, I'd be happy to hear about it.

Edit: Trying to stress more that this post is not about the functionality behind the tool. Looks like most of first responders missed the nuance: whether app x is better than app y because it does x1 ad x2 differently or better does not matter; I'm purely interested in how the command line interface is designed (short/long flags, sub-commands, verbs, nouns, output behaviors)..

you are viewing a single comment's thread
view the rest of the comments
[–] harsh3466@lemmy.ml 2 points 17 hours ago (1 children)

find and rename/perl-rename/prename (depending on your distro), are two of my favorite cli tools. I generally find both well designed and easy to use. For me, they are indispensable.

[–] coriza@lemmy.world 5 points 15 hours ago (1 children)

I think find UI is so bad every time I use it I think about hacking a script just to make it simpler for my use case. At the same time I am very reluctant to use one of this new versions of standard commands trying to reinvent the wheel.

Some things I don't link about find:

  1. How the directory needs to be the first argument. I get the reasoning but it is such a pain, specially if you are using it with the same query repeatedly in different paths.

  2. The parenthesis to set order of matches, you are doing it in the shell so you have to escape them which is never fun.

  3. The fact that -name does not match partial names and there is not a version that do so you have to keep doing stuff like -name "*foo*" and of course you have to escape that shit or risk you shell expanding it. Having the GLOB version is nice but there could have a more ergonomic way to do this type, which I assume is a very common use case.

  4. Actually, doing more complex logical matches is always a pain and it would be nice to have a easier way to do some common operations.

  5. The fact that when you do some complex match then the -print is not automatic anymore or the the behaviour is kinda weird. And is a pain to add it in all logical branches or do it in a way that you do not repeat a lot.

Anyway, sorry for the rant.

[–] harsh3466@lemmy.ml 1 points 14 hours ago

Hahaha. No apology needed. And honestly, all fair points.