“Moving efficiently in the CLI”


This is a *very* handy graphic. I’m still stuck on arrow keys too because I don’t remember the shortcuts

(Caveat, these do depend on your particular shell and distro so do check that they work the same)



From the point of view of a non-technical person, that looks incredibly non-intuitive. If not outright intimidating.

Sometimes you use CTRL. Sometimes you use ALT. Why does ALT-B go to the end of the word in one direction, but the other is ALT-F? It seems like there's no particular logic to it and it's all very complicated.

I have to assume it looks much different to someone with experience and skill.

@Nezchan @cypnk i definitely wouldn't describe it as _intuitive_, but it's part of a larger set of conventions and patterns that make a lot of it predictable once you know some other stuff (or other stuff predictable once you know it).

specifically, it uses readline:


...which is common to a bunch of different interfaces, and uses shortcuts originally from emacs and common to a bunch of other text editors. i think they might even work in macos text inputs.


@cypnk @Nezchan it _is_ complicated, but at least speaking for myself, it's one of those things where you learn some mnemonics (ctrl-f for forward, ctrl-b for back, that kind of thing) and eventually they're just kinda muscle memory that you can apply all over the place.

most technical people i know seem to have a favored subset of things like this, and ignore the rest.

@brennen @cypnk

I think the operative word there is "technical people". You get used to this stuff through use, muscle memory, whatever it may be. It's something that, as you say, you use in a few different interfaces so it's your standard.

But the other side is that this kind of diagram, especially when presented as the "efficient" way, that I think scares folks not comfortable with CLI stuff. I can manage a few things, and there was a day I used it a lot more. But that was a long time ago.

@Nezchan @cypnk yeah, there may be better ways to convey this sort of info. i've spent time working on materials theoretically for a less technical audience like this stuff:


...and though i'm not totally ashamed of the cartoon penguins and such, i think i've mostly failed. it's a hard problem.

i guess one thing i've learned is that what clicks for one person is often very different for others, and many approaches are needed.

@cypnk @Nezchan and there are also certainly very many ways that things like command-line UX could be improved for everyone and made less painful for new users. i'm afraid it's often not as active an area of research as it could be because there's a pervasive belief that these environments are only for power users, as opposed to being environments where more people can _learn_ to be a power user.

@brennen @cypnk Cartoon penguins or no, it's good that there are people making guides that recognize how this stuff can be kinda scary to the uninitiated. Or at least forbiddingly complicated.

I think one thing that acts as a barrier to people switching to Linux is the belief that "oh shit, I'm gonna have to learn to use the terminal and that's difficult". Which is less and less true all the time, but the belief is still out there.

@cypnk @brennen Sometimes people are surprised that I, as a pretty non-technical person, prefer Linux. But as I said, the GUI for most distros is a hell of a lot easier and more flexible than the old days, and there's very little I need to do via CLI.

And what little there is, I can do a search on the internet and find a copy-paste solution to almost anything. It's great!

@Nezchan @brennen There’s a down side to being a “technical person” too

You get comfortable with the “efficient way” or the “right way” (whatever that means) and any UI change, or worse,” a change to a GUI, feels jarring and in some ways frightening. Ironically, your proclivity to customize your programs and even your CLI makes you a less flexible person and prone to nostalgia and stubbornness

At least that’s been my experience

@cypnk @brennen Oh, for sure. And I imagine that's a big reason why there's so many "legacy" ways to do things, because overhauling things really puts a lot of people out. Especially established people who don't really see need for a change.

Sign in to participate in the conversation

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!