Commands to Climb the File Tree
This closely follows the textbook Section 1. I mention a few things I want to expand on, but mainly it keeps your absent-minded professor on track.
  1. Ch. 1-3: Exploring with the shell.
    1. Terminal emulators.
      1. Used to run the shell.
      2. Originally physical devices.
    2. Basic commands from text: date, cal, df, free, exit
    3. Virtual terminals.
    4. File system tree.
      1. Directories, files, etc.
      2. Usual GUI view shows the tree.
      3. Shell is like standing on the road instead of looking at the map.
    5. Commands pwd, cd, ls
    6. Relative and absolute path names.
    7. cd shortcuts.
      1. cd   to home
      2. cd -   to previous
      3. cd ~username   to that user.
    8. Home directory.
      1. Located somewhere in the tree.
      2. Just like other directories, but you are allowed to create files there.
    9. file and less commands
    10. File system tour (ch. 3).
    11. Symbolic links, and /lib
  2. Ch. 4: Manipulating files and directories
    1. Wildcards, for representing groups of files.
      1. * Match any characters.
      2. ? Match one character.
      3. [characters] Match a class of characters.
      4. [!characters] Match not a class of characters.
    2. mkdr, rmdir: Creating and removing directories
    3. cp: Copy files.
      1. Single files.
      2. Multiple files to a directory target.
      3. Overwriting and the -i option. Commonly aliased.
      4. Plain cp won't copy directories, but -r.
      5. Use -u only copy new files.
    4. mv: Rename (move) files.
      1. Single or multiple files, directory target.
      2. Can overwrite target. Again -i can warn you.
    5. rm: Delete (remove) files
      1. Single or multiple listed files.
      2. -i option again.
      3. Use -r to remove an entire subtree.
      4. There is no undo!
        1. When you remove it, it's gone.
        2. The -i option can help. Often, your distro will alias it.
        3. Book suggests testing with ls first.
    6. ln: Links.
      1. Symbolic v. hard links.
        1. Implementation difference.
        2. Hard limited to a physical device.
      2. The -l and -s options to cp.
  3. Ch 5: Commands
    1. Types of commands.
      1. Shell builtins
      2. Executable commands
        1. Locations.
        2. The PATH
        3. The which command.
      3. Aliases
      4. Shell functions (later).
    2. The type command.
    3. Documentation
      1. help: shell builtins
      2. command --help: might give you some
      3. man: For manual. Display the manual page.
        1. Sections.
          1. Say “man N topic” to select a section.
          2. Sections traditional, and may be kind of odd these days.
          3. “man N intro” usually gives some general info on the section.
          4. Sometimes names reused.
            1. Section 1 User commands.
            2. Section 2 System calls.
            3. Section 3 Library functions.
            4. Section 4 Device files.
            5. Section 5 File formats.
            6. Section 6 Games.
            7. Section 7 Misc
            8. Section 8 Administrative commands.
          5. Not all programs have a man; GUI programs often don't.
        2. Pages are formatted and displayed using less.
        3. If it shows you the bash man page, you might want to use the help cmd.
        4. Pages are stored in /usr/share/man and other places.
      4. apropos: search the man pages.
      5. whatis: brief description.
      6. info: longer command description
        1. Info system created by gnu as a man alternative.
        2. Entries are non-HTML hypertext documents.
        3. Movement is by control codes, not mouse clicks.
          1. Move around with arrows.
          2. Scroll with page-up (or backspace) or page-down (space).
          3. Follow a link by moving to it and pressing enter.
          4. Next, previous, or parent nodes: n, p, u.
          5. Quit with q.
      7. Distributed documentation
        1. Look in /usr/share/doc/program
        2. Misc. doc files distributed with the program
        3. README, COPYING, many others without much structure.
      8. And fear not Google.
    4. Using the alias command. List, create, use, unalias.