I think just doing it more, and thinking it’s cool to interact more directly. At least that helps me. I do feel bad for dyslexic peiple though, it’s a lot harder for them to use CLI.
Using computers since before GUI was available… Sometimes I think we ought to go back to it
For me, it was having a cool-looking and user-friendly terminal app.
How do you get a terminal app that’s cool and user-friendly? Any recommendations?
I set it so when I hit CTRL-Tilde it drops down from the top of the screen.
Quake-style, baby.
Maybe controversial, but the fish shell. I know it’s not strictly bash syntax, but the OOTB features are just so user-friendly. The most helpful features for learning: the autocomplete (with descriptions of subcommands and flags!) and the fuzzy history search.
I write bash scripts all the time, and am significantly more knowledgeable than anyone else on my team (admittedly frontend) because I got comfortable in fish.
I use Fish sometimes, even when I know exactly what I need to type, but just don’t feel like having to type out entire file names.
As someone who started with nothing but command line - Timex Sinclair, Apple IIe, DOS, I can’t even relate to the concept of being scared of command line.
The need to do it plus the realization that you can script anything based on it.
Drivers. Using recovery mode. Administration. Wanting to describe what to do rather then manually do it. Wild cards are really powerful and so is find and xargs. The text processing commands are useful too.
The other thing is having started computing in the 1970s. Everything was command line back then. GUI systems only become universal in about 1995.
Virtual environment? Taking notes of what they did?
Anyway, tell them it’s okay you experiment and mess things up. Show them how to backup their important work. Then walk them through inevitably having to reinstall their distro.
They’ll learn that you can just keep moving forward, fixing and learning as you go.
- making it ✨pretty✨
- using it a bunch
- man pages
- arch wiki
Working in a remote environment
Colors. And a nice, readable font. Make your terminal pretty so you feel good every time you interact with it. Think about window dimensions (I personally always find the standard 80x24 too small), maybe set up some manual tiling so you can have two terminal windows fill your screen. Use the keyboard to move around your desktops.
But mostly, colors.
And the message “DON’T PANIC” in big friendly letters.
And make sure you know where your towel is.
Stumbled across a game that teaches the command line as you play it. Seems like a good place to share https://gitlab.com/slackermedia/bashcrawl
personally, writing and saving simple scripts - IE project based learning - is how i got time in the saddle.
In my experience repetition helped. Not memorization, but more like muscle memory.
Also, ensuring to never copy and paste commands but to type them in manually yourself. It’s hard to enforce this on yourself, but worth it.
I appreciate that this article started with “ways to reduce risk” because that’s an extremely valid concern and tied to why you shouldn’t ever copy and paste. The one time in my early Linux forays where I copied and pasted I wiped the wrong drive. It definitely taught me to always manually type it in and not get too lazy, because what you copied might not match what you want to do exactly.
Also, ensuring to never copy and paste commands but to type them in manually yourself. It’s hard to enforce this on yourself, but worth it.
“Command: sido not found…”
As a fan of german rap this gave me a good chuckle. Thx.
What helps me is to understand what commands acronym means. For instance cp for copy, mkdir for make directory, blkid for block id, ls for list (not too sure about actual meaning for s) and so on!
Nice tips about ctrl+r to search in command history. Was not aware it existed!
pwd for password, man for mansplain, and dd for destroy disk
Hey, the first two don’t sound quite right
‘ls’ is an abbreviation for ‘list’, not an acronym. Like copy -> cp, and the other keystroke saving abbreviations.
Okay, this is not Linux-specific, but it’s about a transferable skill:
What helped me get comfortable and learn a lot of basics was setting up NetBSD. The basic install throws you into a basic command line, with no graphical interface installed and not even the internet configured. But the online guide for setting the system up is incredibly well-written and teaches you all the concepts you need to know.
After doing this, I was familiar with a larger set of terminal commands, knew how to use vi, had a bunch of practice setting up config files in CLI and even finally learned how pipes work. It’s a very enjoyable experience, the guide is so good I didn’t feel overwhelmed once and anything you have to look up is tied to a problem you’re solving (like cursor movement in vi).
It also teaches you how NetBSD is structured. It’s not Linux, but similar enough to understand a lot of how and why things are done in Linux systems