The UNIX abstraction

  • One is not restricted to files/processes on the local machine
    • tr -dc '[:alpha:]' < /dev/urandom | ssh localhost dd conv=lcase
  • One is not restricted to text
    • ssh -fY localhost xterm
  • Scripts (both shell and python) can be saved to file to become processes (units of logic) themselves
  • Shell scripts generally connect and group existing tools
  • These tools can be thought of as a collection of specific mini languages
    • sed, bc, gnuplot, tr, ...
      echo 'plot "-" with dots'
      echo -e "import random\nfor i in xrange(100000): print random.uniform(0,1)" |
      ) | gnuplot -persist
  • python allows you to write general tools