Hey everyone, I’m relatively new to linux and was looking for some advice/direction. I have been using Mint Debian Edition for around 6mo or so, and want to learn to use the command line efficiently and proficiently.
I have set up EndeavourOS on a backup laptop I have and have been playing with it, reading the Arch Wiki and such, but I feel like I’m not necessarily learning why I’m doing things, just doing what has worked for others.
So here I am. I guess I’m looking for recommendations for books or articles (physical or online) that can help me to learn and understand the workings on linux, and especially the command line.
Thank you all so much.
There’s a book called “How Linux works” and I think you might find a lot of good info there.
And at a glance, this Bash tutorial looks pretty good: bash scripting course
Psst, you link has gone missing
Weird, I can still see it
Very weird. Maybe its the client. Can’t see it in the browser either
Ah, I see whats happened, you didnt put anything in the square brackets:
[](https://www.freecodecamp.org/news/shell-scripting-crash-course-how-to-write-bash-scripts-in-linux/)
should be:
[Cool Tutorial](https://www.freecodecamp.org/news/shell-scripting-crash-course-how-to-write-bash-scripts-in-linux/)
resulting in:
Yup, you’re right. Seems like Voyager handles that correctly, since I can see it. I can add a title to fix it for others though. Thanks for checking it out!
Ctrl-C
will not do what you expect, useCtrl-Shift-C
, or click mouse wheel- There are many better terminal emulators that
XTerm
- If you accidentally press
Ctrl-Alt-F1
, you can pressAlt-F7
to switch back to the graphical desktop - There are in fact many ways to exit
vi
, no need to reboot your PC - There’s no need to suffer through The True Commandline Experience For Real Fedora-Wearing Sysadmins⁽¹⁾, just install
mc
and get all the benefits without typingcd
andls
every time you want to find a specific file
⁽¹⁾ Real Fedora-Wearing Sysadmins don’t use
vi
to edit files, they either write ased
script or usecat
to copy the file to the terminal, then usecat
again to copy the contents of the terminal back into the file by clicking the mouse wheel while typing manually the lines they need to change.https://programming.dev/c/linuxupskillchallenge always tempts me to learn something.
I have been using terminal almost exclusively for about a decade or more. But, when I started I just decided to do it. And that meant that every time I wanted to do something, it would take me forever because I would have to look it up. Eventually, I got faster and faster and now anything I want to do with a gui, I can almost certainly do faster with terminal.
This. Right now you might feel you aren’t learning anything, that you are just copying what says online without understanding it. But little by little, by changing a config line the internet told you, by doing x command to search for y path, you slowly and unknowingly build up your experience with that config file or command. Next time you need to touch that same confg file or command, it’ll be easier, and easier. So on until you just know it and dont need to look it up.
Give it time. Every small step builds toward the big goal. And if you know how to search and learn from the internet efficiently, you dont even need to ask here for advice. It’ll come naturally
The best advice… Just use Linux more… It’s the only way to get familiar with it
One of the biggest things that helped me was setting up virtual machines and installing different versions of Linux in them and just playing around. I found it super helpful because it makes you learn different things (for example you mentioned reading the Arch wiki which is a good resource, but not all of it will apply to Mint necessarily) and as an added bonus, it doesn’t matter if you break everything. You can just restore a backup, or better yet, reinstall from scratch so you get used to the process or better yet, keep breaking stuff until you come out the other side and get things working again!
In addition to rhe other advice, I’d add what helped me the most: install arch from scratch.
Use an older PC you have lying around, or just a VM. Use the installation guide on the arch wiki (or a video on feetube if you prefer to listen to a human explain stuff) and just learn as you go.
Did this with gentoo a while back.
Step one: Find terminal that’s convenient for you. For me it’s yakuake and some use a runner or whatever.
Step 2: Find stuff that you do on a regular basis with your computer and do it with the terminal instead. (Open 3 programs, run a steam game or whatever)
Step 3: Use a bashrc file to make an alias for it.
Step 4: Find stuff a couple of actions you do the same way every time like open 3 work programs, start torrent + vpn or whatever and put them in a bash function inside bashrc.
You might not need it though. The terminal is has mostly only two uses in my opinion. Automate stuff and/or do stuff you can’t do with the UI. I use the terminal heavily for work (programming) but hardly otherwise because the best way to break my OS is to change some OS config with terminal commands lol
terminal is also useful as a cross-distro way of doing things and helps avoid cluttered, bad or ugly UIs. Of course the degree at which someone prefers the terminal over a GUI and for which applications is 95% subjective, the other 5% being when either a GUI is pretty much necessary (i.e. image editing) or viceversa (i.e. automation, looking like a l33t h4x0r to impress the ladies/boys/enbies, managing the 3PBs of monkey memes)
best way: try to use it for daily tasks. Copying and moving files? terminal, moving around? terminal, editing text? vim. Etc etc. Eventually you will learn to use it.
Also check out RobetrsElderSoftware’s “[command] is my favorite Linux command” shorts to find out new commands. Also install tldr (
sudo apt install tldr
on mint,sudo pacman -S tldr
on Arch & derivatives) it’s very helpful when you want more (and better formatted) info than[command] --help
but less thanman [command]
Another resource https://ryanstutorials.net/linuxtutorial/
I have a list of learning resources for CLI tools and scripting here: https://learnbyexample.github.io/curated_resources/linux_cli_scripting.html
I’ve also written a few TUI interactive apps to practice text processing commands like grep, sed, awk, coreutils, etc: https://github.com/learnbyexample/TUI-apps
The only way you’re REALLY going to learn is be actively using things. If everything is just working, GREAT! That’s all you need to know. Just keep enjoying it.
If there something specific you are using this for, let us know and we might be able to help you out.
That being said, one of the easiest to force yourself to learn where everything is, is by using the CLI instead of GUI wherever applicable. Install packages, do updates, change settings…etc.