I have some basic experience but I wanna be proficient and have a cli based workflow; I’m currently on Arch with GNOME
Try to install arch without archinstall and look on the arch wiki and set up everything up in the terminal(sound, wifi, file managment, etc). When you get stuck just use google or the arch wiki(stay away from ubuntu guides bc they are usually copy and paste). If you understand the base tools try writing bash scripts to automate tasks that you do in your workflow. Good luck!
Switch to Gentoo. Either your command-line abilities will improve, or you will run screaming into the night before you manage to get X (or Wayland) up and running. 😜
Trial by fire!
Just start doing things using it and lookup how to do things you don’t know. Enough time and you’ll be good at it.
When i first started woking at a Unix maker… my task for my first 2 months was to know and document every file in /etc, /usr/bin/ and /bin…
After that month, my mentor ask me …
what /usr/bin/ldd does ? and show me an example.
First thing I’d do is ditch the GUI file manager: get comfortable with cd, ls, mv, rm, etc.
After that, maybe start with basic text manipulation, like grep, awk, sort, uniq, etc. This ties in nicely with IO redirection, which is essential for a “CLI based workflow.” Get comfortable with pipes and file redirection, it’s extremely powerful!
Writing shell scripts is another super useful exercise: any time you find yourself running the same set of commands multiple times, think about making it a shell script. You may end up with some really useful little custom tools that way.
Just… Use it more, really the only way to get better at something is to do it more.
Unplug your mouse. Seriously. Do it. It might sound like the “kicking and screaming” method but you’ll learn to rely on your keyboard even for GUI tools and you’ll vastly improve how fast you navigate your computer. You should find yourself more and more in the terminal, obviously, but you may learn also some nice tricks with everything else.
Solid advice.
It boggles my mind how few people use hot keys and ALT to navigate menus. Something that has probably been a standard on computers since as long as I have been around (the 70’s) …
Lots of people are suggesting using TUI applications.
While I don’t disagree that will make you more comfortable spending time in the terminal, you’re not really getting better at the command line (CLI).
I recommend you learn the basics of how the shell works. This is a good resource: https://effective-shell.com/
Dedicate a set amount of time when you only use the cli to accomplish things. Pick simple, low risk things like cleaning up unneeded downloads in your downloads directory. Start with one file then try wildcards, brace expansion and regex.
View logs and grep to find specific events. Investigate (read only) what type of data is provided under different directories under /.
Use online resources to learn a scripting language, bash is convenient to start with, as it’s a common default shell and can be used for scripting. Learning bash can translate to one liners and eventually scripts.
This is a good resource, but I would recommend to not read it like a book, but maybe investigate sections of interest after you get a feel for some of the early topics: https://tldp.org/LDP/Bash-Beginners-Guide/html/
Focus maybe on some CLI tools, like text editor. I use Vim, it was pain to learn but been worth it, since you don’t have to leave the keyboard for anything. Once you learn the layout you can use it in other IDEs that also, many have plugins or built in support for Vim layout (JetBrains IDEs do) so I can use the same key map in desktop apps to do C# and C++, etc…
Also use Vim Mode that mode in the https://obsidian.md/. Which is great since you can also use Vim in the CLI to edit the Markdown Files.
Good Vim Cheat Sheet, bit confusing but as you get use to VIM it makes more sense.
http://materials.ucsd.edu/doc/vim_cheat_sheet_for_programmers_screen.pdfAlso this book is pretty handy, the 3rd edition dropped GUI apps and focuses 100% on CLI.
https://linuxpocketguide.com/
Handy if you have a Steam Deck also.Start experimenting and break stuff. Set up some good backups and snapshots, learn how to use those well so you aren’t completely screwed when something is unrecoverable, and then go to town on all the experimental software you read about but haven’t tried. Breaking stuff will quickly make you proficient at the command line, and help you to understand how things work underneath your GUI.
And have fun!
Linuxcommand.org is a great start
what do you mean with “CLI based workflow”? If it’s about not using the gnome utilities like wifi, just check the arch wiki, pretty much everything is explained in there
Start to use command line tools like mutt, links and so on. Okay, maybe not links, but mutt is still the best MUA around.
And whenever you are asked to get some data out of an excel sheet, export it to csv and use sed, awk, grep, wc, cut, uniq, sort, head, tail and stuff.
No, stuff is not a command afaik 😁
“Stuff” should be a compression tool, you tar it, then gz it, then stuff it down even further into tar.gz.stuff
Someone already mentioned The art of command-line. It’s a start.
And just use it… you’ll get better at it with time and practice.
Also, make sure your use of the CLI enhances your workflow, or it won’t work.