Linux 的 常 用 網(wǎng) 絡(luò) 命 令
計(jì)算機(jī)網(wǎng)絡(luò)的主要優(yōu)點(diǎn)是能夠?qū)崿F(xiàn)資源和信息的共享,并且用戶可以遠(yuǎn)程訪問(wèn)信息。Linux提供了一組強(qiáng)有力的網(wǎng)絡(luò)命令來(lái)為用戶服務(wù),這些工具能夠幫助用戶登錄到遠(yuǎn)程計(jì)算機(jī)上、傳輸文件和執(zhí)行遠(yuǎn)程命令等。 本章介紹下列幾個(gè)常用的有關(guān)網(wǎng)絡(luò)操作的命令:
ftp 傳輸文件
telnet 登錄到遠(yuǎn)程計(jì)算機(jī)上
r - 使用各種遠(yuǎn)程命令
netstat 查看網(wǎng)絡(luò)的狀況
nslookup 查詢域名和IP地址的對(duì)應(yīng)
finger 查詢某個(gè)使用者的信息
ping 查詢某個(gè)機(jī)器是否在工作
使用ftp命令進(jìn)行遠(yuǎn)程文件傳輸
ftp命令是標(biāo)準(zhǔn)的文件傳輸協(xié)議的用戶接口。ftp是在TCP/IP網(wǎng)絡(luò)上的計(jì)算機(jī)之間傳輸文件的簡(jiǎn)單有效的方法。它允許用戶傳輸ASCII文件和二進(jìn)制文件。 在ftp會(huì)話過(guò)程中,用戶可以通過(guò)使用ftp客戶程序連接到另一臺(tái)計(jì)算機(jī)上。從此,用戶可以在目錄中上下移動(dòng)、列出目錄內(nèi)容、把文件從遠(yuǎn)程機(jī)拷貝到本地機(jī)上、把文件從本地機(jī)傳輸?shù)竭h(yuǎn)程系統(tǒng)中。
需要注意的是,如果用戶沒(méi)有那個(gè)文件的存取權(quán)限,就不能從遠(yuǎn)程系統(tǒng)中獲得文件或向遠(yuǎn)程系統(tǒng)傳輸文件。 為了使用ftp來(lái)傳輸文件,用戶必須知道遠(yuǎn)程計(jì)算機(jī)上的合法用戶名和口令。這個(gè)用戶名/口令的組合用來(lái)確認(rèn)ftp 會(huì)話,并用來(lái)確定用戶對(duì)要傳輸?shù)奈募梢赃M(jìn)行什么樣的訪問(wèn)。另外,用戶顯然需要知道對(duì)其進(jìn)行ftp 會(huì)話的計(jì)算機(jī)的名字或IP地址。
Ftp命令的功能是在本地機(jī)和遠(yuǎn)程機(jī)之間傳送文件。該命令的一般格式如下:
$ ftp 主機(jī)名/IP
其中“主機(jī)名/IP”是所要連接的遠(yuǎn)程機(jī)的主機(jī)名或IP地址。在命令行中,主機(jī)名屬于選項(xiàng),如果指定主機(jī)名,ftp將試圖與遠(yuǎn)程機(jī)的ftp服務(wù)程序進(jìn)行連接;如果沒(méi)有指定主機(jī)名,ftp將給出提示符,等待用戶輸入命令: $ ftp ftp > 此時(shí)在ftp>提示符后面輸入open命令加主機(jī)名或IP地址,將試圖連接指定的主機(jī)。 不管使用哪一種方法,如果連接成功,需要在遠(yuǎn)程機(jī)上登錄。用戶如果在遠(yuǎn)程機(jī)上有帳號(hào),就可以通過(guò)ftp使用這一帳號(hào)并需要提供口令。
在遠(yuǎn)程機(jī)上的用戶帳號(hào)的讀寫(xiě)權(quán)限決定該用戶在遠(yuǎn)程機(jī)上能下載什么文件和將上載文件放到哪個(gè)目錄中。 如果沒(méi)有遠(yuǎn)程機(jī)的專用登錄帳號(hào),許多ftp站點(diǎn)設(shè)有可以使用的特殊帳號(hào)。這個(gè)帳號(hào)的登錄名為anonymous(也稱為匿名ftp),當(dāng)使用這一帳號(hào)時(shí),要求輸入email地址作為口令。 如果遠(yuǎn)程系統(tǒng)提供匿名ftp服務(wù),用戶使用這項(xiàng)服務(wù)可以登錄到特殊的,供公開(kāi)使用的目錄。
一般專門(mén)提供兩個(gè)目錄:pub目錄和incoming目錄。pub目錄包含該站點(diǎn)供公眾使用的所有文件,incoming目錄存放上載到該站點(diǎn)的文件。 一旦用戶使用ftp在遠(yuǎn)程站點(diǎn)上登錄成功,將得到“ftp>”提示符?,F(xiàn)在可以自由使用ftp提供的命令,可以用 help命令取得可供使用的命令清單,也可以在 help命令后面指定具體的命令名稱,獲得這條命令的說(shuō)明。
最常用的命令有:
ls 列出遠(yuǎn)程機(jī)的當(dāng)前目錄
cd 在遠(yuǎn)程機(jī)上改變工作目錄
lcd 在本地機(jī)上改變工作目錄
ascii 設(shè)置文件傳輸方式為ASCII模式
binary 設(shè)置文件傳輸方式為二進(jìn)制模式
close終止當(dāng)前的ftp會(huì)話
hash 每次傳輸完數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)后就顯示一個(gè)#號(hào)
get(mget) 從遠(yuǎn)程機(jī)傳送指定文件到本地機(jī)
put(mput) 從本地機(jī)傳送指定文件到遠(yuǎn)程機(jī)
open 連接遠(yuǎn)程ftp站點(diǎn)
quit斷開(kāi)與遠(yuǎn)程機(jī)的連接并退出ftp
? 顯示本地幫助信息
! 轉(zhuǎn)到Shell中
下面簡(jiǎn)單將ftp常用命令作一簡(jiǎn)介。
啟動(dòng)ftp會(huì)話 open命令用于打開(kāi)一個(gè)與遠(yuǎn)程主機(jī)的會(huì)話。該命令的一般格式是: open 主機(jī)名/IP 如果在ftp 會(huì)話期間要與一個(gè)以上的站點(diǎn)連接,通常只用不帶參數(shù)的ftp命令。如果在會(huì)話期間只想與一臺(tái)計(jì)算機(jī)連接,那么在命令行上指定遠(yuǎn)程主機(jī)名或IP地址作為ftp命令的參數(shù)。 終止ftp會(huì)話 close、disconnect、quit和bye命令用于終止與遠(yuǎn)程機(jī)的會(huì)話。close和disronnect命令關(guān)閉與遠(yuǎn)程機(jī)的連接,但是使用戶留在本地計(jì)算機(jī)的ftp程序中。quit和bye命令都關(guān)閉用戶與遠(yuǎn)程機(jī)的連接,然后退出用戶機(jī)上的ftp 程序。 改變目錄 “cd [目錄](méi)”命令用于在ftp會(huì)話期間改變遠(yuǎn)程機(jī)上的目錄,lcd命令改變本地目錄,使用戶能指定查找或放置本地文件的位置。 遠(yuǎn)程目錄列表 ls命令列出遠(yuǎn)程目錄的內(nèi)容,就像使用一個(gè)交互shell中的ls命令一樣。ls命令的一般格式是: ls [目錄](méi) [本地文件] 如果指定了目錄作為參數(shù),那么ls就列出該目錄的內(nèi)容。如果給出一個(gè)本地文件的名字,那么這個(gè)目錄列表被放入本地機(jī)上您指定的這個(gè)文件中。 從遠(yuǎn)程系統(tǒng)獲取文件 get和mget命令用于從遠(yuǎn)程機(jī)上獲取文件。get命令的一般格式為: get 文件名 您還可以給出本地文件名,這個(gè)文件名是這個(gè)要獲取的文件在您的本地機(jī)上創(chuàng)建時(shí)的文件名。如果您不給出一個(gè)本地文件名,那么就使用遠(yuǎn)程文件原來(lái)的名字。 mget命令一次獲取多個(gè)遠(yuǎn)程文件。mget命令的一般格式為: mget 文件名列表 使用用空格分隔的或帶通配符的文件名列表來(lái)指定要獲取的文件,對(duì)其中的每個(gè)文件都要求用戶確認(rèn)是否傳送。向遠(yuǎn)程系統(tǒng)發(fā)送文件 put和mput命令用于向遠(yuǎn)程機(jī)發(fā)送文件。Put命令的一般格式為: put 文件名 mput命令一次發(fā)送多個(gè)本地文件,mput命令的一般格式為: mput 文件名列表 使用用空格分隔的或帶通配符的文件名列表來(lái)指定要發(fā)送的文件。對(duì)其中的每個(gè)文件都要求用戶確認(rèn)是否發(fā)送。 改變文件傳輸模式 默認(rèn)情況下,ftp按ASCII模式傳輸文件,用戶也可以指定其他模式。ascii和brinary命令的功能是設(shè)置傳輸?shù)哪J?。用ASCII模式傳輸文件對(duì)純文本是非常好的,但為避免對(duì)二進(jìn)制文件的破壞,用戶可以以二進(jìn)制模式傳輸文件。 檢查傳輸狀態(tài) 傳輸大型文件時(shí),可能會(huì)發(fā)現(xiàn)讓ftp提供關(guān)于傳輸情況的反饋信息是非常有用的。hash命令使ftp在每次傳輸完數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)后,就在屏幕上打印一個(gè)#字符。本命令在發(fā)送和接收文件時(shí)都可以使用。 ftp中的本地命令 當(dāng)您使用ftp時(shí),字符“!”用于向本地機(jī)上的命令shell傳送一個(gè)命令。如果用戶處在ftp會(huì)話中,需要shell做某些事,就很有用。例如用戶要建立一個(gè)目錄來(lái)保存接收到的文件。如果輸入!mkdir new_dir,那么Linux就在用戶當(dāng)前的本地目錄中創(chuàng)建一個(gè)名為new_dir 的目錄。
從遠(yuǎn)程機(jī)grunthos下載二進(jìn)制數(shù)據(jù)文件的典型對(duì)話過(guò)程如下:
$ ftp grunthos Connected to grunthos 220 grunthos ftp server Name (grunthos:pc): anonymous 33l Guest login ok, send your complete e-mail address as password. Password: 230 Guest 1ogin ok, access restrictions apply. Remote system type is UNIX. ftp > cd pub 250 CWD command successful. ftp > ls 200 PORT command successful. l50 opening ASCII mode data connection for /bin/1s. total ll4 rog1 rog2 226 Transfer comp1ete . ftp > binary 200 type set to I. ftp > hash Hash mark printing on (1024 bytes/hash mark). ftp > get rog1 200 PORT command successfu1. 150 opening BINARY mode data connection for rogl (l4684 bytes). # # # # # # # # # # # # # 226 Transfer complete. 14684 bytes received in 0.0473 secs (3e + 02 Kbytes/sec) ftp > quit 22l Goodbye.
使用telnet命令訪問(wèn)遠(yuǎn)程計(jì)算機(jī)
用戶使用telnet命令進(jìn)行遠(yuǎn)程登錄。該命令允許用戶使用telnet協(xié)議在遠(yuǎn)程計(jì)算機(jī)之間進(jìn)行通信,用戶可以通過(guò)網(wǎng)絡(luò)在遠(yuǎn)程計(jì)算機(jī)上登錄,就像登錄到本地機(jī)上執(zhí)行命令一樣。 為了通過(guò)telnet登錄到遠(yuǎn)程計(jì)算機(jī)上,必須知道遠(yuǎn)程機(jī)上的合法用戶名和口令。雖然有些系統(tǒng)確實(shí)為遠(yuǎn)程用戶提供登錄功能,但出于對(duì)安全的考慮,要限制來(lái)賓的操作權(quán)限,因此,這種情況下能使用的功能是很少的。當(dāng)允許遠(yuǎn)程用戶登錄時(shí),系統(tǒng)通常把這些用戶放在一個(gè)受限制的shell中,以防系統(tǒng)被懷有惡意的或不小心的用戶破壞。 用戶還可以使用telnet從遠(yuǎn)程站點(diǎn)登錄到自己的計(jì)算機(jī)上,檢查電子郵件、編輯文件和運(yùn)行程序,就像在本地登錄一樣。
但是,用戶只能使用基于終端的環(huán)境而不是X Wndows環(huán)境,telnet只為普通終端提供終端仿真,而不支持 X Wndow等圖形環(huán)境。 telnet命令的一般形式為: telnet 主機(jī)名/IP 其中“主機(jī)名/IP”是要連接的遠(yuǎn)程機(jī)的主機(jī)名或IP地址。如果這一命令執(zhí)行成功,將從遠(yuǎn)程機(jī)上得到login:提示符。 使用telnet命令登錄的過(guò)程如下: $ telnet 主機(jī)名/IP 啟動(dòng)telnet會(huì)話。 一旦telnet成功地連接到遠(yuǎn)程系統(tǒng)上,就顯示登錄信息并提示用戶輸人用戶名和口令。如果用戶名和口令輸入正確,就能成功登錄并在遠(yuǎn)程系統(tǒng)上工作。 在telnet提示符后面可以輸入很多命令,用來(lái)控制telnet會(huì)話過(guò)程,在telnet聯(lián)機(jī)幫助手冊(cè)中對(duì)這些命令有詳細(xì)的說(shuō)明。
下面是一臺(tái)Linux計(jì)算機(jī)上的telnet會(huì)話舉例:
$ telnet server. somewhere. com Trying 127.0.0.1… Connected to serve. somewhere. com. Escape character is '?]'. “TurboLinux release 4. 0 (Colgate)kernel 2.0.18 on an I486login: bubba password: Last login:Mon Nov l5 20:50:43 for localhost Linux 2. 0.6. (Posix). server: ~$ server: ~$ logout Connection closed by foreign host $
用戶結(jié)束了遠(yuǎn)程會(huì)話后,一定要確保使用logout命令退出遠(yuǎn)程系統(tǒng)。然后telnet報(bào)告遠(yuǎn)程會(huì)話被關(guān)閉,并返回到用戶的本地機(jī)的Shell提示符下。 r-系列命令 除ftp和telnet以外,還可以使用r-系列命令訪問(wèn)遠(yuǎn)程計(jì)算機(jī)和在網(wǎng)絡(luò)上交換文件。 使用r-系列命令需要特別注意,因?yàn)槿绻脩舨恍⌒?,就?huì)造成嚴(yán)重的安全漏洞。用戶發(fā)出一個(gè)r-系列命令后,遠(yuǎn)程系統(tǒng)檢查名為/etc/hosts.equiv的文件,以查看用戶的主機(jī)是否列在這個(gè)文件中。如果它沒(méi)有找到用戶的主機(jī),就檢查遠(yuǎn)程機(jī)上同名用戶的主目錄中名為.rhosts的文件,看是否包括該用戶的主機(jī)。如果該用戶的主機(jī)包括在這兩個(gè)文件中的任何一個(gè)之中,該用戶執(zhí)行r-系列命令就不用提供口令。
雖然用戶每次訪問(wèn)遠(yuǎn)程機(jī)時(shí)不用鍵入口令可能是非常方便的,但是它也可能會(huì)帶來(lái)嚴(yán)重的安全問(wèn)題。我們建議用戶在建立/etc/hosts.equiv和.rhosts文件之前,仔細(xì)考慮r-命令隱含的安全問(wèn)題。
rlogin命令
rlogin 是“remote login”(遠(yuǎn)程登錄)的縮寫(xiě)。該命令與telnet命令很相似,允許用戶啟動(dòng)遠(yuǎn)程系統(tǒng)上的交互命令會(huì)話。rlogin 的一般格式是:
rlogin [ -8EKLdx ] [ -e char ] [-k realm ] [ - l username ] host
一般最常用的格式是: rlogin host 該命令中各選項(xiàng)的含義為:
-8 此選項(xiàng)始終允許8位輸入數(shù)據(jù)通道。該選項(xiàng)允許發(fā)送格式化的ANSI字符和其他的特殊代碼。如果不用這個(gè)選項(xiàng),除非遠(yuǎn)端的終止和啟動(dòng)字符不是或,否則就去掉奇偶校驗(yàn)位。
-E 停止把任何字符當(dāng)作轉(zhuǎn)義字符。當(dāng)和-8選項(xiàng)一起使用時(shí),它提供一個(gè)完全的透明連接。
-K 關(guān)閉所有的Kerberos確認(rèn)。只有與使用Kerberos 確認(rèn)協(xié)議的主機(jī)連接時(shí)才使用這個(gè)選項(xiàng)。
-L 允許rlogin會(huì)話在litout模式中運(yùn)行。要了解更多信息,請(qǐng)查閱tty聯(lián)機(jī)幫助。
-d 打開(kāi)與遠(yuǎn)程主機(jī)進(jìn)行通信的TCP sockets的socket調(diào)試。要了解更多信息,請(qǐng)查閱setsockopt的聯(lián)機(jī)幫助。
-e 為rlogin會(huì)話設(shè)置轉(zhuǎn)義字符,默認(rèn)的轉(zhuǎn)義字符是“~”,用戶可以指定一個(gè)文字字符或一個(gè)\nnn形式的八進(jìn)制數(shù)。
-k 請(qǐng)求rlogin獲得在指定區(qū)域內(nèi)的遠(yuǎn)程主機(jī)的Kerberos許可,而不是獲得由krb_realmofhost(3)確定的遠(yuǎn)程主機(jī)區(qū)域內(nèi)的遠(yuǎn)程主機(jī)的Kerberos 許可。
-x 為所有通過(guò)rlogin會(huì)話傳送的數(shù)據(jù)打開(kāi)DES加密。這會(huì)影響響應(yīng)時(shí)間和CPU利用率,但是可以提高安全性。
rsh命令
rsh是“remote shell”(遠(yuǎn)程 shell)的縮寫(xiě)。 該命令在指定的遠(yuǎn)程主機(jī)上啟動(dòng)一個(gè)shell并執(zhí)行用戶在rsh命令行中指定的命令。如果用戶沒(méi)有給出要執(zhí)行的命令,rsh就用rlogin命令使用戶登錄到遠(yuǎn)程機(jī)上。
rsh命令的一般格式是:
rsh [-Kdnx] [-k realm] [-l username] host [command]
一般常用的格式是:
rsh host [command ]
command可以是從shell提示符下鍵人的任何Linux命令。
rsh命令中各選項(xiàng)的含義如下:
-K 關(guān)閉所有的Kerbero確認(rèn)。該選項(xiàng)只在與使用Kerbero確認(rèn)的主機(jī)連接時(shí)才使用。
-d 打開(kāi)與遠(yuǎn)程主機(jī)進(jìn)行通信的TCP sockets的socket調(diào)試。要了解更多的信息,請(qǐng)查閱setsockopt的聯(lián)機(jī)幫助。
-k 請(qǐng)求rsh獲得在指定區(qū)域內(nèi)的遠(yuǎn)程主機(jī)的Kerberos許可,而不是獲得由krb_relmofhost(3)確定的遠(yuǎn)程主機(jī)區(qū)域內(nèi)的遠(yuǎn)程主機(jī)的Kerberos許可。
-l 缺省情況下,遠(yuǎn)程用戶名與本地用戶名相同。本選項(xiàng)允許指定遠(yuǎn)程用戶名,如果指定了遠(yuǎn)程用戶名,則使用Kerberos 確認(rèn),與在rlogin命令中一樣。
-n 重定向來(lái)自特殊設(shè)備/dev/null的輸入。
-x 為傳送的所有數(shù)據(jù)打開(kāi)DES加密。這會(huì)影響響應(yīng)時(shí)間和CPU利用率,但是可以提高安全性。Linux把標(biāo)準(zhǔn)輸入放入rsh命令中,并把它拷貝到要遠(yuǎn)程執(zhí)行的命令的標(biāo)準(zhǔn)輸入中。它把遠(yuǎn)程命令的標(biāo)準(zhǔn)輸出拷貝到rsh的標(biāo)準(zhǔn)輸出中。它還把遠(yuǎn)程標(biāo)準(zhǔn)錯(cuò)誤拷貝到本地標(biāo)準(zhǔn)錯(cuò)誤文件中。任何退出、中止和中斷信號(hào)都被送到遠(yuǎn)程命令中。當(dāng)遠(yuǎn)程命令終止了,rsh也就終止了。
rcp命令
rcp代表“remote file copy”(遠(yuǎn)程文件拷貝)。該命令用于在計(jì)算機(jī)之間拷貝文件。
rcp命令有兩種格式。第一種格式用于文件到文件的拷貝;第二種格式用于把文件或目錄拷貝到另一個(gè)目錄中。
rcp命令的一般格式是:
rcp [-px] [-k realm] file1 file2 rcp [-px] [-r] [-k realm] file
directory 每個(gè)文件或目錄參數(shù)既可以是遠(yuǎn)程文件名也可以是本地文件名。遠(yuǎn)程文件名具有如下形式:rname@rhost:path,其中rname是遠(yuǎn)程用戶名,rhost是遠(yuǎn)程計(jì)算機(jī)名,path是這個(gè)文件的路徑。
rcp命令的各選項(xiàng)含義如下:
-r 遞歸地把源目錄中的所有內(nèi)容拷貝到目的目錄中。要使用這個(gè)選項(xiàng),目的必須是一個(gè)目錄。
-p 試圖保留源文件的修改時(shí)間和模式,忽略u(píng)mask。
-k 請(qǐng)求rcp獲得在指定區(qū)域內(nèi)的遠(yuǎn)程主機(jī)的Kerberos 許可,而不是獲得由krb_relmofhost(3)確定的遠(yuǎn)程主機(jī)區(qū)域內(nèi)的遠(yuǎn)程主機(jī)的Kerberos許可。
-x 為傳送的所有數(shù)據(jù)打開(kāi)DES加密。這會(huì)影響響應(yīng)時(shí)間和CPU利用率,但是可以提高安全性。 如果在文件名中指定的路徑不是完整的路徑名,那么這個(gè)路徑被解釋為相對(duì)遠(yuǎn)程機(jī)上同名用戶的主目錄。如果沒(méi)有給出遠(yuǎn)程用戶名,就使用當(dāng)前用戶名。如果遠(yuǎn)程機(jī)上的路徑包含特殊shell字符,需要用反斜線(\)、雙引號(hào)(”)或單引號(hào)(’)括起來(lái),使所有的shell元字符都能被遠(yuǎn)程地解釋。 需要說(shuō)明的是,rcp不提示輸入口令,它通過(guò)rsh命令來(lái)執(zhí)行拷貝。