Unix: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Alex Bravo
mNo edit summary
imported>Markus Baumeister
(minor stylistic changes and fixed the example which was ignoring the "April to Mai 2006" condition)
Line 7: Line 7:
== The philosophy of Unix ==
== The philosophy of Unix ==


Although there is quite a variety among Unix systems, one common theme is the so-called "small tools that do their job very well."  That is, in a Unix system has many programs, each of which does only a small task.  The user is then able to combine these tools (via [[scripting]] or [[I/O pipe|piping]]) to accomplish higher level goals.  Although this may make some tasks more difficult than common [[graphical user interface|graphical user interfaces]], it allows the user to perfom complicated tasks that were not explicity allowed for by the interface's designer.
Although there is quite a variety among Unix systems, one common theme is the so-called "small tools that do their job very well."  That is, a Unix system has many programs, each of which specializes in a small task.  The user can combine these tools (via [[scripting]] or [[I/O pipe|piping]]) to accomplish higher level goals.  Although this may make some tasks more difficult than common [[graphical user interface|graphical user interfaces]], it allows the user to perform complicated tasks that were not explicitly allowed for by the interface's designer.


For instance, suppose the user wanted to create an archive of all files which reference his vacation created between April and May of 2006.  Under Unix, this could be accomplished as a combination of ''tar'' (the archiving application), ''find'' (a file search application) and ''grep'' (a file pattern matching application).  In a single command:
For instance, suppose the user wanted to create an archive of all files which reference his vacation created between two and three month ago.  Under Unix, this could be accomplished as a combination of ''tar'' (the archiving application), ''find'' (a file search application) and ''grep'' (a file pattern matching application).  In a single command:


  tar czf vacation.tar.gz `find . -exec grep -il vacation {} \;`
  tar czf vacation.tar.gz `find . -ctime +60 -ctime -90 -exec grep -il vacation {} \;`


In contrast, a user in a graphical user would need to use the search application to find such files, wait for the search to complete, and then use an archiving application to create the archive.
In contrast, a user in a graphical user would need to use the search application to find such files, wait for the search to complete, and then use an archiving application to create the archive.
Line 52: Line 52:
|}
|}


These are a few utilities among the hundreds of existing ones.
These are a few utilities among the hundreds of existing ones.  


== See also ==
== See also ==

Revision as of 17:56, 25 February 2007

Unix (officially trademarked as UNIX®) is a computer operating system originally developed in the 1960s and 1970s by a group of AT&T employees at Bell Labs including Ken Thompson and Dennis Ritchie. Today's Unix systems are split into various branches, developed over time by AT&T as well as various commercial vendors and non-profit organizations.

The present owner of the trademark UNIX® is The Open Group, an industry standards consortium. Only systems fully compliant with and certified to the Single UNIX Specification qualify as "UNIX®" (others are called "Unix system-like" or "Unix-like"). Similarly, POSIX defines a standard set of system calls, utilities and standard library functions for Unix-like systems.

During the late 1970s and early 1980s, Unix's influence in academic circles led to large-scale adoption (particularly of the BSD variant, originating from the University of California, Berkeley) of Unix by commercial startups, notably Sun Microsystems. Today, in addition to certified Unix systems, Unix-like operating systems such as Linux, Mac OS X and BSD derivatives are commonly encountered.

The philosophy of Unix

Although there is quite a variety among Unix systems, one common theme is the so-called "small tools that do their job very well." That is, a Unix system has many programs, each of which specializes in a small task. The user can combine these tools (via scripting or piping) to accomplish higher level goals. Although this may make some tasks more difficult than common graphical user interfaces, it allows the user to perform complicated tasks that were not explicitly allowed for by the interface's designer.

For instance, suppose the user wanted to create an archive of all files which reference his vacation created between two and three month ago. Under Unix, this could be accomplished as a combination of tar (the archiving application), find (a file search application) and grep (a file pattern matching application). In a single command:

tar czf vacation.tar.gz `find . -ctime +60 -ctime -90 -exec grep -il vacation {} \;`

In contrast, a user in a graphical user would need to use the search application to find such files, wait for the search to complete, and then use an archiving application to create the archive.

List of Unix utilities

These are some standard Unix utilities:

Name Function
cc The C Compiler
ls List files in a directory
cat Display or concatenate files
cp Copy files
rm Remove files
mv Move or rename files
find Find files
tar Operates on archive files
grep Searches the contents of files
ps Displays process status
make Automates build processes
sh The command line interpreter (shell).

Also, variants such as zsh, csh, tcsh, ksh, bash, etc.

sed A stream-oriented text editor, which can operate in batch mode
vi A visual text editor

These are a few utilities among the hundreds of existing ones.

See also