Cat is ostensibly a tool used for concatenating (that is, chaining together) a number of files to standard output, but in practice it is often used to display the contents of one file to standard output (effectively catenating one file), or using it to create small files or use the terminal as a scratch pad (by using shell redirection).
Say we have two files, file1 and file2. If we wanted to just display the two files to standard output, we could use
cat file1 file2
which we can then use to quickly display the contents of one or many files on standard output.
If we want to create another file file3 which has the contents of file1 and then the contents of file2, we could use
cat file1 file2 > file3
which makes use of shell redirection. The cat program displays the contents of file1 then file2 to standard output, and the > tells the shell to run the program with the standard output in the contents of file3.
We can use shell redirection capabilities to have cat act as a bare-bones text editor. cat, without any arguments, simply echoes lines typed from standard input to standard output. If we redirect the standard output to a file, we get lines we type in sent to that file. For example, if we wanted to create a dotfile quickly, say, we could simply use cat as follows
cat > .somefile
and then type in the contents, using Control-D to finish (Unix and Unix-like systems will stop accepting input when it recieves Control-D). Of course, this is impractical to use to write large files since we can only edit line by line and cannot edit previously entered lines.
If we merely want to type ourself a quick note to throw away (eg, have it resident in a terminal window), without using some Post-it note like tool, we can use cat to redirect to the null device, /dev/null, which effectively throws away lines we edit (but still keeps the lines we entered on the screen), as follows:
cat > /dev/null
In a script you can use cat to put data into a file like this:
cat > fillme << EOF this is the first line this is the last line EOF
As always, you can use the > operator to rewrite a file and the >> operator to append to a file:
cat >> file
appends your input at the end of file
These all relate to the output or processing of entire files