tl;dr: Gradual exposure over time.
I got used to it through work, as I had to ssh into a server to run simulations. That mainly involved navigating the file system and text editing (which I used vim for) to make some basic Python and bash scripts, including sed and awk. The latter two I never got comfortable using, and haven’t really touched since.
I was using macOS at the time, and after using that for work, the terminal in macOS got at first less scary and then a preferred way of accomplishing certain tasks. On my work Windows computer I started missing having a proper terminal around, and I eventually found Cygwin and later Git Bash to give me that terminal fix in Windows as well. Especially with the latter I noticed few differences and could use it to a large extent as I would have on my then Macbook.
2-3 years ago I was in need of a new computer, and at that point a laptop with Linux on it was not a very scary prospect. That is by no way saying I went into Linux as an expert, far from it, and I am still very much a newbie - but opening the terminal to work with things is not at all a barrier, which helps a lot if you use Linux and want to be able to do some changes from the defaults. If you don’t want that, I think you can go far these days without opening the terminal, but it is certainly a good skill to have.
/
to search man pages was a gamechanger
Mastering the command line? A few observations. First, consult and take notes (yes, even seasoned terminal veterans forget syntax.) Secondly, embrace tab completion. It’s your friend, and a surprisingly effective substitute for remembering every single command. Third, the true test: procure a VPS or remote server and exclusively use the command line. No GUI crutches allowed. It’s a digital wilderness, and you’ll learn to navigate it.
Lastly, and this is non-negotiable: keep a terminal window permanently resident on your desktop. Consider it a vital organ, deserving of its space. It’s a constant reminder of the power you wield, and a readily available portal to a world beyond the pretty buttons.
I upvoted this comment multiple times while reading.
Practice.
I’m trying to make it a regular thing but my problem is I like to get my hands dirty by working on projects. The snag is that I get stuck a lot due to not knowing basics. My personality gets in the way = get dirty and learn fast(not necessarily shortcuts). Maybe I haven’t found that right source to learn that not too beginner and not too intermediate. Maybe a cool cluster of small projects to setup your computer then environment to setting up projects to do your everyday life takes to what you really want to learn.
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.
Yeah that was it for me. Just keep regular backups and bear in mind that you’ll probably break stuff at first. But once you get the hang of it, it’s like a whole other level of control over your system.
Also I’m not dyslexic but would things like tab completion and aliases help maybe? I sometimes shorten often-used commands with aliases just for convenience (as an example, I use
rsync
a lot, particularly the commandrsync --ignore-existing -rav
which I just shorten tors
to save time) so maybe that could also be used to avoid mis-spelling?
I set it so when I hit CTRL-Tilde it drops down from the top of the screen.
Quake-style, baby.
CTRL-tilde or CTRL-backtick?
Yes
Using computers since before GUI was available… Sometimes I think we ought to go back to it
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.
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?
Konsole and yakuake. Bear in mind that the terminal I was comparing them to was Windows’ CMD.EXE, and anything is better than that.
Yakuake is a Quake-style terminal, which means that you can open and close it with an F-key, and it scroll down from the top of the screen. This is both cool-looking and convenient. I like to have some window transparency, so that I can see through the terminal window somewhat. I also like to use a nerd font like Fantasque Sans Mono.
Install some terminal apps
Examples:
https://github.com/clangen/musikcube
https://github.com/yorukot/superfile
This is the font I use
https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/Meslo/M-DZ
I also use ghostty because it’s themeable, I found adding transparency helped me because i can have whatever I need to see under the terminal (helps for command cheatsheets)
These do look nice 🤩 Thanks!
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.
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.
Colors and ASCII graphics.
It doesn’t have to be complicated. Or fancy.
But breaking things up so it’s readable helps massively.
Or a nice prompt that creates a distinguishable marker across output.
And the message “DON’T PANIC” in big friendly letters.
And make sure you know where your towel is.
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.
Working in a remote environment
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.