Unix系統中常用內建工具的命令使用指南

佚名發表於2020-07-12

文章主要介紹了Unix系統中常用內建工具的命令使用指南,包括列印命令郵件命令和各種網路通訊命令等的介紹,需要的朋友可以參考下。

列印檔案
在 UNIX 系統中,您列印一個檔案之前,您可能想要重新格式化它調整它的邊距,高亮顯示一些單詞等等。大多數檔案也可以列印而不用重新格式化,但未經處理的列印可能不那麼好看。

UNIX 系統的許多版本中都包含了兩個強大的文字格式化命令,nroff 和 troff。他們不包含在本教程中,但是你可以在在網上查到很多關於講解這兩個命令的使用方式的資料。

pr 命令
pr 命令可以對終端螢幕上或者印表機上顯示的檔案進行小幅度的格式化。例如,如果在你的檔案中有一長串名字,你可以將它格式化成兩列或者多列在螢幕上顯示。

如下是 pr 命令的語法示例:

pr option(s) filename(s)
pr 命令僅僅只是格式化顯示在螢幕上或者列印的副本檔案,它不會修改原始檔。如下的列表顯示一些 pr 命令中可選的引數:

操作 描述
-k 產生 k 列的輸出
-d 將輸出用兩個空格隔開(並不是所有的 pr 版本適用)。
-h "header" 將下一個專案作為頭部資訊。
-t 去掉列印中的頭部和上/下邊距。
-l PAGE_LENGTH 設定一頁存放的資料行數為 PAGE_LENGTH(66)。預設的文字行數為 56 行。
-o MARGIN 設定每行之間的間隔為 MARGIN(0) 個空格。
-w PAGE_WIDTH 設定頁一行的字元個數為 PAGE_WIDTG(72) 個字元。這個引數僅僅對多文字列輸出可用。

在使用 pr 命令之前,如下是檢視 food 檔案的內容:

$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 將檔案列印到紙上,而不是在螢幕上顯示。一旦你準備使用 pr 命令格式化文字,您可以使用這些命令在任何與你電腦連線的印表機上列印你的檔案。

您的系統管理員可能已經建立了一個站點作為預設印表機。為了在預設的印表機上列印一個檔案命名 food 的檔案,你可以使用 lp 或 lpr 命令,如下示例:

$lp food
request id is laserp-525 (1 file)

lp 命令顯示了印表機的 ID,您可以使用它來取消列印作業或檢查它的狀態。

如果您正在使用 lp 命令,您可以使用 -nNum 選項引數設定列印副本的份數。對於 lpr 命令,您也可以使用引數 -Num 起到相同的作用。
如果有多個印表機連線到共享網路中,對於 lp 命令你可以使用 -dprinter 引數來選擇你想使用的印表機,對於 lpr 命令你可以使用 -Pprinter 引數達到相同的效果。這裡 printer 值得是印表機的名稱。

lpstat 和 lpg 命令
lpstat 命令顯示在印表機佇列中的作業:請求的 ID,所有者,檔案大小,當列印任務被髮送給印表機的時候,請求的狀態同樣也傳送了給印表機。

如果你想看到所有輸出請求而不僅僅是你自己的,你可以使用 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

在第一行顯示印表機狀態。如果印表機是禁用或紙用完了,你可以在第一行看到不同的資訊。

cancel 和 lprm 命令
cancel 命令終止 lp 命令發出的列印請求。lprm 命令終止 lpr 發出的列印請求。您可以指定印表機的 ID (由 lp 或 lpq 發出的請求)或名稱來終止列印任務。

$cancel laserp-575
request "laserp-575" cancelled

為了取消當前正在列印的任務,可以忽視它的 ID,僅僅輸入 cancel 命令和印表機的名稱即可:

$cancel laserp
request "laserp-573" cancelled

lprm 命令將取消活動的工作,如果它屬於你。否則,你可以使用工作的編號作為該命令的引數,或者使用破折號(-)刪除你所有的工作:

$lprm 575
dfA575diamond dequeued
cfA575diamond dequeued

lprm 命令將會告訴你從印表機佇列中刪除的任務的檔名。

傳送郵件
您可以使用 UNIX 郵件命令傳送和接收郵件。如下是傳送電子郵件的語法:

$mail [-s subject] [-c cc-addr] [-b bcc-addr] to-addr

如下是 mail 命令中重要的引數:

引數 描述
-s 在命令列中指定郵件的主題。
-c 給列表中的使用者傳送副本。使用者列表是由逗號分開的使用者名稱列表。
-b 傳送密文副本給列表中的使用者。各個列表由逗號分隔開。

下面是示例傳送測試訊息到 admin@yahoo.com。

$mail -s "Test Message" admin@yahoo.com

接下來該輸入你的訊息部分,訊息輸入部分是在行首的 “control-D" 的之後。如果想要結束,你僅僅只需要輸入一個點型別(.),如下:

Hi,
This is a test
.
Cc:

你可以傳送一個完整的檔案透過利用重定向 < 運算子,如下:

$mail -s "Report 05/06/07" admin@yahoo.com < demo.txt

為了檢查是否有收到郵件,在 UNIX 系統中你可以簡單的輸入如下的命令:

ping 工具
ping 指令會傳送一個應答請求到網路中某個主機。該指令主要用於檢測遠端主機是否可以正常通訊。

ping 指令可以用於如下用途:

追蹤並區分硬體或軟體的問題。
確定網路和遠端主機的狀態。
測試、測量或網路管理。
語法
如下是使用 ping 指令的語法:

$ping hostname or ip-address

上述指定會持續列印響應資訊。使用者可以同時按下 CTRL+C 按鍵來結束資訊的列印.

例子
下面是檢測網路中某主機是否可達的例子:

$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

如果某個主機不可達,那麼會顯示如下資訊:

$ping giiiiiigle.com
ping: unknown host giiiiigle.com

FTP 工具
FTP 就是檔案傳輸協議(File Transter protocol)的簡稱。使用該工具可以幫助使用者在主機間上傳或下載檔案。

FTP 工具擁有自己的 UNIX 指令,可以完成如下任務:

連結並登陸到遠端主機。
瀏覽目錄。
列出目錄內容。
上傳或下載檔案。
按照 ascii、ebcdic 或 binary 方式傳輸檔案。
語法
如下是使用 ftp 指令的語法:

$ftp hostname or ip-address

上述指令會觸發一個輸入賬號和密碼的登陸介面。如果使用者輸入的賬號和密碼認證透過,則使用者可以訪問相應輸入賬戶的根目錄,然後就可以執行多種操作。

下面是一些常用操作:

指令 描述
put filename 從本地往遠端伺服器上傳檔案
get filename 從遠端伺服器往本地下載檔案
mput file list 從本地往遠端伺服器批次上傳檔案
mget file list 從遠端伺服器往本地批次下載檔案
prompt off 關閉檔案提醒,在 mput 與 mget 時不會每操作一個檔案就詢問一次。
prompt on 開啟檔案提醒
dir 列出遠端伺服器上當前目錄下的所有檔案
cd dirname 切換本地主機上的目錄到指定目錄下
lcd dirname 切換遠端伺服器上的目錄到指定目錄下
quit 登出當前登陸

需要注意的是,上傳和下載檔案時的本地主機目錄都是當前目錄。如果使用者希望上傳或下載檔案的目錄為特定的目錄,那麼使用者需要先將當前目錄切換到指定目錄後再進行上傳或下載操作。

例子
下面是一些關於 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 工具
使用者在工作經常會遇到這樣的需求:使用者需要連線到遠端 UNIX 主機且需要在遠端主機上進行操作。Telnet 就是一個允許使用者對遠端伺服器進行連線、登陸且可以進行遠端操作的工具。

一旦使用者使用 Telnet 工具登陸到了遠端伺服器上,那麼使用者就可以像在本地主機操作那樣操作遠端伺服器來執行任務。下面是 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 指令用於顯示指定主機上有關使用者的資訊。這裡的主機可以是本地主機,也可以是遠端伺服器。

由於安全原因,finger 也能在其他系統中使用。

下面是使用 finger 指令的簡單語法。

檢測本地主機中登陸使用者的資訊的例子如下:

$ finger
Login Name Tty Idle Login Time Office amrood pts/0 Jun 25 08:03 (62.61.164.115)

獲取本地主機上指定有效使用者的資訊的例子如下:

$ 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.

檢測遠端伺服器中所有登陸使用者的資訊的例子如下:

$ finger @avtar.com
Login Name Tty Idle Login Time Office
amrood pts/0 Jun 25 08:03 (62.61.164.115)

獲取遠端伺服器上的指定有效使用者資訊的例子如下:

$ 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.

相關文章