打印文件
在 UNIX 系統(tǒng)中,您打印一個文件之前,您可能想要重新格式化它調(diào)整它的邊距,高亮顯示一些單詞等等。大多數(shù)文件也可以打印而不用重新格式化,但未經(jīng)處理的打印可能不那么好看。
UNIX 系統(tǒng)的許多版本中都包含了兩個強(qiáng)大的文本格式化命令,nroff 和 troff。他們不包含在本教程中,但是你可以在在網(wǎng)上查到很多關(guān)于講解這兩個命令的使用方式的資料。
pr 命令
pr 命令可以對終端顯示屏上或者打印機(jī)上顯示的文件進(jìn)行小幅度的格式化。例如,如果在你的文件中有一長串名字,你可以將它格式化成兩列或者多列在屏幕上顯示。
如下是 pr 命令的語法示例:
pr option(s) filename(s)
pr 命令僅僅只是格式化顯示在屏幕上或者打印的副本文件,它不會修改源文件。如下的列表顯示一些 pr 命令中可選的參數(shù):
操作 |
描述 |
-k |
產(chǎn)生 k 列的輸出 |
-d |
將輸出用兩個空格隔開(并不是所有的 pr 版本適用)。 |
-h "header" |
將下一個項(xiàng)目作為頭部信息。 |
-t |
去掉打印中的頭部和上/下邊距。 |
-l PAGE_LENGTH |
設(shè)置一頁存放的數(shù)據(jù)行數(shù)為 PAGE_LENGTH(66)。默認(rèn)的文本行數(shù)為 56 行。 |
-o MARGIN |
設(shè)置每行之間的間隔為 MARGIN(0) 個空格。 |
-w PAGE_WIDTH |
設(shè)置頁一行的字符個數(shù)為 PAGE_WIDTG(72) 個字符。這個參數(shù)僅僅對多文本列輸出可用。 |
在使用 pr 命令之前,如下是查看 food 文件的內(nèi)容:
$cat food
Sweet Tooth
Bangkok Wok
Mandalay
Afghani Cuisine
Isle of Java
Big Apple Deli
Sushi and Sashimi
Tio Pepe's Peppers
........
接著讓我們利用 pr 命令將輸出變成兩列,同時頭部顯示 Restaruants:
$pr -2 -h "Restaurants" food
Nov 7 9:58 1997 Restaurants Page 1
Sweet Tooth Isle of Java
Bangkok Wok Big Apple Deli
Mandalay Sushi and Sashimi
Afghani Cuisine Tio Pepe's Peppers
........
lp 和 lpr 命令
命令 lp 或 lpr 將文件打印到紙上,而不是在屏幕上顯示。一旦你準(zhǔn)備使用 pr 命令格式化文本,您可以使用這些命令在任何與你電腦連接的打印機(jī)上打印你的文件。
您的系統(tǒng)管理員可能已經(jīng)建立了一個站點(diǎn)作為默認(rèn)打印機(jī)。為了在默認(rèn)的打印機(jī)上打印一個文件命名 food 的文件,你可以使用 lp 或 lpr 命令,如下示例:
$lp food
request id is laserp-525 (1 file)
lp 命令顯示了打印機(jī)的 ID,您可以使用它來取消打印作業(yè)或檢查它的狀態(tài)。
如果您正在使用 lp 命令,您可以使用 -nNum 選項(xiàng)參數(shù)設(shè)置打印副本的份數(shù)。對于 lpr 命令,您也可以使用參數(shù) -Num 起到相同的作用。
如果有多個打印機(jī)連接到共享網(wǎng)絡(luò)中,對于 lp 命令你可以使用 -dprinter 參數(shù)來選擇你想使用的打印機(jī),對于 lpr 命令你可以使用 -Pprinter 參數(shù)達(dá)到相同的效果。這里 printer 值得是打印機(jī)的名稱。
lpstat 和 lpg 命令
lpstat 命令顯示在打印機(jī)隊(duì)列中的作業(yè):請求的 ID,所有者,文件大小,當(dāng)打印任務(wù)被發(fā)送給打印機(jī)的時候,請求的狀態(tài)同樣也發(fā)送了給打印機(jī)。
如果你想看到所有輸出請求而不僅僅是你自己的,你可以使用 pstat -o 命令。請求會按照他們將會被打印的順序顯示出來:
$lpstat -o
laserp-573 john 128865 Nov 7 11:27 on laserp
laserp-574 grace 82744 Nov 7 11:28
laserp-575 john 23347 Nov 7 11:35
lpg 顯示的信息與 lpstat -o 顯示的稍微有些不同:
$lpq
laserp is ready and printing
Rank Owner Job Files Total Size
active john 573 report.ps 128865 bytes
1st grace 574 ch03.ps ch04.ps 82744 bytes
2nd john 575 standard input 23347 bytes
在第一行顯示打印機(jī)狀態(tài)。如果打印機(jī)是禁用或紙用完了,你可以在第一行看到不同的信息。
cancel 和 lprm 命令
cancel 命令終止 lp 命令發(fā)出的打印請求。lprm 命令終止 lpr 發(fā)出的打印請求。您可以指定打印機(jī)的 ID (由 lp 或 lpq 發(fā)出的請求)或名稱來終止打印任務(wù)。
$cancel laserp-575
request "laserp-575" cancelled
為了取消當(dāng)前正在打印的任務(wù),可以忽視它的 ID,僅僅輸入 cancel 命令和打印機(jī)的名稱即可:
$cancel laserp
request "laserp-573" cancelled
lprm 命令將取消活動的工作,如果它屬于你。否則,你可以使用工作的編號作為該命令的參數(shù),或者使用破折號(-)刪除你所有的工作:
$lprm 575
dfA575diamond dequeued
cfA575diamond dequeued
lprm 命令將會告訴你從打印機(jī)隊(duì)列中刪除的任務(wù)的文件名。
發(fā)送郵件
您可以使用 UNIX 郵件命令發(fā)送和接收郵件。如下是發(fā)送電子郵件的語法:
$mail [-s subject] [-c cc-addr] [-b bcc-addr] to-addr
如下是 mail 命令中重要的參數(shù):
參數(shù) |
描述 |
-s |
在命令行中指定郵件的主題。 |
-c |
給列表中的用戶發(fā)送副本。用戶列表是由逗號分開的用戶名列表。 |
-b |
發(fā)送密文副本給列表中的用戶。各個列表由逗號分隔開。 |
下面是示例發(fā)送測試消息到 admin@yahoo.com。
$mail -s "Test Message" admin@yahoo.com
接下來該輸入你的消息部分,消息輸入部分是在行首的 “control-D" 的之后。如果想要結(jié)束,你僅僅只需要輸入一個點(diǎn)類型(.),如下:
Hi,
This is a test
.
Cc:
你可以發(fā)送一個完整的文件通過利用重定向 操作符,如下:
$mail -s "Report 05/06/07" admin@yahoo.com demo.txt
為了檢查是否有收到郵件,在 UNIX 系統(tǒng)中你可以簡單的輸入如下的命令:
$mail
no email
ping 工具
ping 指令會發(fā)送一個應(yīng)答請求到網(wǎng)絡(luò)中某個主機(jī)。該指令主要用于檢測遠(yuǎn)端主機(jī)是否可以正常通信。
ping 指令可以用于如下用途:
追蹤并區(qū)分硬件或軟件的問題。
確定網(wǎng)絡(luò)和遠(yuǎn)端主機(jī)的狀態(tài)。
測試、測量或網(wǎng)絡(luò)管理。
語法
如下是使用 ping 指令的語法:
$ping hostname or ip-address
上述指定會持續(xù)打印響應(yīng)信息。用戶可以同時按下 CTRL+C 按鍵來結(jié)束信息的打印.
例子
下面是檢測網(wǎng)絡(luò)中某主機(jī)是否可達(dá)的例子:
$ping google.com
PING google.com (74.125.67.100) 56(84) bytes of data.
64 bytes from 74.125.67.100: icmp_seq=1 ttl=54 time=39.4 ms
64 bytes from 74.125.67.100: icmp_seq=2 ttl=54 time=39.9 ms
64 bytes from 74.125.67.100: icmp_seq=3 ttl=54 time=39.3 ms
64 bytes from 74.125.67.100: icmp_seq=4 ttl=54 time=39.1 ms
64 bytes from 74.125.67.100: icmp_seq=5 ttl=54 time=38.8 ms
--- google.com ping statistics ---
22 packets transmitted, 22 received, 0% packet loss, time 21017ms
rtt min/avg/max/mdev = 38.867/39.334/39.900/0.396 ms
如果某個主機(jī)不可達(dá),那么會顯示如下信息:
$ping giiiiiigle.com
ping: unknown host giiiiigle.com
FTP 工具
FTP 就是文件傳輸協(xié)議(File Transter protocol)的簡稱。使用該工具可以幫助用戶在主機(jī)間上傳或下載文件。
FTP 工具擁有自己的 UNIX 指令,可以完成如下任務(wù):
鏈接并登陸到遠(yuǎn)程主機(jī)。
瀏覽目錄。
列出目錄內(nèi)容。
上傳或下載文件。
按照 ascii、ebcdic 或 binary 方式傳輸文件。
語法
如下是使用 ftp 指令的語法:
$ftp hostname or ip-address
上述指令會觸發(fā)一個輸入賬號和密碼的登陸界面。如果用戶輸入的賬號和密碼認(rèn)證通過,則用戶可以訪問相應(yīng)輸入賬戶的根目錄,然后就可以執(zhí)行多種操作。
下面是一些常用操作:
指令 |
描述 |
put filename |
從本地往遠(yuǎn)程服務(wù)器上傳文件 |
get filename |
從遠(yuǎn)程服務(wù)器往本地下載文件 |
mput file list |
從本地往遠(yuǎn)程服務(wù)器批量上傳文件 |
mget file list |
從遠(yuǎn)程服務(wù)器往本地批量下載文件 |
prompt off |
關(guān)閉文件提醒,在 mput 與 mget 時不會每操作一個文件就詢問一次。 |
prompt on |
開啟文件提醒 |
dir |
列出遠(yuǎn)程服務(wù)器上當(dāng)前目錄下的所有文件 |
cd dirname |
切換本地主機(jī)上的目錄到指定目錄下 |
lcd dirname |
切換遠(yuǎn)程服務(wù)器上的目錄到指定目錄下 |
quit |
注銷當(dāng)前登陸 |
需要注意的是,上傳和下載文件時的本地主機(jī)目錄都是當(dāng)前目錄。如果用戶希望上傳或下載文件的目錄為特定的目錄,那么用戶需要先將當(dāng)前目錄切換到指定目錄后再進(jìn)行上傳或下載操作。
例子
下面是一些關(guān)于 ftp 操作的例子:
$ftp amrood.com
Connected to amrood.com.
220 amrood.com FTP server (Ver 4.9 Thu Sep 2 20:35:07 CDT 2009)
Name (amrood.com:amrood): amrood
331 Password required for amrood.
Password:
230 User amrood logged in.
ftp> dir
200 PORT command successful.
150 Opening data connection for /bin/ls.
total 1464
drwxr-sr-x 3 amrood group 1024 Mar 11 20:04 Mail
drwxr-sr-x 2 amrood group 1536 Mar 3 18:07 Misc
drwxr-sr-x 5 amrood group512 Dec 7 10:59 OldStuff
drwxr-sr-x 2 amrood group 1024 Mar 11 15:24 bin
drwxr-sr-x 5 amrood group 3072 Mar 13 16:10 mpl
-rw-r--r-- 1 amrood group 209671 Mar 15 10:57 myfile.out
drwxr-sr-x 3 amrood group512 Jan 5 13:32 public
drwxr-sr-x 3 amrood group512 Feb 10 10:17 pvm3
226 Transfer complete.
ftp> cd mpl
250 CWD command successful.
ftp> dir
200 PORT command successful.
150 Opening data connection for /bin/ls.
total 7320
-rw-r--r-- 1 amrood group 1630 Aug 8 1994 dboard.f
-rw-r----- 1 amrood group 4340 Jul 17 1994 vttest.c
-rwxr-xr-x 1 amrood group 525574 Feb 15 11:52 wave_shift
-rw-r--r-- 1 amrood group 1648 Aug 5 1994 wide.list
-rwxr-xr-x 1 amrood group 4019 Feb 14 16:26 fix.c
226 Transfer complete.
ftp> get wave_shift
200 PORT command successful.
150 Opening data connection for wave_shift (525574 bytes).
226 Transfer complete.
528454 bytes received in 1.296 seconds (398.1 Kbytes/s)
ftp> quit
221 Goodbye.
Telnet 工具
用戶在工作經(jīng)常會遇到這樣的需求:用戶需要連接到遠(yuǎn)程 UNIX 主機(jī)且需要在遠(yuǎn)程主機(jī)上進(jìn)行操作。Telnet 就是一個允許用戶對遠(yuǎn)程服務(wù)器進(jìn)行連接、登陸且可以進(jìn)行遠(yuǎn)程操作的工具。
一旦用戶使用 Telnet 工具登陸到了遠(yuǎn)程服務(wù)器上,那么用戶就可以像在本地主機(jī)操作那樣操作遠(yuǎn)程服務(wù)器來執(zhí)行任務(wù)。下面是 Telnet 對話的一個例子:
C:>telnet amrood.com
Trying...
Connected to amrood.com.
Escape character is '^]'./p>
p> login: amrood
amrood's Password:
*****************************************************
* *
* *
*WELCOME TO AMROOD.COM *
* *
* *
*****************************************************/p>
p> Last unsuccessful login: Fri Mar 3 12:01:09 IST 2009
Last login: Wed Mar 8 18:33:27 IST 2009 on pts/10/p>
p> { do your work }/p>
p> $ logout
Connection closed.
finger 工具
finger 指令用于顯示指定主機(jī)上有關(guān)用戶的信息。這里的主機(jī)可以是本地主機(jī),也可以是遠(yuǎn)程服務(wù)器。
由于安全原因,finger 也能在其他系統(tǒng)中使用。
下面是使用 finger 指令的簡單語法。
檢測本地主機(jī)中登陸用戶的信息的例子如下:
$ finger
Login Name Tty Idle Login Time Office amrood pts/0 Jun 25 08:03 (62.61.164.115)
獲取本地主機(jī)上指定有效用戶的信息的例子如下:
$ finger amrood
Login: amrood Name: (null)
Directory: /home/amrood Shell: /bin/bash
On since Thu Jun 25 08:03 (MST) on pts/0 from 62.61.164.115
No mail.
No Plan.
檢測遠(yuǎn)程服務(wù)器中所有登陸用戶的信息的例子如下:
$ finger @avtar.com
Login Name Tty Idle Login Time Office
amrood pts/0 Jun 25 08:03 (62.61.164.115)
獲取遠(yuǎn)程服務(wù)器上的指定有效用戶信息的例子如下:
$ finger amrood@avtar.com
Login: amrood Name: (null)
Directory: /home/amrood Shell: /bin/bash
On since Thu Jun 25 08:03 (MST) on pts/0 from 62.61.164.115
No mail.
No Plan.