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.
On that front: to developers-
Please make sure you include bash completions for your tools
Hehe, I’m doing this all the time now ! 3 years ago when I started my linux/self-hosted server journey with debian: CLI only !
Was difficult at times and had a few breakdowns (most got fixed the next day… Sleep/taking some time off really helps !!!)
One thing I’m still bad at… Is taking notes. Haven’t found a good way take IT notes. And I tried sooo many different approaches…
Breakdowns are inevitable; a good night’s sleep is often the most elegant solution. :) I utilize Zim (for note management) as plain text remains a perfectly serviceable option, imo.
I upvoted this comment multiple times while reading.
in my experience, practice, practice, and more practice. but “just git gud m8” isn’t really helpful advice. if you don’t have half a decade on hand, i can make a few more practical recommendations.
a shell that can do argument autocomplete is your best friend. personally, i use zsh + ohmyzsh + fzf + fzf-tab, but i’m sure there are other configs, and i’ve heard ohmyzsh is a bit of a nightmare, though i haven’t had too many issues.
so let’s say you’re running the one rsync command this month, and you forgot the args, just tab-tab and you can search through the arguments with fzf.
For me it was self hosting, aka not having a choice but to learn. I’ll be dead before using remote desktop for that.
Also, self hosting gives you real motivation, because you actually need to do things, carry tasks, not just learning for the sake of it. Your efforts get immediately rewarded with functioning things.
real motivation, because you actually need to do things, carry tasks, not just learning for the sake of it. Your efforts get immediately rewarded with functioning things.
Yes indeed, and that’s true for any challenging skill to hone.
Practice I guess. Especially using cli for specific tasks that is done more efficiently on there than the gui.
Moving files using regex for example is useful. Or finding files with specific phrases in them. Stuff like that
Doing hackthebox or other CTF challenges, Using CLI software, writing bash scripts.
Breaking things.
I’ve done this. It had the opposite effect.
Have someone on Google doing the thing I need to do.
Good cushions
Knowing:
- pwd, ls, cd, cat/less, cp, mv, rm, rmdir, rm -rf, ls -lah
- command --help
- man command | grep thing I care about
- bonus points if you have tldr command installed
I have no clue… I grew up on Windows 3.11 and I thought Windows was kinda lame while MS-DOS was the coolest thing ever because you typed things like magic spells 😅
This right here (more or less - first home PC was Win95, but it still relied pretty heavily on DOS, esp for games). I loved the RPGs where you typed in your actions, too.
When you aren’t in a rush try to do stuff in command instead, looking for a file? , try to find it in command. Need to copy and move a folder? Don’t use your file manager, use the command line instead.
Eventually you will piece together the bits you learn and it starts to make sense, and then you feel like a God. Lol.
I 100% agree. I’m still relatively new but this helped me become much more confident.
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?Thats a good idea, i have not made any aliases yet. Also remembering all of those aliases is another challenge ha. I keep a text file named commands on my desktop with a whole bunch of commands I forget.
I have some mapped to super simple aliases too like
e1
to reboot,e2
to shutdown etc. I don’t remember why I started doing that, but that way I only have to remember which number does what lol.
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.