The lp command: a basic introduction

In Linux, the Common UNIX Printing System (CUPS) is the layer responsible for managing printer and printing options and services, including printers, printing jobs, and queues. The CUPS layer has many options to help you set up and use a printer on your Linux system. The lp or “Line Printer” command is one of the commands within the CUPS layer. The lp command submits a file for printing, while the lpq, or “Line Printer Queue,” command allows you to view the print jobs in the queue. Like most other Linux terminal commands, the lp command supports various options. Let’s look at some of them.

How to install the lp command

In some instances, you may not have the lp command installed on your system. In such cases, you need to install lp before you can use it. To check whether you have the lp command installed, run the which command as: If you have lp installed, the command line should show you the file path. Example output: If you don’t have the lp command installed, you can use the apt package manager to install it. The general syntax for using the lp command is: Replace [filename] with the path to the target file.

Using the lp command to list available printers

We use the lpstat command with the -a option to show connected and available printers and the -d option to show the default printer. The syntax for that is: The above command should return the name of the available printers.

Using the lp command to print to a specific printer

In most cases, you will only have one printer connected to your system. Thus, you will only have to use the lp command followed by the filename to print to the default printer. However, in some cases, you may have more than one printer connected. You will have to use the -d option to print to a specific printer if that situation arises. For example, to print the “/home/debian/mte/hello.txt” file to the HP Ink-Tank 310 printer, use the command:

Using the lp command to show the print queue

To show the print queue from the command line, use the lpq command. Note: if the command is not available in your system, install the cups-bsd package: Once you have the package installed, run the command: The command should give output as: This shows the specified printer does not have any printing jobs and that you can go ahead and print your documents.

Using lp command to print multiple copies

To print a specific number of copies of a file, you can use the -n option of the lp command. The syntax for that is: For example, to print ten copies of a file named “hello.txt” to the printer “HP-ink-jet 315,” run the command as:

Using the lp command to print in portrait or landscape

You can also use the lp command to print in the two main printing orientations: portrait and landscape. To do that, you will use the -o option. Note: the –o option is very versatile. Besides using it to specify the print job orientation, you can also use it to set the paper size. To use this option to print the previous job example in the portrait orientation, the command for that would be: On the other hand, to print in landscape, we would specify “landscape” in the syntax as: As mentioned, the –o option has many other options. For example, you can use it to set the paper size. To print the previous file in a letter size, we would specify size using the lp command and the “media” attribute. An example syntax for that would be:

lp command for single or double-sided printing

Using the lp command with the “sides” attribute allows you to specify single- or double-sided printing jobs. The “sides” attribute has two key values: For example, to print out a two-sided page for our earlier example, the syntax for that would be:

Lp command options

Here are some other options provided by the lp command. To learn more about all lp supported options, consider the CUPS man pages.

Wrapping Up

This tutorial has shown you how to work with the lp command in Linux to print from the terminal. If you have difficulty setting up your printer, check out the tutorial here for setting up a printer in Linux.