Topic 1: The Shell. missing.csail.mit.edu . What is the Shell? At their very core, shells are all roughly the same: they allow you to run programs, give them input, and inspect their output in a semi-structured way.
Potpourri of Shell Utilities and Programs We can find out which file is executed for a given program name using the which program, e.g. $ which python gives me /Users/dchege711/anaconda3/bin/python...
Topic 2: Shell Tools. missing.csail.mit.edu . Unlike other scripting programming languages, shell scripting is optimized for shell related tasks, e.g. reading from STDIN and saving results into files are primitives.
At the cost of being painful on the eyes. Python scripts are way more readable (and cross-platform) than shell scripts.
Pesky Whitespace foo = bar # Doesn't work because it's interpreted as calling the foo program with the args '=' and 'bar' foo=bar # Now that works!...
Version Control Systems track changes to a folder and its contents in a series of snapshots. Each snapshot encapsulates the entire state of files/folders within a top-level directory.
Git’s interface is a leaky abstraction. While the interface is at times ugly, its underlying design and ideas are beautiful. A bottom-up explanation of Git therefore makes more sense.
The abstraction is leaky in the sense that to wield it effectively, the user must understand the underlying data model, e....
Personalizing Your Shell Put all of your scripts in the ~/bin/ directory, and add ~/bin/ to your path. Beware of conflicting with system commands. One alternative is to prefix your commands with a comma.
References Start all of your commands with a comma. Brandon Rhodes. rhodesmill.org . news.ycombinator.com . Aug 18, 2009.