File sharing and printing 11–11
The traditional Linux (and UNIX) printing system is the
lpd daemon. This system is
interchangeably called the LPD or LPR (taking its initials from “line printer”) system. It
is now largely replaced by CUPS because of many limitations.
LPD has important security holes, limited support for modern printers, and for the most
part, doesn’t handle graphics well. Various enhancements over the years, including
LPRng and PDQ, attempted to rectify these issues. In most cases, however, the overall
Command Use this command to
View the status of printers.
View print jobs in the queue.
Remove print jobs from the queue.
Application-specific printing systems
To address the limitations of LPD, some applications provided their own printing
systems. Examples include StarOffice and WordPerfect. While these systems enabled
higher quality printouts that included fonts, colors, and graphics, they were limited to
those applications. For example, you could not print a log file via StarOffice’s printing
system without using StarOffice to open and view the file first.
Currently, the most popular and capable printing system is the Common UNIX Printing
System. It is installed by default on most modern distributions and is available as a
package or source download for many other distros.
CUPS addresses the security vulnerabilities of LPD and offers greatly increased
controls for limiting who can print to your printers. It supports the Internet Printing
Protocol (IPP) and is compatible with the Samba component which provides
interoperability with Windows-based networks. Many printer manufacturers have
adopted support for CUPS, giving you a much wider range of printers from which to
choose. However, that selection is still far smaller than it is for Windows and Macintosh
On most distributions, CUPS is installed by default. Therefore, we won’t cover how to
setup CUPS. Instead, we’ll move directly to configuring printers and managing queues.
CUPS is very flexible, enabling you to configure print services by editing configuration
files, using GUI tools, or even by loading a special Web page. You can configure most
every setting using any of the methods.