Common Unix Printing System (CUPS)


CUPS (formerly an acronym for Common Unix Printing System, but now with no official expansion) is a modular printing system for Unix-like computer operating systems which allows a computer to act as a print server. A computer running CUPS is a host that can accept print jobs from client computers, process them, and send them to the appropriate printer.

CUPS consists of a print spooler and scheduler, a filter system that converts the print data to a format that the printer will understand, and a backend system that sends this data to the print device. CUPS uses the Internet Printing Protocol (IPP) as the basis for managing print jobs and queues. It also provides the traditional command line interfaces for the System V and Berkeley print systems, and provides support for the Berkeley print system's Line Printer Daemon protocol and limited support for the server message block (SMB) protocol. System administrators can configure the device drivers which CUPS supplies by editing text files in Adobe's PostScript Printer Description (PPD) format. There are a number of user interfaces for different platforms that can configure CUPS, and it has a built-in web-based interface. CUPS is free software, provided under the GNU General Public License and GNU Lesser General Public License, Version 2.


Compute Systems Invocation Version(s)
Red Hat Linux (64-bit) % /usr/bin/[ cancel | cups-config | cupstestdsc | cupstestppd | lp | lpoptions | lppasswd | lpq | lpr | lprm | lpstat | ppdc | ppdhtml | ppdi | ppdmerge | ppdpo ] Varies by System

Client Setup

This procedure describes how to install and configure CUPS on your UNIX-like workstation.

  1. Copy the attached client.conf to your workstation's CUPS directory (usually something like /etc/cups/). If you are using Ubuntu Linux version 13.04 or above, copy the attached client-ubuntu.conf instead and rename it to client.conf.
  2. Restart CUPS:
    % sudo /usr/local/etc/rc.d/cupsd restart
  3. Verify the attached printers' statuses with the lpstat command. Note: The set of printers that you're allowed to see depends on your username. Printer usage permissions are based on authorized group permissions, and your username must be a member of an authorized group. Please keep all usernames consistent with UBIT names or this could limit access to printers.

CUPS Print Commands

  1. Status. List print queues and print servers that host them. Mnemonic: 'line printer status, verbose option'. You won't have permission to print to all the printers you see. Many of them are faculty members' office printers.

    % lpstat -v

  2. Queue. Show the content of a print queue. Mnemonic: 'line printer queue of Printer printer'

    % lpq -Pprinter

  3. Print. Print filename on printername. Mnemonic: 'line print to Printer [printer]'

    % lpr -Pprintername filename
    % lp -d printername -o landscape filename

  4. Cancel. Cancel existing print job(s). Mnemonic: 'cancel [username]'s print jobs'

    % cancel -u [username]

  5. Remove a print job from a print queue. Remove a print job on printer printer. Mnemonic: 'line printer remove [job number]'.

    charlie % /usr/local/bin/lprm [-Pprinter] [job # ...] [user ...]


client.conf37 bytes
client-ubuntu.conf48 bytes