cups(1)

Discover

# List available printer driver.
lpinfo -m

# List available printer devices (connected + network).
lpinfo -v

Install printer

# Add device with PRINTER name, practically all modern network printer use the
# everywhere driver.
lpadmin -p PRINTER -m everywhere -v DEVICE_URI

# Delete named printer.
lpadmin -x PRINTER

Printer & Printing options

# List printer options.
# CHECK printer-make-and-model
lpoptions -p PRINTER
# List printing options.
lpoptions -p PRINTER -l
# Set an options, eg duplex mode.
lpoptions -p PRINTER -o 'Duplex=DuplexNoTumble

# Set the default printer (stored in ~/.cups/lpoptions).
lpoptions -d PRINTER

Inspect installed printer.

# List default printer.
lpstat -d
# List installed printer (-l for longer output).
lpstat -p
# List printer accepting state.
lpstat -a
# List printer and the attached device (eg device uri).
lpstat -v

# List all states at once.
lpstat -t
# Create print job.
lp -d PRINTER FILE
    -n NUM                           number of copies
    -P PAGE_LIST                     pages to print (eg 1,3-5,10)
    -o media=a4                      paper format
    -o number-up={2|4|6|9|16}        input pages per output page
    -o sides=one-sided               print front-page only
    -o sides=two-sided-long-edge     print duplex

# Remove pending print job.
lprm JOOBID

Control printer

# Enable/disable printer.
cupsenable PRINTER
cupsdisable PRINTER

# Accept/rejects jobs for printer.
cupsaccept PRINTER
cupsreject PRINTER