Mastery Table: The Shell: Files and Directories

Feb 23, 2013 • Geoff Oxberry

I don’t know that I’m an expert on the file system, but I figured since I’m pretty weak on shell scripting (I avoid it in favor of Python), I’d work on that.

Novice

  • Knows files exist
  • Can create files using applications with GUIs and invoking the “Save” or “Save As…” commands
  • Knows directories exist
  • Uses graphical utilities to examine contents of directories
  • Uses graphical utilities to navigate file system
  • Has heard of “the command line” or “the shell”, but rarely uses it
  • Logs in via graphical user interface

Intermediate (what someone would learn after taking the class)

  • Comfortable with command line user interfaces
  • Can invoke the command line in their OS using a terminal emulator
  • Can log in via the command line
  • Can check user ID
  • Can print current working directory
  • Has big picture view of filesystem organization; there is a root directory, and that there exist standard system locations for certain types of files
  • Understands the “grammar” of file names (directory separators, filename extension may indicate file type, and so on)
  • Can use command line to examine contents of directories
  • Can use command line to change directories
  • Understands relative and absolute paths, the differences between the two, and some idea of the appropriate uses of each
  • Understands the meaning of the special directories “.” and “..”
  • Knows what search terms to use when a problem is encountered with navigating the file system

Expert

  • Familiar with flags of directory listing commands on their operating system
  • Understands the output of those commands with different flags, and when to use them
  • Knows the actual standard system locations for certain types of files, and understands the standard(s) governing the file system of their operating system
  • Familiar with using directory listing commands (or the find or locate commands) to pipe lists of files to other commands
  • Understands the concept of hidden files and directories
  • Familiar with shell scripting commands that can be used to test for existence of files or directories