質問: lprコマンドについて lprコマンドで印刷したい場合、 lpr -s サーバ名 -p プリンタ名 印刷ファイル名 という指定方法になるかと思うのですが、そもそもサーバー名とは 何を指しているのでしょうか?同様に、プリンタ名とは何を指しているのでしょうか?(前提条件として、プリントサーバーで共有したプリンタがある環境限定であれば想像はできるのですが、どうも意味が分かりません) *windowsのコマンドプロンプトからlprコマンドで印刷を試したところ、サーバー名、プリンタ名ともにプリンター(nwプリンタ)のipを入力することで印刷できました。この動きの説明がつきません。 また、lprコマンドの構文(オプション)は各os共通(windows含め)なのか、linuxのディストリビューションによって異なるものなのでしょうか? 識者の方いらっしゃいましたら教えてください。
回答: プリンタの定義を自分で作成していたのはずいぶん昔になるので、 今は変わっているかもしれませんが、 lprコマンドは、/etc/printcap の定義によって動きます。 printcap に自由に名前をつけて、ドライバ、フィルタ、リモートホストなどを記述することになります。 詳しい構文などは省略しますが(というか覚えてないのですが) lp1と言う名前をつけた行に、ローカルプリンタのデバイスを定義し、 lp2と言う名前をつけた行に、リモートプリンタのデバイスを定義したとすると、 $ lpr -p lp1 file <= ローカルプリンタで印刷 $ lpr -p lp2 file <= リモートプリンタで印刷 のようにプリンタ名を指定するだけで、ローカル、リモートを振り分けることが出来ました。 lprコマンドにサーバー名をつけて実行したことはないのですが、 プリンタが接続されているpcにlpdが動いている場合、 そのホスト名(もしくはip)をしていすれば、 リモート先のprintcapに載っているプリンタ名を指定できるのだと思います。 ただ、今時の多くのディストリビューションは、cupsが採用されており、 ちょっと事情が異なるようです。 cupsの設定をした時にprintcapを一緒に編集してれたと思うのですが、未確認です。 私の所にインストールされている、cups 1.3.10では、 lpr [ -e ] [ -h server[:port] ] [ -u username ] [ -p destination[/instance] ] [ -# num-copies [ -h ] [ -l ] [ -m ] [ -o option[=value] ] [ -p] [ -q ] [ -r ] [ -c/j/t title ] [ file(s) ] という、コマンドオプションを取るので、 すべて同じ構文ということはないのではないでしょうか?