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)
I have never practiced using the terminal. The only way I learned was using the terminal to do my tasks and fix things when they broke.
In the future, I hope to have a home lab/NAS running Linux
Just start this project. That will teach you about how to use the terminal in a practical setting
Want to add a few things to try
- Create a new file and edit it with nano.
- Create and navigate directories
- Copy a folder to another spot
- Update your system and install a package with pacman
- Start, stop, and check the status of a service. Maybe sshd
- Use find and grep to find all files with a certain extension (this will involve the wildcard character
*
This is just a small list off the top of my head. Doing your everyday tasks with the terminal is a great way to start to understand how it works.
- Watch this video to understand the Unix philosophy towards tools (this is obviously outdated now but I find it very interesting and it gives a great intro to Unix-like systems from the programmers perspective)
This website has a bunch of great practice “wargames”. You’ll learn a bunch about common linux commands and the different options for them. It also provides you with some great tips on what to google if you get stuck. I reccomend starting with bandit.
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.
The Linux Experiment fairly recently made a video about this: https://tilvids.com/w/w5SrXQUhk1a5iEtE9xPWgS
If you just want the links:
- https://linuxjourney.com/
- https://training.linuxfoundation.org/resources/?_sft_content_type=free-course
- https://linuxcommand.org/
- https://cmdchallenge.com/
I also recommend learnlinux.tv and especially the YouTube channel
Since you’re on Arch, the Arch Wiki is a great resource if you ever need to look something up. If you just want to improve your CLI skills and make the life in the Terminal more pleasant, I’d recommend the fish shell. (Check this out if you want a video demonstration) It has a great autocomplete feature and shows you a short description of each command, which might help you to learn more about it. It’s also very flexible and customizable. (Check out this video for some neat tricks) My last recommendation is tldr, it’s a very useful application that gives you a short summary of how to use a command. These summaries are much easier to read and understand than manpages. I assume you know about manpages, if not, that’s another recommendation.
IMO the best knowledge comes from doing practical examples that actually interest you. I wouldn’t rush that.
Not specific for learning, but you can put any command into ExplainShell and it breaks down the individual parts for you.
Most terminals start a shell as the first program, so you’re not really learning “Terminal” so much as whatever program it starts first. Bash is a pretty common shell, so you might want to search for things like “Bash examples” to get a feel for it.
If that’s too simple, or you blast past that, then reading bash’s manual might give you some more ideas. The
man
command is your friend. The manuals are not necessarily quite so friendly, but they’re aimed at someone who’s already somewhat competent.Anyway, here’s one link from a Bash examples search I did: https://linuxsimply.com/bash-scripting-tutorial/basics/examples/
If Bash isn’t what you have where you are, substitute its name instead. Zsh and Fish are pretty popular. There are others, but I don’t think any mainstream Linux uses them by default.
To check what shell you’re using try an
echo $0
orecho $SHELL
.Finally, a bit of advice: Don’t go running commands you see on the Internet unless you’re sure what they’re going to do is something you have no problem with. And be careful with copy/pasting from web pages you don’t know or trust - I can’t vouch for the examples in the link I gave earlier, for example. It’s possible to make things look like a completely innocent command but when pasted does something else entirely.
I’ll definitely give
man
some more love. Thanks for the adviceCheck out
tldr
as well. I generally use it far more often thanman
Or teeldeer, it’s just tldr rewritten in Rust. But it uses the same tldr pages.
Good lord. How on earth do they prevent people from abusing this to no end?
Honeypot? Dunno. Good discussions about it on hacker news.
Try to avoid using any file manager (uninstall them all if it is difficult to avoid running them). So you will practice in using file manipulation commands.
What, things like sudo rm -f /
that wouldn’t do anything except give you an error that / is a directory