Skip to Main Content

DH Boot Camp for Librarians

Resources for the Digital Scholarship Services Librarians' Boot Camp.

Key Terms

applications (in Unix architecture): The "outer layer" of the diagram that imagines the hardware and kernel at the center of a computer.  "Applications" can refer to any program a user executes, whether it's a tool such as grep or a complex piece of software such as a web browser. 

arguments: Also called "flags," command arguments modify the behavior of a piece of software.  For example, the -c flag, when passed to the wc command, tells wc to count the number of characters instead of reporting the number of characters, bytes, and words.  Note that the filename at the end of a command is also an argument; in the example grep -i 'text' file.txt,  the arguments are -i, 'text', and file.txt.  Of those, -i is a flag.

bash: The "Bourne Again shell."  This shell is probably the most common Linux/Unix shell.  Its unusual name is due to its lineage.  Its earliest direct ancestor is the "Thompson Shell" (written by Ken Thompson, 1971); the "Bourne Shell" (also called sh, written by Stephen Bourne, 1977) was meant to be an improvement on the Thompson Shell, and the "Bourne Again Shell" (written by Brian Fox, 1989) was in turn an improvement on the Bourne Shell.

CLI: Command-line interface.  In CLI computing, users issue a command and receive output (often on screen, but possibly directed to another file or even to other commands).  That property of the shell -- the ability to chain commands by using one command's output as another command's input -- makes it extremely powerful

filesystem: For our purposes, a "filesystem" is just the sum total of files and directories on your hard drive.  More technical discussion of "filesystems" might refer to particular strategies for organizing and keeping track of information on a hard drive (e.g., FAT32, NTFS, ext3, Apple File System, etc.).   

hardware (in Unix architecture): As in other contexts, "hardware" simply means the physical components of your computer.  We represented hardware at the center of the Unix architecture diagram.

kernel (in Unix architecture): The kernel is a special piece of software that manages communication between applications and the system hardware.  It also tracks and allocates system resources on behalf of applications.  You can think of the kernel as the "core" of your operating system.

loop: A piece of code that executes one operation repeatedly on multiple pieces of data.  For example, in the bash shell, you might create a loop to rename hundreds of files so that you don't have to do it manually, one by one.

pipe: Pipes are a fundamental concept of computing in Unix.  Pipes allow you to reuse the output of one program as the input to another program.  For example, you might use grep to search for key words in a set of files and then pipe the output to wc to count the number of results.  You can create pipes by using the vertical bar character, | (shift-backslash on most U.S. keyboards).  

pipes and filters model: A cornerstone of the Unix philosophy is called the pipes-and-filters model.  In this model, programs are understood as filters for data, and users can employ pipes to reuse the output of one filter as the input to another.  For this model to work, programs have to use the same kind of data, and that's why they all rely on plain text.  A corollary to this model is that programs should generally do one thing instead of many different things.  They should be able to accept input from anywhere and create output that can be reused elsewhere.  That kind of flexible modularity among lightweight tools is a foundational characteristic of Unix.

prompt: The piece of text that indicates the shell is ready to receive input.  Often, the prompt will end with a dollar sign ($).  You enter commands at the shell prompt.

redirection: Most programs just show you their output on screen by default, but Unix allows you to direct that output into a more useful place -- for example, a file.  The angle bracket (or "greater than" character) is the redirect operator: >.  Two angle brackets instruct the shell to append to a file instead of overwrite it.  You could use a tool like grep to generate a subset of data from thousands of text files and then store that subset in a new file: grep -i 'some_text' *.txt > results.txt.

shell (in Unix architecture): The piece of software that sits between the user and the kernel.  It's where you type commands and where those commands generate output. 

standard output: The terminal screen.  This is where programs produce output unless instructed to do otherwise, i.e. via redirection or piping. 

 

Online Resources & Citations