Common Unix Printing System
lastmod 2026-03-26created 2015-07-245 edits
CUPS (Common Unix Printing System; officially, CUPS is the more commonly used name) is a modular printing system for Unix-like operating systems that allows a computer to act as a print server. CUPS made it easier to write the device drivers that previously had to be written separately for each printer format and type on Unix-like operating systems, and made it possible to use not only the special line printers and PostScript printers supported by earlier Unix-like operating systems, but also most printers sold for Macintosh and Windows on Unix-like operating systems.
A computer running CUPS becomes a server that receives print jobs from client computers, processes those jobs, and sends the data to the appropriate printer. In doing so, it can also use HTTP Basic authentication and Digest authentication, local authentication, 128-bit TLS/SSL encryption, and so on.
CUPS consists of a Unix print spooler and scheduler, a filter system, and a backend system. The filter system converts print data into a format the printer can understand, and the backend system sends this data to the printer. CUPS uses IPP (Internet Printing Protocol) as the basis for handling print jobs and queues. CUPS also supports the System V-style and BSD-style command-line interfaces that Unix previously supported, and partially supports the SMB protocol. The device drivers provided by CUPS can be configured using text files in Adobe's PPD (PostScript Printer Description) format. For configuring CUPS, CUPS itself provides an embedded web (HTTP) interface.
Features
- Printer management: detects and manages printers connected to the system
- Print job processing: receives print requests, queues them, and sends them to the printer
- Network printing: can manage not only local printers but also remote printers on the network
- Web interface: provides the CUPS web administration page at
localhost:631by default
Using CUPS on Linux
Printing from the command line
# 실제 크기로 출력 (scaling 없음)
lp -o fit-to-page=false -o media=A4 document.pdf
# 또는 scaling을 100%로 명시
lp -o scaling=100 document.pdf
# 사용 가능한 프린터 목록 확인
lpstat -p -d
# 실제 크기로 출력
lp -d 프린터이름 -o fit-to-page=false -o media=A4 -o scaling=100 document.pdf