unix
Within the School
Printing a File
The most common way of printing a file is to use lpr with the appropriate options. To print the file filename.ps in the current directory to the printer s0d, use:
help@london[1]: lpr -Ps0d filename.ps
Your default printer should be set by our script find_printer, the default printer setting is held in the variable $PRINTER or $LPDEST. You can determine your default printer by typing the following:
help@london[2]: echo $PRINTER s0d
Your default printer should be displayed. Using your default printer, the above command would be:
help@london[3]: lpr filename.ps
Printing a DVI file help@london[3]: dvips -Ps0d filename.dvi
Viewing the Print Queue
The print queue is the list of print requests that are currently waiting to be printed on a printer. To view the queue, use the command lpq. To view the queue on printer s0d, use the following:
help@london[4]: lpq -Ps0d Printer: s0d@localhost 'simonyi-0-duplex' Queue: 2 printable jobs Server: pid 15753 active Unspooler: pid 15754 active Status: waiting for subserver to exit at 13:41:35.420 Filter_status: 87 percent done at 13:41:00.303 Rank Owner/ID Class Job Files Size Time stalled(676sec) guest@zurich+50 A 50 AHLMcT.pdf 288091 13:30:23 2 help@localhost+151 A 151 filename.ps 5596 13:41:35
To view the queue on your default printer, use:
help@london[5]: lpq Printer: s0d@localhost 'simonyi-0-duplex' Queue: 2 printable jobs Server: pid 15753 active Unspooler: pid 15754 active Status: waiting for subserver to exit at 13:41:35.420 Filter_status: getting end using 'pjl job/eoj' at 13:42:31.647 Rank Owner/ID Class Job Files Size Time stalled(799sec) guest@zurich+50 A 50 AHLMcT.pdf 288091 13:30:23 2 help@localhost+151 A 151 filename.ps 5596 13:41:35
Removing a Job
Now, if we want to remove our job, we need the job id. Looking at the above output we see that the job number is 151. We can now remove that job with lprm:
help@london[6]: lprm 151 Printer s0d@localhost: checking perms 'help@localhost+151' dequeued 'help@localhost+151'
The job is now removed from the print queue. If we wanted to remove all our jobs from the printer s0d, we could have used:
help@london[6]: lprm -Ps0d
Printing from Applications
Most applications print by sending postscript to lpr, applications that function this way, usually have a Print Command: dialog or Printer Command:. This dialog will appear after selecting Print... from the File menu usually. The default command in this window is usually fine, however, should you experience difficulty printing, we suggest changing this to the following (assuming you wish to use printer s0d, change the name of the printer to whichever printer you wish to use):
Printer Command: lpr -Ps0d
UNIX printing
To print directly to the printer from the command line without installing the printer on your device:
$ lpr -H printhost.math.ias.edu:631 -P<printer> file.txt
where <printer> is the printer that you want to print to. Click here for a list of printers
The method of adding a printer will vary depending on your distribution. The following example will be for reference only.
-
Server — printhost.math.ias.edu:631
-
Path — /printers/s0d (Refer to Printer Naming Conventions for the name of your desired print queue)
If you need to download and install drivers, click on the appropriate link:
- HP LaserJet M601 (a1)
https://developers.hp.com/hp-linux-imaging-and-printing - HP LaserJet M608 (s[0-2], f[2-4]):
https://developers.hp.com/hp-linux-imaging-and-printing - HP Color LaserJet 500 M551 (color, fcolor):
http://h20564.www2.hp.com/hpsc/swd/public/readIndex?sp4ts.oid=5081348&swLangOid=8&swEnvOid=54 - Xerox AltaLink C8130 (s118):
https://www.support.xerox.com/en-us/product/altalink-c8100-series/downloads?platform=unix&product=&category=&language=en&attributeId=
For HP printers, you will need HPLIP. If it is not installed on your system, you can install it with:
$ sudo yum install hplip ( for RedHat-based machines) $ sudo apt-get install hplip ( for Debian-based machines)
Most modern UNIX's have fairly intelligent printing commands. You will probably not have to do any configuration to print to our print server. To print from your laptop, you will need to provide both a queue name and a print server name for lpr. To print the file filename.ps to the printer s0d you would type the following:
help@mymachine[1]: lpr -Ps0d@printhost filename.ps
or
help@mymachine[2]: lpr -Ps0d@printhost.math.ias.edu filename.ps
Typing this every time might become troublesome, so we should probably make s0d@printhost our default printer by setting the environment variable PRINTER. First check your SHELL setting with the following:
help@mymachine[3]: echo $SHELL /bin/csh
Our shell is csh (or tcsh), we'll set the PRINTER variable with the following:
help@mymachine[4]: setenv PRINTER s0d@printhost.math.ias.edu
We can now print to s0d@printhost.math.ias.edu by typing lpr. Now lets assume that we are using bash (or sh), we can set our PRINTER variable with slightly different syntax:
help@mymachine[5]: echo $SHELL /bin/bash help@mymachine[6]: PRINTER=s0d@printhost.math.ias.edu help@mymachine[7]: export PRINTER
or
help@mymachine[8]: export PRINTER=s0d@printhost.math.ias.edu