I’ve been using Linux for about 7 months now and have become a lot more comfortable using the terminal but I feel like there is more that I can learn.
Most of my work is done in a browser or DaVinci Resolve. I do try to use the terminal where possible but it’s limited due to my workflow.
Are there any interactive sites where I can practice/learn the terminal? I’m going through Linux Survival at the moment.
EDIT: I forgot to add some important details.
I don’t have a massive need for the terminal for my current workflow but I think it is important to know (looks good for any future job applications as well) and expand your knowledge on things that interest you when possible.
In the future, I hope to have a home lab/NAS running Linux. I will most likely SSH into that and I’d like to deal with any issues via the terminal.
I use Arch btw (technically EndeavourOS)
Not specific for learning, but you can put any command into ExplainShell and it breaks down the individual parts for you.
As many here have said, but I will emphasize: learn the Bash programming language. Linux Survival is a very good start, and you can just start experimenting right away in your own terminal on your own computer.
To go more in depth, you can read through the manual on your computer by typing “info bash
”. The Info documentation browser is a command line app. You may need to install it using your package manager (“apt-get” or “pacman” or “dnf”).
In the “info” app, you can navigate with the arrow keys, pressing enter on hyperlinks, typing l
(lowercase “L”) works like the “back” button in a web browser, typing r
(lowercase “R”) works like the “forward” button. Info also lets you search the index by pressing i
(lowercase “I”) then entering your search in the prompt, or search the full text by pressing s
and entering your search in the prompt. And q
quits back to the command line prompt. “Ctrl-Z” pauses the “Info” app and drops you back into the command line, and you can resume your “info” session using the “%
” (percent sign) command.
Another thing that can help is to learn about the GNU “Coreutils”, this is a suite of commands usually installed into /usr/bin
or /bin
which provides helpful command line utilities. These are commands like cat
, wc
, sort
, cut
, ls
, du
, cp
, ln
, chmod
and many others. Read through the Coreutils Info manual by typing “info coreutils
”.
And I will also reiterate recommendations from others: learn how to use Vim and/or Emacs. Vim has the more difficult learning curve but is extremely useful for writing scripts. Emacs is better though because it lets you split-screen with manual pages, and copy-paste commands between Man pages, “Infodoc” documents, the shell, and/or a text file, all using only keyboard commands. I think it makes it much easier to learn since everything is integrated together. Ask the Emacs community how to get started if you are interested.
As many people have already said, just do what you need to do. That’s the best way to learn. But if you are afraid you’ll break your system with dangerous commands, use docker or a virtual machine for practice.
In m opinion, practicing with real life problems is the best teacher. There are some ways to cut and convert videos, audio and images via terminal. Maybe there is still a way to enrich or streamline your workflow with that. Maybe a script which will prepare the folder of your next project. Also, xdotools let you automate a lot of sometimes tedious routines.
IMO the best knowledge comes from doing practical examples that actually interest you. I wouldn’t rush that.