Linuxのlpコマンドでターミナルからファイルを印刷する方法【初心者向けガイド】

Linuxでの印刷は、特に初心者にとって少し難しく感じられることがあります。このチュートリアルでは、Linuxのlpコマンドを紹介し、基本的な印刷操作の実行方法をわかりやすく解説します。縦向き・横向きでの印刷、単数・複数部の印刷など、実用的な使い方を網羅的にご紹介します。
lpコマンドとは?基本の概要
Linuxにおいて、CUPS(Common UNIX Printing System)は、プリンターや印刷オプション、サービスを管理する中間層です。プリンター本体、印刷ジョブ、印刷キューなどがその管理対象に含まれます。
CUPSには、Linuxシステム上でプリンターをセットアップし使用するための多くの機能が用意されています。lp(ラインプリンター)コマンドは、そのCUPS層に含まれるコマンドの一つです。
lpコマンドはファイルを印刷ジョブとして送信する役割を担い、lpq(ラインプリンターキュー)コマンドを使うと、キュー内の印刷ジョブを確認できます。
他の多くのLinuxターミナルコマンドと同様に、lpコマンドもさまざまなオプションに対応しています。以下、主なオプションを見ていきましょう。
lpコマンドのインストール方法
環境によっては、システムにlpコマンドがインストールされていない場合があります。その場合は、まずインストールを行う必要があります。
lpコマンドがインストールされているかどうかを確認するには、以下のようにwhichコマンドを実行します。
which lp
lpがインストール済みであれば、コマンドラインにファイルパスが表示されます。出力例:
/usr/bin/lp
lpコマンドがインストールされていない場合は、aptパッケージマネージャーを使ってインストールできます。
sudo apt install lprng
lpコマンドの一般的な構文は次のとおりです。
lp -d [プリンターID] [ファイル名]
[ファイル名]の部分には、印刷したいファイルへのパスを指定します。
利用可能なプリンターの一覧を表示する
lpstatコマンドに-aオプションを付けると、接続されていて利用可能なプリンターを一覧表示でき、-dオプションを付けるとデフォルトプリンターを確認できます。構文は以下のとおりです。
lpstat -a | awk '{print $1}'このコマンドを実行すると、利用可能なプリンターの名前が返されます。

特定のプリンターに印刷する
多くの場合、システムにはプリンターが1台だけ接続されています。その場合は、lpコマンドに続けてファイル名を指定するだけで、デフォルトプリンターに印刷できます。
しかし、複数のプリンターが接続されている場合もあります。そのような状況では、-dオプションを使って、印刷先のプリンターを明示的に指定する必要があります。
たとえば、「/home/debian/mte/hello.txt」というファイルを「HP Ink-Tank 310」プリンターに印刷するには、次のコマンドを使用します。
lp -d "Ink-Tank-310" /home/debian/mte/hello.txt

印刷キューを表示する
コマンドラインから印刷キューを表示するには、lpqコマンドを使用します。
注意:システムにコマンドが存在しない場合は、cups-bsdパッケージをインストールしてください。
sudo apt install cups-bsd
パッケージのインストール後、次のコマンドを実行します。
lpq -P [プリンター名]
コマンドの出力は次のようになります。
lpq -P "Ink-Tank-310" Ink-Tank-310 is ready no entries
これは、指定したプリンターに印刷ジョブが存在せず、すぐにドキュメントを印刷できる状態であることを示しています。
複数部数を印刷する
ファイルを指定した部数で印刷するには、lpコマンドの-nオプションを使用します。構文は以下のとおりです。
lp -n [部数]
たとえば、「hello.txt」というファイルを10部、「HP-ink-jet 315」プリンターに印刷するには、次のコマンドを実行します。
lp -d "Ink-Tank-310" -n 10 hello.txt
縦向き・横向きで印刷する
lpコマンドでは、縦向き(portrait)と横向き(landscape)という2つの主要な印刷方向を指定することもできます。その際には-oオプションを使用します。
注意:-oオプションは非常に多用途です。印刷ジョブの方向を指定するだけでなく、用紙サイズの設定にも使えます。
前述の印刷例を縦向きで出力するには、次のコマンドを使用します。
lp -d "Ink-Tank-310" -n 10 -o portrait hello.txt
一方、横向きで印刷する場合は、構文に「landscape」を指定します。
lp -d "Ink-Tank-310" -n 10 -o landscape hello.txt
前述のとおり、-oオプションには他にも多くの設定項目があります。たとえば、用紙サイズの指定も可能です。
先ほどのファイルをレターサイズで印刷するには、lpコマンドと「media」属性を使ってサイズを指定します。構文の例は次のとおりです。
lp -d "Ink-Tank-310" -n 10 -o portrait -o media=letter hello.txt
片面・両面印刷の指定
lpコマンドに「sides」属性を組み合わせることで、片面印刷か両面印刷かを指定できます。
「sides」属性には、主に2つの重要な値があります。
- two-sided-short-edge – 横向きモードでの両面印刷
- two-sided-long-edge – 縦向きモードでの両面印刷
たとえば、前述の例で両面印刷を行うには、次のような構文になります。
lp -d "Ink-Tank-310" -n 10 -o portrait -o media=letter -o sides=two-sided-long-edge hello.txt
lpコマンドの主なオプション一覧
lpコマンドには、他にも便利なオプションが多数用意されています。代表的なものを以下の表にまとめました。
| オプション | 動作 |
|---|---|
| -E | サーバー接続時に暗号化を強制する |
| -- (オプションの終了を示す) | ハイフン(-)で始まる名前のファイルを印刷する際に使用 |
| -d (宛先) | 指定したプリンターにファイルを印刷する |
| -U (ユーザー名) | サーバーに接続するユーザー名を指定する |
| -h | サーバーのホスト名を指定する |
| -m | ジョブ完了後に通知(メール)を送信する |
| -n (部数) | ドキュメントの印刷部数を指定する(1〜100) |
| -q (優先度) | キュー内の印刷ジョブの優先度を設定する。1が最低、50がデフォルト、100が最高 |
| -i (ジョブID) | 変更対象の現在のジョブを指定する |
| -t (名前) | ジョブに名前を割り当てる |
| -o (「name=value [name=value …]」) | ジョブオプションを1つ以上設定または割り当てる |
lpコマンドがサポートするすべてのオプションについて詳しく知りたい場合は、CUPSのmanページを参照することをおすすめします。
まとめ
このチュートリアルでは、Linuxのlpコマンドを使ってターミナルから印刷する方法を解説しました。プリンターのセットアップでお困りの場合は、Linuxでプリンターを設定する方法を解説したチュートリアルも併せてご覧ください。
-
Linuxのssコマンドでネットワーク接続を監視する方法【基本から実践テクニックまで】
Linuxを使っていると、ネットワークの状態をもっと詳しく知りたい場面に必ず出会います。そうしたニーズに応えられるツールは数多く存在しますが、中には扱いが複雑なものもあります。ssコマンドは多くのLinuxマシンに標準でインストールされているため、その使い方を知っておくと非常に便利です。ssコマンドとは?2文字だけのコマンド名は一見謎めいて見えますが、実際はとてもシンプルです。多くのLinux/Unixコマンドと同じように、コマンド名はその機能を表す略語になっています。「ss」は「Socket Statistics(ソケット統計)」の略です。Socket Statisticsは、従来のnets
-
macOSでターミナル(コマンドライン)を使う方法|基本操作と便利なコマンドを解説
Windowsに「コマンドプロンプト」があるように、macOSにはコマンドの実行やシステム変更に使える「ターミナル」が標準搭載されています。ターミナルはmacOS専用のコマンドラインアプリケーションで、システム設定の変更、ファイルやアプリの起動、さまざまなタスクの実行などに活用できます。Appleが開発したこのアプリは、macOSの標準アプリとして最初からインストールされており、OSをアップデートしても常に同梱されています。ターミナルアプリはMacの「ユーティリティ」フォルダ内にあります。 つまり、ターミナルはMac版のコマンドプロンプトです。「Macでコマンドラインにはどうやってアクセスす