基本UNIX命令集介紹
Unix命令集是很有特色的命令集。它被設(shè)計成用來全面控制UNIX的機器。這部分將對UNIX命令集的一部分進行討論。本部分與后面重點講述經(jīng)常用于傳輸控制協(xié)議(TCP)和Internet協(xié)議(IP)的UNIX命令。請注意我們要討論的僅是UNIX中最常用的命令而不是對它的命令作一通覽。后面每一部分都對命令集的一個命令進行介紹。在本章的最后,您還會學(xué)到黑客們經(jīng)常用來侵入服務(wù)器的命令。
1.匹配符
在談到命令時,如果該命令對應(yīng)的文件不在當(dāng)前目錄內(nèi),UNIX將要求您使用路徑名調(diào)用本命令。大多數(shù)命令都不在您所處的目錄內(nèi)而是在系統(tǒng)的其他某個地方。另外大多數(shù)UNIX系統(tǒng)允許您使用匹配符(wildcard)來訪問文件或目錄。(表1)列出了UNIX中常用的匹配符。
2.重定向字符
大多數(shù)UNIX命令和程序從鍵盤接受輸入并將輸出送至屏幕。但對大多數(shù)命令來說您也可以將他們的輸入定向至文本文件并將其輸出重定向至另一個文件。例如:假設(shè)有一個程序叫encrypter。它從鍵盤輸入獲取,并進行加密,最后顯示在屏幕上。您可以重新改變其輸入。比如從一個預(yù)先定義的文件,要進行輸入重定向可以使用字符“〈。
在UNIX中,您可以通過鍵入它的名字來執(zhí)行該程序。如果您想重定向輸入至一個文件,則您也可將要重定向至的文件名放在重定向符后面。例如:如果文件叫:Top_secret,您應(yīng)該如下鍵入命令:encrypter < top_secret,程序?qū)奈募op_secret輸入并加密最后輸出至屏幕上。
另一方面,您也許想讓encrypter加密文件然后單獨存儲起來。這時您就可將輸入重定向至另一個文件。要進行這一步工作,可使用輸出重定向字符“>,如果想存入private文件,則應(yīng)如下鍵入:encrypter < top_secret > private。
Encrypter加密程序?qū)奈募op_secret中讀取其內(nèi)容并進行加密,然后將結(jié)果輸出至文件private中。程序?qū)⒉粫聊簧蠈懭魏螙|西。
在使用重定向字符時,如果重定向輸出的字符不存在,shell將會創(chuàng)建該文件。如果該文件已經(jīng)存在,shell將會覆蓋該文件而代之以加密后的內(nèi)容。
如果您不想覆蓋該文件的內(nèi)容,您可以使用Unix的重定向追加字符“> >。它會將加密結(jié)果追加至已存在的private文件的尾部:encrypter < top_secret> >private。
當(dāng)然如果private不存在,shell將創(chuàng)建它。
3.掌握命令行選項
大多數(shù)UNIX命令都有多個選項或開關(guān),您可以用來定義命令的不同形式。可以在命令行中命令后加入這些選項,一般使用一個破折線。例如:假設(shè)encrypter程序有一個選項叫X,它可以給encrypter選不同的加密算法。這樣我們可以對encrypter的運行進行一下簡單的配置,使用encrypter -X。如果一個命令有多個選項,則可以順次加進輸入流中。例如:encrypter有兩個命令選項:x和y。則您可以按如下的方式鍵入命令encrypter _xy,如果您在程序中這樣定義的話。但一般將其分開,即如下鍵入:encrypter _x _y。
4.通道符介紹
經(jīng)常地,您想使用通道將一個命令或程序的輸出傳送到另一個的輸入。在Unix中,可使用管道符“|來完成兩程序的聯(lián)接。例如:如果使用一個叫report的命令將文檔格式化為report格式。如果您有一個想以report格式瀏覽的文件myreport,則您可如下操作:
cat myreport | report
這個命令符會將myreport文件送給report命令處理,而不是直接顯示在屏幕上。然后reporte命令繼續(xù)處理并最終以report格式顯示在屏幕上。
5.掌握后臺處理
您可能選擇只是在后臺執(zhí)行一個命令和程序。也就是說您可以讓she11執(zhí)行它,但同時您還可以做許多別的事情。在后臺執(zhí)行的命令,如同正常命令一樣鍵入,只不過需要在它后面加上“&字符。例如:如果要想在后臺刪除所有目錄中的文件則如下鍵入:
$rm * &
在執(zhí)行命令后,您仍然可以運行別的任務(wù),當(dāng)在后臺執(zhí)行任務(wù)時,系統(tǒng)將顯示一個數(shù)字,然后返回到命令提示符下。系統(tǒng)生成的數(shù)字是命令的進程標(biāo)識符。進程標(biāo)識符是很重要的,因為您可以使用它來查看進程表以確定命令是否仍在運行。后面將對之進行討論。
注意:在您進行后臺處理時,命令或程序仍可以從鍵盤取得輸入并將送至屏幕。如果您不想在一個命令或程序在后臺處理期間干擾您的工作,您可以使用重定向。
6.掌握ping命令
管理一臺服務(wù)器時,您也許會經(jīng)常向遠程服務(wù)器發(fā)送一些命令。但在發(fā)送命令之前,必須先同該服務(wù)器建立連接以確保其正在運行。這時,您可以使用ping命令發(fā)送 Internet Control Message Protocol(ICMP)包給另一臺主機。ping命令將使用 ICMP的 ECHO_ REQUEST命令傳輸這些包。之后,ping將等待一個ICMP的ECHO_REQUEST回應(yīng),它與所發(fā)送的包一 一對應(yīng)。如果ping的一個地址沒有回應(yīng),則說明該服務(wù)器不存在或沒有運行。例如:如果您同jamsa ping 連接,則會收到一個類似于下面的回應(yīng):
$ Ping Jamsa
ping jamsa(192.159.234.12):56 data bytes
64 bytes from jamsa(192.159.234.12):TCMP_SEQ=0 ttl=254 time=10ms
64 bytes from jamsa(192.159.234.12):TEMP_SEQ=0 ttl=254 time=10ms
64 bytes from jamsa(192.159.234.12):TCMP_SEQ=0 ttl=254 time=10ms
64 bytes from jamsa(192.159.234.12):TCMP_SEQ=0 ttl=254 time=10ms
64 bytes from jamsa(192.159.234.12):TCMP_SEQ=0 ttl=254 time=10ms
Jamsa ping statistics
4 packets transmitted,4 packets received,0%packet lost round_trip min/avg/max=10/10/10ms
$
ping命令支持的一些附加的命令集可用來確定TCP/IP連接中的潛在的問題。
(表2)列出了幾個ping命令的選項及它們的含義:
表2 ping的命令選項
7.finger命令的介紹
在前面部分中,我們討論了如何使用ping命令以確定遠程服務(wù)器在運行。在多數(shù)情況下,我們可能想確切知道誰正與遠程服務(wù)器連接、從哪兒注冊的信息。這時,我們可以使用finger用戶信息接口來獲得關(guān)于遠程服務(wù)器的信息。
在Unix服務(wù)器或終端上,我們可以使用finger命令來獲得finger用戶信息接口。finger命令將返回在目標(biāo)服務(wù)器上所有當(dāng)前的用戶的列表。在大多數(shù)UNIX中,列表將包括用戶的注冊名、全名、昵稱、空閑時間、注冊時間、辦公地點、電話號碼(服務(wù)器如果知道電話號碼的話),您也可以使用finger 命令獲得一些特定用戶的信息而不是所有用戶。為了獲得關(guān)于一個用戶的登錄信息,可以如下操作:
$ finger lklander
login name:lklander(message off) In real lifte:lars Klander
Directory:/u/lklander shell:/bin/ksh
on since Sep 22 22:06:35 on ttyp0
No plan
$
同ping命令一樣,finger命令也支持幾個選項。表1-9列出了這些選項的一個列表。
由于finger 命令可以被任一個登錄的用戶使用,而且它可以提供許多重要的信息,一般情況下,系統(tǒng)管理員應(yīng)將該命令禁止,以防黑客使用它獲得用戶信息。
