基本UNIX命令集介紹(轉)

amyz發表於2007-08-10
基本UNIX命令集介紹(轉)[@more@]

  UNIX命令集是很有特色的命令集。它被設計成用來全面控制UNIX的機器。這部分將對UNIX命令集的一部分進行討論。本部分與後面重點講述經常用於傳輸控制協議(TCP)和Internet協議(IP)的UNIX命令。請注意我們要討論的僅是UNIX中最常用的命令而不是對它的命令作一通覽。後面每一部分都對命令集的一個命令進行介紹。在本章的最後,您還會學到駭客們經常用來侵入伺服器的命令。

  1.匹配符

  在談到命令時,如果該命令對應的檔案不在當前目錄內,UNIX將要求您使用路徑名呼叫本命令。大多數命令都不在您所處的目錄內而是在系統的其他某個地方。另外大多數UNIX系統允許您使用匹配符(wildcard)來訪問檔案或目錄。(表1)列出了UNIX中常用的匹配符。

  2.重定向字元

  大多數UNIX命令和程式從鍵盤接受輸入並將輸出送至螢幕。但對大多數命令來說您也可以將他們的輸入定向至文字檔案並將其輸出重定向至另一個檔案。例如:假設有一個程式叫encrypter。它從鍵盤輸入獲取,並進行加密,最後顯示在螢幕上。您可以重新改變其輸入。比如從一個預先定義的檔案,要進行輸入重定向可以使用字元“〈”。

  在UNIX中,您可以透過鍵入它的名字來執行該程式。如果您想重定向輸入至一個檔案,則您也可將要重定向至的檔名放在重定向符後面。例如:如果檔案叫:Top_secret,您應該如下鍵入命令:encrypter < top_secret,程式將從檔案top_secret輸入並加密最後輸出至螢幕上。

  另一方面,您也許想讓encrypter加密檔案然後單獨儲存起來。這時您就可將輸入重定向至另一個檔案。要進行這一步工作,可使用輸出重定向字元“>”,如果想存入private檔案,則應如下鍵入:encrypter < top_secret > private。

  Encrypter加密程式將從檔案top_secret中讀取其內容並進行加密,然後將結果輸出至檔案private中。程式將不會往螢幕上寫任何東西。

  在使用重定向字元時,如果重定向輸出的字元不存在,shell將會建立該檔案。如果該檔案已經存在,shell將會覆蓋該檔案而代之以加密後的內容。

  如果您不想覆蓋該檔案的內容,您可以使用UNIX的重定向追加字元“> >”。它會將加密結果追加至已存在的private檔案的尾部:encrypter < top_secret> >private。

  當然如果private不存在,shell將建立它。

  3.掌握命令列選項

  大多數UNIX命令都有多個選項或開關,您可以用來定義命令的不同形式。可以在命令列中命令後加入這些選項,一般使用一個破折線。例如:假設encrypter程式有一個選項叫X,它可以給encrypter選不同的加密演算法。這樣我們可以對encrypter的執行進行一下簡單的配置,使用encrypter -X。如果一個命令有多個選項,則可以順次加進輸入流中。例如:encrypter有兩個命令選項:x和y。則您可以按如下的方式鍵入命令encrypter _xy,如果您在程式中這樣定義的話。但一般將其分開,即如下鍵入:encrypter _x _y。

  4.通道符介紹

  經常地,您想使用通道將一個命令或程式的輸出傳送到另一個的輸入。在Unix中,可使用管道符“|”來完成兩程式的聯接。例如:如果使用一個叫report的命令將文件格式化為report格式。如果您有一個想以report格式瀏覽的檔案myreport,則您可如下操作:

  cat myreport | report

  這個命令符會將myreport檔案送給report命令處理,而不是直接顯示在螢幕上。然後reporte命令繼續處理並最終以report格式顯示在螢幕上。

  5.掌握後臺處理

  您可能選擇只是在後臺執行一個命令和程式。也就是說您可以讓she11執行它,但同時您還可以做許多別的事情。在後臺執行的命令,如同正常命令一樣鍵入,只不過需要在它後面加上“&”字元。例如:如果要想在後臺刪除所有目錄中的檔案則如下鍵入:

  $rm * &

  在執行命令後,您仍然可以執行別的任務,當在後臺執行任務時,系統將顯示一個數字,然後返回到命令提示符下。系統生成的數字是命令的程式識別符號。程式識別符號是很重要的,因為您可以使用它來檢視程式表以確定命令是否仍在執行。後面將對之進行討論。

  注意:在您進行後臺處理時,命令或程式仍可以從鍵盤取得輸入並將送至螢幕。如果您不想在一個命令或程式在後臺處理期間干擾您的工作,您可以使用重定向。

  6.掌握ping命令

  管理一臺伺服器時,您也許會經常向遠端伺服器傳送一些命令。但在傳送命令之前,必須先同該伺服器建立連線以確保其正在執行。這時,您可以使用ping命令傳送 Internet Control Message Protocol(ICMP)包給另一臺主機。ping命令將使用 ICMP的 ECHO_ REQUEST命令傳輸這些包。之後,ping將等待一個ICMP的ECHO_REQUEST回應,它與所傳送的包一 一對應。如果ping的一個地址沒有回應,則說明該伺服器不存在或沒有執行。例如:如果您同jamsa ping 連線,則會收到一個類似於下面的回應:

  $ 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命令以確定遠端伺服器在執行。在多數情況下,我們可能想確切知道誰正與遠端伺服器連線、從哪兒註冊的資訊。這時,我們可以使用finger使用者資訊介面來獲得關於遠端伺服器的資訊。

  在UNIX伺服器或終端上,我們可以使用finger命令來獲得finger使用者資訊介面。finger命令將返回在目標伺服器上所有當前的使用者的列表。在大多數UNIX中,列表將包括使用者的註冊名、全名、暱稱、空閒時間、註冊時間、辦公地點、電話號碼(伺服器如果知道電話號碼的話),您也可以使用finger 命令獲得一些特定使用者的資訊而不是所有使用者。為了獲得關於一個使用者的登入資訊,可以如下操作:

  $ 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 命令可以被任一個登入的使用者使用,而且它可以提供許多重要的資訊,一般情況下,系統管理員應將該命令禁止,以防駭客使用它獲得使用者資訊。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-941454/,如需轉載,請註明出處,否則將追究法律責任。

相關文章