Any tips on the best resources for learning Linux from bottom to top?

I would love to learn every command, setting, file systems, common issues, etc. Any tips?

Pick your distro, then try to use that 100% as your daily environment instead of running back to Windows or OSX every-time you can’t achieve something easily.

3 Likes

Learning every command is excessive, there’s no point memorising everything if you’re only going to use a portion of it.

A better thing to do would be to know where to look if you need a command, and understand the syntax. For this look to documentation, man pages.

A good start (or it was for me, at least) would be to learn what all the root directories are for.

1 Like

I listen to podcasts with Linux tip of the week. There is also distrowatch with weekly tips. The linux newsletters on the left side of distrowatch also has tips.

There is also the massive Linux journal that they released into the public for free. Not sure if it still up. Im use someone in r/DataHoarders have a backup copy somewhere.

You could also do Humble Bundles eBook. My problem in that is I do not know what is a good book and what is not.

The best method is probably is asking Morpheus to wake you up from the XMPP… I mean wake you up from the Matrix and let Tank upload all the man pages and the entire Arch Wiki up your brain. The problem is finding Morpheus…

That’s just not feasible, even experienced admins need to refer to docs from time to time.

I second the notion as per @BGL to try using it as a daily driver, and REALLY try rather than fleeing to windows.

Also regarding documentation…

Step 1 would be to learn how to access the documentation.

  • man pages - in the terminal you can run man and then the command you want the manual for. try starting out with “man man” to read about how the manual pages are organised
  • /usr/share/doc has documentation for a lot of the software. have a read
1 Like

Using a distribution is a good first step, but I don’t agree that will teach you very much. I know people that have used Linux for years as a desktop computer but are baffled by simple sed commands or bash scripts. That being said, using it day to day will make you comfortable with the environment very quickly.

You didn’t mention a medium or cost, so I’ll just vomit the resources I’ve used in the past and enjoyed.

For free as in free beer, you have Linux Journey and Linux Command dot org.

https://linuxjourney.com/

http://linuxcommand.org/

This is all about getting comfortable with the platform. Basic navigation, task and system management, installing software, things like that.

The freemium with subscription option is Linux Academy

Probably waaaay more than you are asking for, but they have a ton of content on simply using and managing Linux.

Udemy has been a great resource for me personally. Not just with Linux, but software engineering, computer science, and when I’m learning something new (Elasticsearch, HAProxy, etc.).

They have two great Linux courses. One is done by Wendell himself.

At the end of the day you are going to have to read official documentation to get a solid grasp on something. A lot of the manual pages have examples, which is nice.

The man page for awk has one of the better listed examples I’ve seen in a while.

The problem (sometimes) with manual pages is they are written by very technical folks who sometimes have English as their second, third, seventh, or twenty third language. It can be very dry and direct. I recommend having another editor open or a pen and paper your first couple of trips through to take notes.

Manual pages are separated by sections and start to really make sense when you look at them.

Shameless Plug: I did a whole podcast episode on the anatomy of a man page

Here are the show notes and link to the episode if you’re interested:

Man Page Sections

  1. User Commands
  • Programs supplied by GNU C library
  • git
  • htop
  1. System Calls
  • System calls provided by Linux kernel
  • write
  • read
  1. Library Functions
  • Standard C library functions
  • pthread_create
  • rand
  1. Devices
  • Devices in /dev and other places
  • loop
  • zero
  • sd
  1. Files
  • File formats and processes
  • resolv.conf
  • passwd
  1. Miscellaneous
  • UTF-8
  • cgroups
  • daemon

How to Read a Man Page

  • Command, section number, implementation (Linux Programmers Manual vs POSIX Programmers Manual)
  • Synopsis
  • Many (all) options
  • Can be read literally or as an example
  • Description
  • Technical details, brief explanation and history, program associations
  • Commands
  • How to interface with application
  • In the case of less, you are given navigation instructions
  • Options
  • Arguments or flags
  • Some documentation (sed) will use “Commands” and “Description” for technical usage
  • Additional Information
  • Environment Variables
  • Application specific commands or arguments (not POSIX or Linux, such as git)
  • Technical documentation such as security concerns, additional interfaces, and use cases
  • “EXAMPLES” sometimes included in this area
  • Author or Organization information
  • See Also

Things to Lookout For

  • Look for underlines or italics (underlines are not literal, but implications)
  • Learn to navigate and search
  • /
  • h, j, k, l
  • n, b
  • Ctrl f, Ctrl b
  • gg and G
  • A and 0
  • b/e, W/E
  • q

Resources

2 Likes

Yeah, daily driving linux is not the be all and end all, it’s merely a first step to get comfortable with the very basics and building from there. Walking before you learn to run, etc.

But, if you commit to it, and commit to not fleeing to windows, if (and more likely, WHEN) you break it you can learn a lot in the process of fixing it :smiley:

3 Likes

learn to use man, info, apropos, and gnudocs. Usually two of those will be installed in your distro.

I was just about to post about apropos when i got the alert for this thread, but you did :smiley:

I didn’t learn about apropos for quite a while. It’s definitely one to know.

For the OP: apropos = what is.

use "apropos " and it will return man-pages related to that concept or keyword.

Which you can then read with “man”. Its good if you know what you want to do, but not what command does it.

2 Likes

The community forums for the distro you choose can be a great source. If you are having trouble with something the MAN command or google couldn’t help you with.

For example:

Linux Mint: https://forums.linuxmint.com/

Manjaro: https://forum.manjaro.org/

Here are some quick references:

40 commonly used Linux commands: https://www.makeuseof.com/tag/most-used-linux-terminal-commands/

9 Lethal Linux commands you should never run: https://www.makeuseof.com/tag/9-lethal-linux-commands-never-run/

Here are some good channels:

Chris Tidus Tech: https://www.youtube.com/channel/UCg6gPGh8HU2U01vaFCAsvmQ

Learn Linux TV: https://www.youtube.com/channel/UCxQKHvKbmSzGMvUrVtJYnUA

You, are a good kind person, and I truly hope they write songs about you one day. So, please accept my appreciation for you taking the time to put a rookie on the path to Linux freedom!!! THANK YOU THANK YOU THANK YOU!

2 Likes

Hey @shotbythot, If you are looking for a book to learn about Linux, may I suggest one called The Linux Command Line written by William Shotts.

1 Like

Wow, of course you may! Thank you so much.

Ok, will do and thanks so so much for the info! So great to have a new PC built and now just learning to do so many great things in Linux! You are all so helpful and I want to thank you from the bottom of my heart. Thank you so so much!

1 Like

looking it up now to purchase! Thank you very much!

Chris Titus is an amazing guy, thanks for the heads-up!

Every time I return to find new info posted, I laugh at the “vomit” comment and really appreciate you!