Linux Resources

Linux

Basic Linux

Note that these suggestions are off the top of my head and surely biased by my own needs.

  1. bash shell basics
    1. Navigating the shell.
    2. Using one of the common editors, such as vim, emacs, or nano. My personal favorite is vim, but that's probably because I've been using it (or its predecessor, vi) longer than most redditors have been alive.
    3. Listing (ls) and deleting (rm) files.
    4. Changing file permissions (chmod).
  2. Using the find command.
  3. Using basic Linux tools in pipelines, such as tr, wc, basename, dirname, etc.
  4. Using awk/gawk. This tool is so incredibly powerful. I use it almost daily.
  5. Using apt. Note that apt-get is the older package manager, and although it's largely compatible with apt, there are some differences.
  6. Programming
    1. Learn the basics of bash shell programming, including conditional statements, looping structures, variables, etc.
    2. Definitely learn python, with a focus on python3.
    3. php: see Web Dev below.
    4. Learning C and/or C++ are desirable too, but you don't need this skill immediately. However, knowing these languages will give you better knowledge for compiling packages and eventually writing your own.
  7. Web servers
    1. You won't go wrong with apache2, but these days, I'm using nginx more often.
    2. Installing SSL/TLS certs.
  8. Networking
    1. Using iptables to configure firewall rules.
    2. Using ip route to configure routes.