LinuxCommandLibrary

cups

Manage printing and print queues

TLDR

View documentation for running the CUPS daemon

$ tldr cupsd
copy

View documentation for managing printers
$ tldr lpadmin
copy

View documentation for printing files
$ tldr lp
copy

View documentation for checking status information about the current classes, jobs, and printers
$ tldr lpstat
copy

View documentation for cancelling print jobs
$ tldr lprm
copy

SYNOPSIS

The 'cups' system is managed and interacted with through a suite of command-line utilities. While there isn't a single 'cups' executable for general user tasks, key commands for user interaction and administration include:

lp [options] file(s)
lpstat [options]
lpadmin [options]
cancel [options] job-id(s)

PARAMETERS

-d destination
    Specifies the printer or class for printing (e.g., with lp) or querying (e.g., with lpstat).

-o option=value
    Sets a print job option, such as paper size or duplex printing (used with lp).

-p printer
    Designates a specific printer for status query or configuration (used with lpstat, lpadmin).

-t
    Displays a comprehensive summary of all CUPS server status information (used with lpstat).

-E
    Enables a printer to accept jobs or enables a printer queue (used with lpadmin).

-x printer
    Deletes the specified printer from the CUPS configuration (used with lpadmin).

-a
    Cancels all jobs (on cancel) or shows all destinations (on lpstat).

DESCRIPTION

The Common Unix Printing System (CUPS) is a modular, open-source printing system developed by Apple Inc. for Unix-like operating systems. It provides a standardized layer between applications and printers, allowing programs to print to network or local printers without needing to know printer-specific details. CUPS uses the Internet Printing Protocol (IPP) as its foundation, offering advanced features like network printer auto-discovery, driver-less printing, and robust print job management. It superseded the traditional LPD (Line Printer Daemon) system, bringing a more modern, flexible, and extensible printing architecture to Linux and other Unix environments. CUPS includes a daemon (cupsd), various command-line utilities, and a web-based administration interface.

CAVEATS

The term 'cups' itself typically refers to the entire printing system, not a single direct command-line executable for common user interaction. Users interact with CUPS primarily through a set of related commands like lp, lpstat, lpadmin, or via the web-based administration interface at http://localhost:631. The underlying CUPS daemon, cupsd, must be running for the printing system to function.

WEB INTERFACE

CUPS provides a powerful web-based administration interface, accessible by default at http://localhost:631. This interface allows users and administrators to manage printers, view print jobs, configure server settings, and troubleshoot printing issues without needing command-line knowledge.

PPD FILES AND DRIVERS

CUPS extensively uses PostScript Printer Description (PPD) files to understand printer capabilities. While modern CUPS versions increasingly support driver-less printing via IPP Everywhere, PPD files remain crucial for older or specialized printers, defining supported paper sizes, resolutions, and other device-specific features.

HISTORY

CUPS was originally developed by Michael Sweet at Easy Software Products, with its first public release in 1999. It rapidly gained adoption as a modern replacement for the traditional LPD system, becoming the default printing system for macOS (starting with Mac OS X 10.2 Jaguar in 2002) and most Linux distributions. Apple open-sourced CUPS after acquiring Easy Software Products, and its development is now maintained by the OpenPrinting project, ensuring its continued relevance and evolution in the open-source community.

SEE ALSO

cupsd(8), lp(1), lpr(1), lpstat(1), lpadmin(8), cancel(1), printers.conf(5), cupsd.conf(5)

Copied to clipboard