# A Quick Introduction to Unix

Unix is an operating system designed for use on any kind of computer or computing device. Current versions of Unix are running on everything from supercomputers to mobile phones. It is a multi-tasking, multi-user system. This means that a person using a Unix system can run more than one job, that is do more than one task at once, and that more than one user can share the resources of a single Unix system. Multi-tasking is common on personal computers now, but it was not always and most desktop personal computers probably still run as single user systems.
Some Unix systems have a graphical user interface (GUI) or graphical desktop environment similar to Microsoft Windows or Mac OS. Nonetheless, to take best advantage of Unix it is worth knowing something about how to use the system without the GUI.
Many Unix systems are released under one or other of the ‘free’ software licences, such as the GPL. So, they are available to everyone at no cost while providing full freedom to use, adapt, and share all the tools of these powerful operating systems.
Unix is also part of the underlying technology of the Internet. Although no operating systems has any exclusive claim to the Internet, many of the standard technologies, protocols and applications that make up the Internet were first developed on Unix systems. Unix is also an attractive tool for internetworking because it was designed to be a mult-user system from the outset. Many of the web servers that serve up the World Wide Web for example run a program called Apache under Unix.

## The difference between Unix and Unix-Like

The original source code for Unix, written by Dennis Ritchie and Ken Thompson for the PDP-11 series of computers, has been lost to history. However, several variants of Unix sprang up. This led to the need to determine what "Unix" was and was not. During a period from the late 1980's to the early 1990's called the "Unix Wars," different vendors struggled to set the standard for Unix. Finally, in 1988, the Portable Operating System Interface (POSIX) standard was created, and later the Single Unix Specification (SUS), which is an extension of POSIX. Any operating system that fully complies with the SUS is recognized as "Unix." Very few operating systems do this, a notable one of which is Apple's Mac OS X. An operating system that behaves in a way similar to Unix, but does not necessarily comply with the SUS, is termed "Unix-like." There is no standard that defines "Unix-like," so it can be debated as to whether an operating system is Unix-like or not.

## Types of Unix

There are many different flavours of Unix but they all have much in common and many of them have a standard core of functionality that is identical. Some popular flavours of Unix are
* Linux Distributions
* Mac OS
* BSD
** FreeBSD
** NetBSD
** OpenBSD
* Solaris
The unity in diversity of Unix systems means that it is easy to develop applications which can run on many different hardware platforms. Although the different Unixes are not identical, programs can usually be easily adapted or simply cross compiled to run on systems other than that for which they were originally developed.

## A note on example material

When this book is used in the classroom a single text file - referred to as science.txt in this book - is required. This text file was created by Jim Tyson from the Wikipedia article Science by simply removing all non-textual elements and all formatting.

## Contents

* Components
* Shells and subshells
* Directory Structure
* Changing Directories
* Listing Files and Directories
* Pathnames
* Files and Processes
* Wildcards
* Exercises 1
* Creating Directories
* Creating Files
* Special Directories
* Exercises 2
* Copying Files
* Moving Files
* Deleting Files
* Exercises 3
* Redirection
* Searching Text Files
* More grep examples
* Permissions on Files and Directories
* Editing Text
* Exercises 4
* My First Shell Script
* Job Control
* Links
* Environment Variables

## Work Required to Complete This Book

TODO

## Other resources

Unix Basics chapter from the FreeBSD Handbook