At Grace Hopper last week, I was approached by an enthusiastic woman who was a high achiever in her STEM discipline, but was taking a two year interlude to major in computer science. She knew Windows and Mac but felt that, in order to truly understand programming and operating systems, she should understand Linux. She asked me for some resources to get started understanding and using it. Having been an Linux user for some time, I take my knowledge for granted, and I have no idea where most of it came from. I promised her that once the excitement from the conference was over, I’d create a list of some resources and post it here.
File permissions and attributes: https://wiki.archlinux.org/index.php/File_permissions_and_attributes
Shell and environment variables: https://www.digitalocean.com/community/tutorials/how-to-read-and-set-environmental-and-shell-variables-on-a-linux-vps
System log files: https://help.ubuntu.com/community/LinuxLogFiles
The boot process: http://www.linuxnix.com/2013/04/linux-booting-process-explained.html
GRUB 2 bootloader: http://www.dedoimedo.com/computers/grub-2.html
Desktop environments: http://www.makeuseof.com/tag/10-top-linux-desktop-environments-available/
Man pages: http://man7.org/linux/man-pages/dir_all_by_section.html
…and an explanation: http://www.linuxcommand.org/reading_man_pages.php
This list is by no means complete, even though it’s already too big for a blog post, but it should get a beginner far enough along to find the rest on her own.
Update: Good grief, how could I have missed this? The Linux Foundations’s Certification Preparation Guide is free for all to download, and is full of pointers to resources that are relevant whether one wants to pursue certification or not. The most obvious one is edX’s free Introduction to Linux course. Enjoy!