lprコマンドで印刷ジョブを送信する方法|lpq・lprmやCUPS対応までコマンド


この記事の監修:宮崎智広(Linux教育歴15年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxコマンド, LinuxコマンドK-O, プロセス管理コマンド > lprコマンドで印刷ジョブを送信する方法|lpq・lprmやCUPS対応までコマンド
「サーバーから印刷ジョブを送りたいけど、いつもlprを忘れる」
「印刷キューに溜まったジョブを確認したい」
Linuxサーバーや業務用ワークステーションを運用していると、コマンドラインからプリンタへ印刷ジョブを投入する場面が稀にあります。GUIに頼れないリモートサーバーやスクリプトからの自動印刷では、lpr / lpq / lprm といった印刷系コマンドが今でも現役です。

この記事では、lpr コマンド でファイルを印刷する方法と、印刷キューを確認する lpq、ジョブを取り消す lprm を一通り解説します。現代のCUPS(Common Unix Printing System)前提で、プリンタ指定オプションやPDF印刷、トラブルシュートまでまとめました。
【この記事でわかること】 ・lprコマンドでファイルをプリンタに送る基本書式
・-Pオプションで出力プリンタを指定する方法
・-#オプションで部数指定、-oオプションで両面・用紙サイズ指定
・印刷キュー確認(lpq)とジョブ取り消し(lprm)
・CUPS時代の代替コマンド lp / lpstat / cancel

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

※本記事は現代のCUPS(Common Unix Printing System)環境を前提としています。RHEL系9系・Ubuntu 22.04 / 24.04 LTS で動作確認できます。lprはBSD系の歴史あるコマンドですが、現在のLinuxではCUPSが提供するBSD互換コマンド(cups-bsdパッケージ)として動作しています。

lprコマンドとは(CUPSへ印刷ジョブを送る基本コマンド)

lpr(line printer)は、ファイルをプリンタへ送信する標準コマンドです。引数にファイル名を指定するだけで、デフォルトプリンタへジョブが投入されます。

BSD系コマンド:lpr / lpq / lprm(古くからの書式)
System V系コマンド:lp / lpstat / cancel(CUPS推奨の新書式)

現在のLinuxではどちらもCUPSが処理するため、好みで使い分けて構いません。本記事ではBSD系のlprを軸に解説します。

基本的な使い方(ファイルをプリンタに送信する)

もっとも単純な使い方は、ファイル名を引数に渡すだけです。デフォルトプリンタへ印刷ジョブが投入されます。

# report.txt をデフォルトプリンタへ印刷 $ lpr report.txt # 標準入力からも印刷可能 $ cat /var/log/messages | lpr # PDFやPostScriptもそのまま渡せる $ lpr manual.pdf

主要オプション一覧

オプション意味
-P プリンタ名出力するプリンタを指定lpr -P HP_LaserJet report.pdf
-# 部数印刷部数を指定lpr -#3 report.pdf
-o sides=two-sided-long-edge両面印刷(長辺綴じ)lpr -o sides=two-sided-long-edge report.pdf
-o media=A4用紙サイズをA4に指定lpr -o media=A4 report.pdf
-o number-up=21枚に2ページ集約lpr -o number-up=2 manual.pdf
-T タイトルジョブ名(バナーに表示)lpr -T "月次レポート" report.pdf

プリンタ名を確認する

-Pに渡せるプリンタ名は、lpstat -pで一覧を取得できます。

# 利用可能なプリンタ一覧と状態を表示 $ lpstat -p printer HP_LaserJet is idle. enabled since 2026-04-07 printer Brother_DCP is idle. enabled since 2026-04-07 # デフォルトプリンタを確認 $ lpstat -d system default destination: HP_LaserJet

印刷キューを確認する:lpq

lpq(line printer queue)は、現在キューに溜まっている印刷ジョブの一覧を表示します。複数人が同じプリンタを使う環境では「自分のジョブが何番目に並んでいるか」を確認するのに使います。

# デフォルトプリンタのキューを表示 $ lpq HP_LaserJet is ready and printing Rank Owner Job File(s) Total Size active alice 42 report.pdf 245760 bytes 1st bob 43 sales-202604.xlsx 102400 bytes 2nd alice 44 meeting-notes.txt 12288 bytes # 特定プリンタのキューを表示 $ lpq -P Brother_DCP # 自分のジョブだけ表示(ユーザー名指定) $ lpq alice

CUPS環境では lpstat -o でも同じ情報が確認できます。

印刷ジョブを取り消す:lprm

誤って大量のジョブを投入してしまった、間違ったファイルを送ってしまった、といった時はlprmでジョブを取り消します。lpqで表示されたジョブ番号を指定するのが基本です。

# ジョブ番号42を取り消す $ lprm 42 # 自分のジョブを全部取り消す(番号省略) $ lprm # 特定プリンタの全ジョブを取り消す(root権限が必要) $ sudo lprm -P HP_LaserJet -

CUPSでは cancel ジョブ番号 も同じ動作をします。

System V系コマンド(lp / lpstat / cancel)

CUPSは伝統的にSystem V系のコマンドも提供しています。スクリプトでの安定性や新しいオプションが使いたい場合はこちらが便利です。

BSD系(lpr系)System V系(CUPS推奨)用途
lpr filelp file印刷ジョブを投入
lpqlpstat -o印刷キューを確認
lprm 42cancel 42ジョブを取り消す
lpr -P 名前lp -d 名前プリンタを指定
lpr -#3lp -n 3部数指定

トラブルシュート

① 「lpr: command not found」と言われる

最近のディストリビューションではlprコマンドはデフォルトで入っていない場合があります。CUPSのBSD互換コマンドパッケージを追加で導入してください。

# RHEL系(Rocky / AlmaLinux / RHEL 9) $ sudo dnf install cups-client cups-bsd # Ubuntu / Debian $ sudo apt install cups-client cups-bsd

② ジョブを投入してもプリンタから出てこない

CUPSサービスが動いていない、プリンタが論理的に停止状態(disabled)になっている、ネットワーク経路の問題、などが考えられます。

# CUPSサービスの状態確認 $ systemctl status cups # プリンタの状態詳細 $ lpstat -p -d # プリンタが「disabled」だった場合は有効化 $ sudo cupsenable HP_LaserJet $ sudo cupsaccept HP_LaserJet # CUPSのエラーログを確認 $ sudo journalctl -u cups -n 50

③ 文字化けする

日本語テキストファイルをそのままlprに渡すと、プリンタ側のフォントによっては文字化けします。一度nkficonvでエンコーディングを変換するか、PDFに変換してからlprに渡すのが確実です。

# UTF-8 → PDF(pandocやenscriptを利用) $ enscript --font=Courier10 -o report.ps report.txt $ ps2pdf report.ps report.pdf $ lpr report.pdf

本記事のまとめ

やりたいことコマンド
ファイルを印刷するlpr ファイル名
プリンタを指定して印刷lpr -P プリンタ名 ファイル
部数を指定して印刷lpr -#3 ファイル
両面印刷lpr -o sides=two-sided-long-edge ファイル
印刷キュー確認lpq または lpstat -o
ジョブ取り消しlprm 番号 または cancel 番号
プリンタ一覧lpstat -p
CUPSの状態確認systemctl status cups

Linuxの印刷ジョブを確実に制御できていますか?

コマンドの使い方を一つひとつ覚えていくのは時間がかかります。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。


暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録

宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。