This covers topics not in any of the others.
Since most ASCII files are not formatted for printing, it is useful to format them in some way before they are actually printed. This may include putting a title and page number on each page, setting the margins, double spacing, indenting, or printing a file in multiple columns. A common way to do this is to use a print preprocessor such as pr.
$ pr +4 -d -h"Ph.D. Thesis, 2nd Draft" -l60 thesis.txt | lpr
In the above example, pr would take the file
thesis.txt and skip the first three pages (+4), set the page length to sixty lines (-l60), double space the output (-d), and add the phrase "Ph.D. Thesis, 2nd Draft" to the top of each page (-h). Lpr would then queue pr's output. See its on-line manual page for more information on using pr.
All of the commands in the Linux printing system accept the -P option. This option allows the user to specify which printer to use for output. If a user doesn't specify which printer to use, then the default printer will be assumed as the output device.
Instead of having to specify a printer to use every time that you print, you can set the PRINTER environment variable to the name of the printer that you want to use. This is accomplished in different ways for each shell. For bash you can do this with
$ PRINTER="printer_name"; export PRINTER
and csh, you can do it with
% setenv PRINTER "printer_name"
These commands can be placed in your login scripts (.profile for bash, or .cshrc for csh), or issued on the command-line. (See bash(1) and csh(1) for more information on environment variables.)