Unix is an operating system, or family of operating systems, characterised by the use of a hierarchical file system, plain text files and a shell or command line interpreter. It also makes use of a number of small specialised programs that can be easily combined using pipes and filters to execute complex tasks.
A pipe is a way of connecting programs by passing the output of one program as the input into the next program. This allows you to combine programs in a simple way to achieve complex tasks. A pipe is written as a vertical bar '|'. So to pass the output of the
cat command into the
more command you would write:
=code cat | more
A filter is a program that manipulates its input. One of the simplest examples is the
grep command. The
grep command reads each line of its input and searches it for a given word or pattern, if the pattern is found it prints out that line, otherwise it ignores it. So, for example, if you wanted to search all files in a directory for those containing the word 'today' you could do that as follows:
=code ls | grep today
Lists the files in a given directory. The
ls command can also take arguments for sorting the files (by name, size, date and time, …), listing additional file details, listing directories recursively, and much more.
For more information on the
ls command, type
man ls at a Unix command prompt.
Once you have found the command you are looking for by using the
ls command, you can view the files contents using the
The real use of the
cat command is to concatenate (to join) several files together. Passing only one argument to
cat causes it to display the contents of that single file. However, you will find that if the file is larger than the display you are using, the file will scroll quickly before your eyes and you won't be able to really see the contents. For proper browsing of the contents of a file more appropriate commands are
more is used to view a file in a paginated way, one screen at a time. When
more display's its input, it will output as many lines as can fit on one screen of the display, and then prompt the user for when to display the next screen of data. Traditionally,
more only allows for forward navigation in a file, so once a screen of data has scrolled off the display you won't be able to go backwards to see it again. Newer version of
more do allow limited backward movement, as well as search capabilities.
less command does much as the
more command before it and displays paginated input.
less fills in for
more's weaknesses and allows full forward and backward pagination through files, and a number of other nice to have's like searching, etc.