Shell

  • What is the shell?
    A command line-interface (CLI) to interact with computer.

  • Common shells: bash(supported by almost all UNIX systems), zsh, fish

Shell Commands

  • Basic structure: [command] [flag] [arguments]
  • RTFM: man (command)

Common Shell Commands

  • cd
  • ls
  • cat
  • head: read the first 10 lines
  • less: read larger files
  • mv
  • cp
  • rm

”.” for this directory, ”..” for its parent.

Editors

  • Nano
  • Vim
  • Emacs

Usage: [editor name] [file]

Open Source Software (OSS)

Free and Open Source Software (FOSS) or Free/Libre Open Source Software (F/LOSS)

“Free as in beer, and free as in freedom”

The Four Freedoms

  1. The freedom to run the program as you wish, for any purpose.
  2. The freedom to study how the program works, and change it so it does your computing as you wish. Access to the source code is a precondition for this.
  3. The freedom to redistribute copies so you can help others.
  4. The freedom to distribute copies of your modified versions to others. By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

Open source software:

Term used by some software and technology companies. You may not have the right to use, modify, or redistribute the software or source code.

OSS Licenses: Legal Jiggery-Pokery

  • Copyleft (GPL)
    • “I want to make sure that all versions of GNU remain free.” - Stallman (GNU Manifesto)
    • “a cancer that attaches itself in an intellectual property sense to everything it touches” - Steve Ballmer
  • Permissive (MIT, BSD, Apache, WTFPL)
    • Do whatever you want (basically)

UNIX

Unix’s advantages over non-Unix systems

  • UNIX philosophy: simple, short, clear, and modular code
  • UNIX idea: “everything is a file”
  • Worse is better.
  • Sockets for networking, now copied beyond Unix systems
  • “It’s very simple — you read the protocol and write the code.” - Bill Joy on implementing TCP/IP