wall命令
功能:這個命令的功能是對全部已登錄的用戶發送信息,用戶可以先把要發送的信息寫好存入一個文件中,然後輸入:
# wall < 文件名
這樣就能對所有的用戶發送信息了。
在上面的例子中符號“<”表示輸入重定向,有關它的含義和用法請參閱第十章的有關內容。 例如:
# wall ‘Thank you!’
Broadcast message from root (tty1) Fri Nov 26 14:15:07 1999…
Thank you!
#
執行以上命令後,用戶的屏幕上顯示出“Thank you!”信息後,並不出現系統提示符$(#),再次按回車鍵後,屏幕出現系統提示符。
write命令
功能:write命令的功能是向系統中某一個用戶發送信息。
格式:write 用戶帳號 [終端名稱]
例如: $ write xxq hello
此時系統進入發送信息狀態,用戶可以輸入要發送的信息,輸入完畢,希望退出發送狀態時,按組合鍵< Ctrl+c>即可。
上述命令執行的結果是,用戶xxq的屏幕上會顯示:
message from [email protected] tty1 at 15:51…
hello
EOF
mesg指令
mesg命令設定是否允許其他用戶用write命令給自己發送信息。如果允許別人給自己發送信息,輸入命令:
# mesg y
否則,輸入:
# mesg n
對於超級用戶,系統的默認值爲 n;而對於一般用戶系統的默認值爲y。 如果mesg後不帶任何參數,則顯示當前的狀態是y還是n,如:
$ mesg is
y
或:
# mesg is
n
sync命令
功能:sync命令是在關閉Linux系統時使用的。 用戶需要注意的是,不能用簡單的關閉電源的方法關閉系統,因爲Linux象其他Unix系統一樣,在內存中緩存了許多數據,在關閉系統時需要進行內存數據與硬盤數據的同步校驗,保證硬盤數據在關閉系統時是最新的,只有這樣才能確保數據不會丟失。一般正常的關閉系統的過程是自動進行這些工作的,在系統運行過程中也會定時做這些工作,不需要用戶干預。 sync命令是強制把內存中的數據寫回硬盤,以免數據的丟失。用戶可以在需要的時候使用此命令。
格式: sync
shutdown命令
功能:shutdown 命令可以安全地關閉或重啓Linux系統,它在系統關閉之前給系統上的所有登錄用戶提示一條警告信息。該命令還允許用戶指定一個時間參數,可以是一個精確的時間,也可以是從現在開始的一個時間段。精確時間的格式是hh:mm,表示小時和分鐘;時間段由“+”和分鐘數表示。系統執行該命令後,會自動進行數據同步的工作。
格式:shutdown [選項] [時間] [警告信息]
參數:
- k 並不真正關機,而只是發出警告信息給所有用戶。
- r 關機後立即重新啓動。
- h 關機後不重新啓動。
- f 快速關機,重啓動時跳過fsck。
- n 快速關機,不經過init程序。
- c 取消一個已經運行的shutdown。
需要特別說明的是,該命令只能由超級用戶使用。
例1:系統在十分鐘後關機,並且馬上重新啓動。
# shutdown – r +10
例2:系統馬上關機,並且不重新啓動。
# shutdown – h now
free命令
功能:free命令的功能是查看當前系統內存的使用情況,它顯示系統中剩餘及已用的物理內存和交換內存,以及共享內存和被核心使用的緩衝區。
格式: free [-b | -k | -m]
參數:
-b 以字節爲單位顯示。
-k 以K字節爲單位顯示。
-m 以兆字節爲單位顯示。
例:
$ free
total used free shared buffers cached
Mem: 63076 32020 31056 8204 16360 6048
-/+ buffers/cache: 9612 53464
Swap: 64476 2240 62236
uptime命令
功能:uptime命令顯示系統已經運行了多長時間,它依次顯示下列信息:現在時間、系統已經運行了多長時間、目前有多少登錄用戶、系統在過去的1分鐘、5分鐘和15分鐘內的平均負載。
格式: uptime
例:
# uptime
4:43pm up 1 day, 5:51, 2 user, load average: 0.01, 0.01, 0.00
Linux與用戶有關的命令
passwd命令
出於系統安全考慮,Linux系統中的每一個用戶除了有其用戶名外,還有其對應的用戶口令。因此使用useradd命令增加時,還需使用passwd命令爲每一位新增加的用戶設置口令;用戶以後還可以隨時用passwd命令改變自己的口令。
該命令的一般格式爲: passwd [用戶名] 其中用戶名爲需要修改口令的用戶名。只有超級用戶可以使用“passwd 用戶名”修改其他用戶的口令,普通用戶只能用不帶參數的passwd命令修改自己的口令。
該命令的使用方法如下:
輸入
passwd< Enter>;
在(current) UNIX passwd:下輸入當前的口令
在new password:提示下輸入新的口令(在屏幕上看不到這個口令):
系統提示再次輸入這個新口令。
輸入正確後,這個新口令被加密並放入/etc/shdow文件.選取一個不易被破譯的口令是很重要的.
選取口令應遵守如下規則:
口令應該至少有六位(最好是八位)字符;
口令應該是大小寫字母、標點符號和數字混雜的。
超級用戶修改其他用戶(xxq)的口令的過程如下,
# passwd xxq
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully
#
su命令
這個命令非常重要。它可以讓一個普通用戶擁有超級用戶或其他用戶的權限,也可以讓超級用戶以普通用戶的身份做一些事情。普通用戶使用這個命令時必須有超級用戶或其他用戶的口令。如要離開當前用戶的身份,可以打exit。
該命令的一般形式爲: su [選項] [? ] [使用者帳號]
說明:若沒有指定使用者帳號,則系統預設值爲超級用戶root。
參數:
? c 執行一個命令後就結束。
? 加了這個減號的目的是使環境變量和欲轉換的用戶相同。
? m 保留環境變量不變。
例1: 變成root用戶
$ su ?
password: 【輸入超級用戶的密碼】
例2: 變成xu使用者,並執行一個命令就結束。
$ su -xu ? c “rmdir cat1”
Linux目錄的創建與刪除命令
mkdir命令
功能:創建一個目錄(類似DOS下的md命令)。
語法:mkdir [選項] dirname
說明:該命令創建由dirname命名的目錄。要求創建目錄的用戶在當前目錄中 (dirname的父目錄中)具有寫權限,並且dirname不能是當前目錄中已有的目錄或 文件名稱。
參數:
- m 對新建目錄設置存取權限。也可以用chmod命令設置。
- p 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在, 加上此選項後, 系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄。
例如:在當前目錄中建立inin 和inin下的/mail目錄,也就是連續建兩個目錄。
$ mkdir - p - m 700 ./inin/mail/
該命令的執行結果是在當前目錄中創建嵌套的目錄層次inin /mail,權限設置爲只 有文件主有讀、寫和執行權限。
rmdir 命令
功能:刪除空目錄。
語法:rmdir [選項] dirname
說明:dirname表示目錄名。該命令從一個目錄中刪除一個或多個子目錄項。需要 特別注意的是,一個目錄被刪除之前必須是空的。(注意,rm - r dir命令可代替 rmdir,但是有很大危險性。)刪除某目錄時也必須具有對父目錄的寫權限。
參數:
- p 遞歸刪除目錄dirname,當子目錄刪除後其父目錄爲空時,也一同被刪除。如果整個路徑被刪除或者由於某種原因保留部分路徑,則系統在標準輸出上顯示相應 的信息。
例如:
$ rmdir - p /usr/xu/txt 將/usr/xu/txt目錄刪除。
改變工作目錄、顯示目錄內容命令
cd 命令
功能:改變工作目錄。
語法:cd [directory]
說明:該命令將當前目錄改變至directory所指定的目錄。若沒有指定directory, 則回到用戶的主目錄。爲了改變到指定目錄,用戶必須擁有對指定目錄的執行和讀 權限。
該命令可以使用通配符(通配符含義請參見第十章)。
例如:假設用戶當前目錄是:/home/xu,現需要更換到/home/xu/pro目錄中,
$ cd pro 此時,用戶可以執行pwd命令來顯示工作目錄。
$ pwd /home/xu/pro
pwd 命令
功能:在Linux層次目錄結構中,用戶可以在被授權的任意目錄下利用mkdir命令創建新目錄,也可以利用cd命令從一個目錄轉換到另一個目錄。然而,沒有提示符來告知用 戶目前處於哪一個目錄中。要想知道當前所處的目錄,可以使用pwd命令,該命令顯示整個路徑名。
語法:pwd
說明:此命令顯示出當前工作目錄的絕對路徑。
例:
$ pwd /home/xu 顯示的路徑名爲/home/xu,每個目錄名都用“/”隔開,根目錄以開頭的“/”表 示。
ls 命令
功能:ls是英文單詞list的簡寫,其功能爲列出目錄的內容。這是用戶最常用的一個命令之一,因爲用戶需要不時地查看某個目錄的內容。該命令類似於DOS下的dir命令。
語法:ls [選項] [目錄或是文件]
對於每個目錄,該命令將列出其中的所有子目錄與文件。對於每個文件,ls將輸出 其文件名以及所要求的其他信息。默認情況下,輸出條目按字母順序排序。當未給出目錄名或是文件名時,就顯示當前目錄的信息。
參數:
- a 顯示指定目錄下所有子目錄與文件,包括隱藏文件。
- A 顯示指定目錄下所有子目錄與文件,包括隱藏文件。但不列出“.”和 “..”。
- b 對文件名中的不可顯示字符用八進制逃逸字符顯示。
- c 按文件的修改時間排序。
- C 分成多列顯示各項。
- d 如果參數是目錄,只顯示其名稱而不顯示其下的各文件。往往與l選項一起使 用,以得到目錄的詳細信息。
- f 不排序。該選項將使lts選項失效,並使aU選項有效。
- F 在目錄名後面標記“/”,可執行文件後面標記“*”,符號鏈接後面標記 “@”,管道(或FIFO)後面標記“|”,socket文件後面標記“=”。
- i 在輸出的第一列顯示文件的i節點號。
- l 以長格式來顯示文件的詳細信息。這個選項最常用。
每行列出的信息依次是: 文件類型與權限 鏈接數 文件屬主 文件屬組 文件大小 建立或最近修改的時間 名字
對於符號鏈接文件,顯示的文件名之後有“—〉”和引用文件路徑名。
對於設備文件,其“文件大小”字段顯示主、次設備號,而不是文件大小。
目錄中的總塊數顯示在長格式列表的開頭,其中包含間接塊。
- L 若指定的名稱爲一個符號鏈接文件,則顯示鏈接所指向的文件。
- m 輸出按字符流格式,文件跨頁顯示,以逗號分開。
- n 輸出格式與l選項相同,只不過在輸出中文件屬主和屬組是用相應的UID號和 GID號來表示,而不是實際的名稱。
- o 與l選項相同,只是不顯示擁有者信息。
- p 在目錄後面加一個“/”。
- q 將文件名中的不可顯示字符用“?”代替。
- r 按字母逆序或最早優先的順序顯示輸出結果。
- R 遞歸式地顯示指定目錄的各個子目錄中的文件。
- s 給出每個目錄項所用的塊數,包括間接塊。
- t 顯示時按修改時間(最近優先)而不是按名字排序。若文件修改時間相同,則 按字典順序。修改時間取決於是否使用了c或u選頂。缺省的時間標記是最後一次修 改時間。
- u 顯示時按文件上次存取的時間(最近優先)而不是按名字排序。即將-t的時間 標記修改爲最後一次訪問的時間。
- x 按行顯示出各排序項的信息。
-----------------------------------------------------------------------------------------------------
用ls - l命令顯示的信息中,開頭是由10個字符構成的字符串,其中第一個字符表示文件類型,它可以是下述類型之一:
- 普通文件
d 目錄
l 符號鏈接
b 塊設備文件
c 字符設備文件
後面的9個字符表示文件的訪問權限,分爲3組,每組3位。
第一組表示文件屬主的權限,第二組表示同組用戶的權限,第三組表示其他用戶的權限。每一組的三個字 符分別表示對文件的讀、寫和執行權限。
各權限如下所示:
r 讀
w 寫
x 執行。對於目錄,表示進入權限。
s 當文件被執行時,把該文件的UID或GID賦予執行進程的UID(用戶ID)或GID(組 ID)。
t 設置標誌位(留在內存,不被換出)。如果該文件是目錄,在該目錄中的文件只能被超級用戶、目錄擁有者或文件屬主刪除。如果它是可執行文件,在該文件執行 後,指向其正文段的指針仍留在內存。這樣再次執行它時,系統就能更快地裝入該文件。
- 沒有設置權限。
------------------------------------------------------------------------------------------------------
例1:列出當前目錄的內容。
$ ls
-F bin/ lib/ var/
etc/ tmp/ index. html
例2:列出某個目錄的內容。
$ ls –F /home/xu Mai1/
map1e/ mm/ ptr/ telnetd*
fd/ mbox mount sobsrc. tgz tmp/
例3:列出某個目錄下所有的文件(包括隱藏文件)。
$ 1s -aF /home/xu
./ . .e1m/ .netscape/ map1e ptr/
../ .fvwin2rc95 .term/ mbox sobsrc. tgz
.Xauthority .kermrc Mai1/ mm/ te1netd*
.bash-history .ncftp/ fd/ mount tmp/
例4:用長格式列出某個目錄下所有的文件(包括隱藏文件)。
$ 1s -laF /home/xu
total 584
drwxr-xr-x l2 root root 1024 Nov 02 22:07 ./
drwxr-xr-x 15 bbs bbs 1024 Jul 29 07:08 ../
-rw-r--r-- 1 yu users 4343 Ju1 29 22:20 .bash-history
drwx------ 2 yu users 1024 May 17 06:36 .e1m/
--rw------ 1 root root 4628 Jun 2 1l:34 mbox
lrwxrwxrwx 1 root root l4 Ju1 29 03:08 mount->/mnt
drwxrwxr-x 4 root root 1024 Ju1 23 03:43 ptr/
-rw--r--r- 1 root root 483997 Ju1 l5 17:3l sobsrc. tgz
-rwxr-xr-x l root users 60177 Jun 8 01:29 telnetd*
drwxr-xr-x 2 root root 1024 Mar 6 22:32 tmp/
例5:用長格式列出某個目錄下所有的文件包括隱藏文件和它們的i節點號。並把文 件屬主和屬組以UID號和GID號的形式顯示。
$ 1s -1ainF /home/xu tota1 584 399672
drwxr-xr-x l2 0 0 l024 Nov 30 22:07 ./ 333907
drwxr-xr-x 15 9999 99 l024 Ju1 29 07:08 ../ 39980l
-rw------- l 0 0 0 Jun 2 2:09 .Xauthority 399679
-rw-r--r-- 1 505 l00 4343 Jul 29 22:20 .bash-hist0ry 30l763
drwxr----- 2 505 100 l024 May 17 06:36 .e1m/ ……
Linux改變文件或目錄的訪問權限命令
Linux系統中的每個文件和目錄都有訪問許可權限,用它來確定誰可以通過何種方式對文件和目錄進行訪問和操作。
文件或目錄的訪問權限分爲只讀,只寫和可執行三種。以文件爲例,只讀權限表示只允許讀其內容,而禁止對其做任何的更改操作。可執行權限表示允許將該文件作爲一個程序執行。文件被創建時,文件所有者自動擁有對該文件的讀、寫和可執行權限,以便於對文件的閱讀和修改。用戶也可根據需要把訪問權限設置爲需要的任何組合。
有三種不同類型的用戶可對文件或目錄進行訪問:文件所有者,同組用戶、其他用戶。所有者一般是文件的創建者。所有者可以允許同組用戶有權訪問文件,還可以將文件的訪問權限賦予系統中的其他用戶。在這種情況下,系統中每一位用戶都能訪問該用戶擁有的文件或目錄。
每一文件或目錄的訪問權限都有三組,每組用三位表示,分別爲文件屬主的讀、寫和執行權限;與屬主同組的用戶的讀、寫和執行權限;系統中其他用戶的讀、寫和執行權限。當用ls -l命令顯示文件或目錄的詳細信息時,最左邊的一列爲文件的訪問權限。例如:
$ ls -l sobsrc. tgz
-rw-r--r-- 1 root root 483997 Ju1 l5 17:3l sobsrc. tgz
橫線代表空許可。r代表只讀,w代表寫,x代表可執行。注意這裏共有10個位置。第一個字符指定了文件類型。在通常意義上,一個目錄也是一個文件。如果第一個字符是橫線,表示是一個非目錄的文件。如果是d,表示是一個目錄。
例如:
- rw- r-- r--
普通文件 文件主 組用戶 其他用戶
是文件sobsrc.tgz 的訪問權限,表示sobsrc.tgz是一個普通文件;sobsrc.tgz的屬主有讀寫權限;與sobsrc.tgz屬主同組的用戶只有讀權限;其他用戶也只有讀權限。
確定了一個文件的訪問權限後,用戶可以利用Linux系統提供的chmod命令來重新設定不同的訪問權限。也可以利用chown命令來更改某個文件或目錄的所有者。利用chgrp命令來更改某個文件或目錄的用戶組。
下面分別對這些命令加以介紹。
chmod 命令
功能:chmod命令是非常重要的,用於改變文件或目錄的訪問權限.用戶用它控制文件或目錄的訪問權限.
語法:該命令有兩種用法。一種是包含字母和操作符表達式的文字設定法;另一種是包含數字的數字設定法。
1. 文字設定法
chmod [who] [+ | - | =] [mode] 文件名?
參數:
操作對象who可是下述字母中的任一個或者它們的組合:
u 表示“用戶(user)”,即文件或目錄的所有者。
g 表示“同組(group)用戶”,即與文件屬主有相同組ID的所有用戶。
o 表示“其他(others)用戶”。
a 表示“所有(all)用戶”。它是系統默認值。
操作符號可以是:
+ 添加某個權限。
- 取消某個權限。
= 賦予給定權限並取消其他所有權限(如果有的話)。
設置mode所表示的權限可用下述字母的任意組合:
r 可讀。
w 可寫。
x 可執行。
X 只有目標文件對某些用戶是可執行的或該目標文件是目錄時才追加x 屬性。
s 在文件執行時把進程的屬主或組ID置爲該文件的文件屬主。方式“u+s”設置文件的用戶ID位,“g+s”設置組ID位。
t 保存程序的文本到交換設備上。
u 與文件屬主擁有一樣的權限。
g 與和文件屬主同組的用戶擁有一樣的權限。
o 與其他用戶擁有一樣的權限。
文件名:以空格分開的要改變權限的文件列表,支持通配符。
在一個命令行中可給出多個權限方式,其間用逗號隔開。例如:chmod g+r,o+r example
使同組和其他用戶對文件example 有讀權限。
2. 數字設定法
我們必須首先了解用數字表示的屬性的含義:0表示沒有權限,1表示可執行權限,2表示可寫權限,4表示可讀權限,然後將其相加。所以數字屬性的格式應爲3個從0到7的八進制數,其順序是(u)(g)(o)。
例如,如果想讓某個文件的屬主有"讀/寫"二種權限,需要把4(可讀)+2(可寫)=6(讀/寫).
數字設定法的一般形式爲:
chmod [mode] 文件名?
例子:
(1)文字設定法:
例1:$ chmod a+x sort
即設定文件sort的屬性爲:
文件屬主(u) 增加執行權限
與文件屬主同組用戶(g) 增加執行權限
其他用戶(o) 增加執行權限
例2:$ chmod ug+w,o-x text
即設定文件text的屬性爲:
文件屬主(u) 增加寫權限
與文件屬主同組用戶(g) 增加寫權限
其他用戶(o) 刪除執行權限
例3:$ chmod u+s a.out
假設執行chmod後a.out的權限爲(可以用ls – l a.out命令來看):
–rws--x--x 1 inin users 7192 Nov 4 14:22 a.out
並且這個執行文件要用到一個文本文件shiyan1.c,其文件存取權限爲“–rw-------”,即該文件只有其屬主具有讀寫權限。
當其他用戶執行a.out這個程序時,他的身份因這個程序暫時變成inin(由於chmod命令中使用了s選項),所以他就能夠讀取shiyan1.c這個文件(雖然這個文件被設定爲其他人不具備任何權限),這就是s的功能。
因此,在整個系統中特別是root本身,最好不要過多的設置這種類型的文件(除非必要)這樣可以保障系統的安全,避免因爲某些程序的bug而使系統遭到入侵。
例4:$ chmod a–x mm.txt
$ chmod –x mm.txt
$ chmod ugo–x mm.txt
以上這三個命令都是將文件mm.txt的執行權限刪除,它設定的對象爲所有使用者。
(2)數字設定法:
例1: $ chmod 644 mm.txt
$ ls –l
即設定文件mm.txt的屬性爲:
-rw-r--r-- 1 inin users 1155 Nov 5 11:22 mm.txt
文件屬主(u)inin 擁有讀、寫權限
與文件屬主同組人用戶(g) 擁有讀權限
其他人(o) 擁有讀權限
例2: $ chmod 750 wch.txt
$ ls –l
-rwxr-x--- 1 inin users 44137 Nov 12 9:22 wchtxt
即設定wchtxt這個文件的屬性爲:
文件主本人(u)inin 可讀/可寫/可執行權
與文件主同組人(g) 可讀/可執行權
其他人(o) 沒有任何權限
chgrp命令
功能:改變文件或目錄所屬的組。
語法:chgrp [選項] group filename?
該命令改變指定指定文件所屬的用戶組。其中group可以是用戶組ID,也可以是/etc/group文件中用戶組的組名。文件名是以空格分開的要改變屬組的文件列表,支持通配符。如果用戶不是該文件的屬主或超級用戶,則不能改變該文件的組。
參數:
- R 遞歸式地改變指定目錄及其下的所有子目錄和文件的屬組。
例1:$ chgrp - R book /opt/local /book
改變/opt/local /book/及其子目錄下的所有文件的屬組爲book。
chown 命令
功能:更改某個文件或目錄的屬主和屬組。這個命令也很常用。例如root用戶把自己的一個文件拷貝給用戶xu,爲了讓用戶xu能夠存取這個文件,root用戶應該把這個文件的屬主設爲xu,否則,用戶xu無法存取這個文件。
語法:chown [選項] 用戶或組 文件
說明:chown將指定文件的擁有者改爲指定的用戶或組。用戶可以是用戶名或用戶ID。組可以是組名或組ID。文件是以空格分開的要改變權限的文件列表,支持通配符。
參數:
- R 遞歸式地改變指定目錄及其下的所有子目錄和文件的擁有者。
- v 顯示chown命令所做的工作。
例1:把文件shiyan.c的所有者改爲wang。
$ chown wang shiyan.c
例2:把目錄/his及其下的所有文件和子目錄的屬主改成wang,屬組改成users。
$ chown - R wang.users /his
Linux文件的複製、刪除和移動命令
cp命令
功能:將給出的文件或目錄拷貝到另一文件或目錄中,就如同DOS下的copy命令一樣,功能非常強大。
語法:cp [選項] 源文件或目錄 目標文件或目錄
說明:該命令把指定的源文件複製到目標文件或把多個源文件複製到目標目錄中。
參數:
- a 該選項通常在拷貝目錄時使用。它保留鏈接、文件屬性,並遞歸地拷貝目錄,其作用等於dpR選項的組合。
- d 拷貝時保留鏈接。
- f 刪除已經存在的目標文件而不提示。
- i 和f選項相反,在覆蓋目標文件之前將給出提示要求用戶確認。回答y時目標文件將被覆蓋,是交互式拷貝。
- p 此時cp除複製源文件的內容外,還將把其修改時間和訪問權限也複製到新文件中。
- r 若給出的源文件是一目錄文件,此時cp將遞歸複製該目錄下所有的子目錄和文件。此時目標文件必須爲一個目錄名。
- l 不作拷貝,只是鏈接文件。
需要說明的是,爲防止用戶在不經意的情況下用cp命令破壞另一個文件,如用戶指定的目標文件名是一個已存在的文件名,用cp命令拷貝文件後,這個文件就會被新拷貝的源文件覆蓋,因此,建議用戶在使用cp命令拷貝文件時,最好使用i選項。
$ cp - i exam1.c /usr/wang/shiyan1.c
該命令將文件exam1.c拷貝到/usr/wang 這個目錄下,並改名爲 shiyan1.c。若不希望重新命名,可以使用下面的命令:
$ cp exam1.c /usr/ wang/
$ cp - r /usr/xu/ /usr/liu/ 將/usr/xu目錄中的所有文件及其子目錄拷貝到目錄/usr/liu中。
mv命令
功能:爲文件或目錄改名或將文件由一個目錄移入另一個目錄中。該命令如同DOS下的ren和move的組合。
語法:mv [選項] 源文件或目錄 目標文件或目錄
說明:視mv命令中第二個參數類型的不同(是目標文件還是目標目錄),mv命令將文件重命名或將其移至一個新的目錄中。當第二個參數類型是文件時,mv命令完成文件重命名,此時,源文件只能有一個(也可以是源目錄名),它將所給的源文件或目錄重命名爲給定的目標文件名。當第二個參數是已存在的目錄名稱時,源文件或目錄參數可以有多個,mv命令將各參數指定的源文件均移至目標目錄中。在跨文件系統移動文件時,mv先拷貝,再將原有文件刪除,而鏈至該文件的鏈接也將丟失。
參數:
- I 交互方式操作。如果mv操作將導致對已存在的目標文件的覆蓋,此時系統詢問是否重寫,要求用戶回答y或n,這樣可以避免誤覆蓋文件。
- f 禁止交互操作。在mv操作要覆蓋某已有的目標文件時不給任何指示,指定此選項後,i選項將不再起作用。
如果所給目標文件(不是目錄)已存在,此時該文件的內容將被新文件覆蓋。爲防止用戶在不經意的情況下用mv命令破壞另一個文件,建議用戶在使用mv命令移動文件時,最好使用i選項。
需要注意的是,mv與cp的結果不同。mv好象文件“搬家”,文件個數並末增加,而cp對文件進行復制,文件個數增加了。
例1:將/usr/xu中的所有文件移到當前目錄(用“.”表示)中:
$ mv /usr/xu/ * .
例2:將文件wch.txt重命名爲wjz.doc
$ mv wch.txt wjz.doc
rm命令
功能:在linux中創建文件很容易,系統中隨時會有文件變得過時且毫無用處。用戶可以用rm命令將其刪除。該命令的功能爲刪除一個目錄中的一個或多個文件或目錄,它也可以將某個目錄及其下的所有文件及子目錄均刪除。對於鏈接文件,只是刪除了鏈接,原有文件均保持不變。
語法: rm [選項] 文件…
如果沒有使用- r選項,則rm不會刪除目錄。
參數:
- f 忽略不存在的文件,從不給出提示。
- r 指示rm將參數中列出的全部目錄和子目錄均遞歸地刪除。
- i 進行交互式刪除。
使用rm命令要格外小心。因爲一旦一個文件被刪除,它是不能被恢復的。例如,用戶在輸入cp,mv或其他命令時,不小心誤輸入了rm命令,當用戶按了回車鍵並認識到自己的錯誤時,已經太晚了,文件已經沒有了。爲了防止此種情況的發生,可以使用rm命令中的 i選項來確認要刪除的每個文件。如果用戶輸入y,文件將被刪除。如果輸入任何其他東西,文件將被保留。在下一個例子中,用戶要刪除文件test和example。然後會被要求對每個文件進行確認。用戶最終決定刪除example文件,保留test文件。
$ rm - ii test example Remove test ?n
Remove example ?y
Linux文件內容查詢命令
grep、fgrep和egrep命令
這組命令以指定模式搜索文件,並通知用戶在什麼文件中搜索到與指定的模式匹配的字符串,並打印出所有包含該字符串的文本行,在該文本行的最前面是該行所在的文件名。grep命令一次只能搜索一個指定的模式;egrep命令檢索擴展的正則表達式(包括表達式組和可選項);fgrep命令檢索固定字符串,它不識別正則表達式,是快速搜索命令。
這組命令在搜索與定位文件中特定的主題方面非常有用。要搜索的模式可以被認爲是一些關鍵詞,您可以用它們來搜索文件中包含的這些關鍵詞。編寫程序時,可以用它來尋找某一個函數,或是相關的詞組。grep命令的搜索功能比fgrep強大,因爲grep命令的搜索模式可以是正則表達式,而fgrep卻不能。有關正則表達式請參見shell一章。
該組命令中的每一個命令都有一組選項,利用這些選項可以改變其輸出方式。例如,可以在搜索到的文本行上加入行號,或者只輸出文本行的行號,或者輸出所有與搜索模式不匹配的文本行,或只簡單地輸出已搜索到指定模式的文件名,並且可以指定在查找模式時忽略大小寫。
這組命令在指定的輸入文件中查找與模式匹配的行。如果沒有指定文件,則從標準輸入中讀取。正常情況下,每個匹配的行被顯示到標準輸出。如果要查找的文件是多個,則在每一行輸出之前加上文件名。
語法:
grep [選項] [查找模式] [文件名1,文件名2,……]
egrep [選項] [查找模式] [文件名1,文件名2,……]
fgrep [選項] [查找模式] [文件名1,文件名2,……]
參數:
- E 每個模式作爲一個擴展的正則表達式對待。
- F 每個模式作爲一組固定字符串對待(以新行分隔),而不作爲正則表達式。
- b在輸出的每一行前顯示包含匹配字符串的行在文件中的字節偏移量。
- c 只顯示匹配行的數量。
- i 比較時不區分大小寫。
- h 在查找多個文件時,指示grep不要將文件名加入到輸出之前。
- l 顯示首次匹配串所在的文件名並用換行符將其隔開。當在某文件中多次出現匹配串時,不重複顯示此文件名。
- n 在輸出前加上匹配串所在行的行號(文件首行行號爲1)。
- v 只顯示不包含匹配串的行。
- x 只顯示整行嚴格匹配的行。
- e expression 指定檢索使用的模式。用於防止以“-”開頭的模式被解釋爲命令選項。
- f expfile 從expfile文件中獲取要搜索的模式,一個模式佔一行。
對該組命令的使用還需注意以下方面:
在命令後鍵入搜索的模式,再鍵入要搜索的文件。其中,文件名列表中也可以使用特殊字符,如“*”等,用來生成文件名列表。如果想在搜索的模式中包含有空格的字符串,可以用單引號把要搜索的模式括起來,用來表明搜索的模式是由包含空格的字符串組成。否則,Shell將把空格認爲是命令行參數的定界符,而grep命令將把搜索模式中的單詞解釋爲文件名列表中的一部分。在下面的例子中,grep命令在文件example中搜索模式“text file”。
$ grep ’text file’ example
用戶可以在命令行上用Shell特殊字符來生成將要搜索的文件名列表。在下面的例子中,特殊字符“*”用來生成一個文件名列表,該列表包含當前目錄下所有的文件。該命令將搜索出當前目錄下所有文件中與模式匹配的行。
$ grep data *
特殊字符在搜索一組指定的文件時非常有用。例如,如果想搜索所有的C程序源文件中特定的模式,您可以用“*.c”來指定文件名列表。假設用戶的 C程序中包含一些不必要的轉向語句(goto語句),想要找到這些語句,可以用如下的命令來搜索並顯示所有包含goto語句的代碼行:
$ grep goto *.c
用戶可以在命令行上鍵入搜索模式,也可以使用-f選項從指定文件中讀取要搜索的模式。在文件中,每個搜索模式佔一行。如果經常要搜索一組常見字符串時,這個功能非常有用。在下面的例子中,用戶要在文件exam中搜索字符串“editor”和“create”,就把要搜索的模式放置在文件mypats中,然後,grep命令從文件mypats中讀取要搜索的模式。
$ cat mypats
editor
create
$ grep -f mypats exam
文件查找命令
find命令
功能:在目錄結構中搜索文件,並執行指定的操作。此命令提供了相當多的查找條件,功能很強大。
語法:find 起始目錄 尋找條件 操作
說明:find命令從指定的起始目錄開始,遞歸地搜索其各個子目錄,查找滿足尋找條件的文件並對之採取相關的操作。
該命令提供的尋找條件可以是一個用邏輯運算符not、and、or組成的複合條件。邏輯運算符and、or、not的含義爲:
(1)and:邏輯與,在命令中用“-a”表示,是系統缺省的選項,表示只有當所給的條件都滿足時,尋找條件纔算滿足。例如:
$ find –name ’tmp’ –xtype c -user ’inin’
該命令尋找三個給定條件都滿足的所有文件。
(2)or:邏輯或,在命令中用“-o”表示。該運算符表示只要所給的條件中有一個滿足時,尋找條件就算滿足。
例如:
$ find –name ’tmp’ –o –name ’mina*’
該命令查詢文件名爲’tmp’或是匹配’mina*’的所有文件。
(3)not:邏輯非,在命令中用“!”表示。該運算符表示查找不滿足所給條件的文件。
例如:
$ find ! –name ’tmp’
該命令查詢文件名不是’tmp’的所有文件。
需要說明的是:當使用很多的邏輯選項時,可以用括號把這些選項括起來。爲了避免Shell本身對括號引起誤解,在話號前需要加轉義字符“//”來去除括號的意義。
例:$ find //(–name ’tmp’ –xtype c -user ’inin’ //) 尋找條件有以下選項:
首先,下列各個選項中的n值可以有三種輸入方式,假設n爲20,則:
+20 表示20以後(21,22,23等)
-20 表示20以前(19,18,17等)
20 表示正好是20
1. 以名稱和文件屬性查找。
- name ’字串’ 查找文件名匹配所給字串的所有文件,字串內可用通配符*、?、[ ]。
- lname ’字串’查找文件名匹配所給字串的所有符號鏈接文件,字串內可用通配符*、?、[ ]。
-gid n 查找屬於ID號爲n的用戶組的所有文件。
-uid n 查找屬於ID號爲n的用戶的所有文件。
-group ’字串’ 查找屬於用戶組名爲所給字串的所有的文件。
-user ’字串’ 查找屬於用戶名爲所給字串的所有的文件。
-empty 查找大小爲0的目錄或文件。
-path ’字串’ 查找路徑名匹配所給字串的所有文件,字串內可用通配符*、?、[ ]。
-perm 權限 查找具有指定權限的文件和目錄,權限的表示可以如711,644。
-size n[bckw] 查找指定文件大小的文件,n後面的字符表示單位,缺省爲b,代表512字節的塊。
-type x 查找類型爲x的文件,x爲下列字符之一:
b 塊設備文件
c 字符設備文件
d 目錄文件
p 命名管道(FIFO)
f 普通文件
l 符號鏈接文件(symbolic links)
s socket文件
-xtype x 與-type基本相同,但只查找符號鏈接文件。
2. 以時間爲條件查找
- amin n 查找n分鐘以前被訪問過的所有文件。
- atime n 查找n天以前被訪問過的所有文件。
- cmin n 查找n分鐘以前文件狀態被修改過的所有文件。
- ctime n 查找n天以前文件狀態被修改過的所有文件。
- mmin n 查找n分鐘以前文件內容被修改過的所有文件。
- mtime n 查找n天以前文件內容被修改過的所有文件。
3. 可執行的操作
- exec 命令名稱 {} 對符合條件的文件執行所給的Linux 命令,而不詢問用戶是否需要執行該命令。{}表示命令的參數即爲所找到的文件;命令的末尾必須以“ //;”結束。
- ok 命令名稱 { } 對符合條件的文件執行所給的Linux 命令,與exec不同的是,它會詢問用戶是否需要執行該命令。
- ls 詳細列出所找到的所有文件。
- fprintf 文件名 將找到的文件名寫入指定文件。
- print 在標準輸出設備上顯示查找出的文件名。
- printf 格式 格式的寫法請參考有關C語言的書。
例1:查找當前目錄中所有以main開頭的文件,並顯示這些文件的內容。
$ find . - name ‘main*’ - exec more {} //;
例2:刪除當前目錄下所有一週之內沒有被訪問過的a .out或*.o文件。
$ find . //(- name a.out - o - name ‘*.o’//)//
> - atime +7 - exec rm {} //;
說明如下: 命令中的“.”表示當前目錄,此時find將從當前目錄開始,逐個在其子目錄中查找滿足後面指定條件的文件。//(和//)表示括號(),其中的“//”稱爲轉義符。之所以這樣寫是由於對Shell而言,(和)另有不同的含義,而不是這裏的用於組合條件的用途。“- name a.out”是指要查找名爲a.out的文件;“- name ‘*.o’”是指要查找所有名字以 .o結尾的文件。這兩個- name之間的- o表示邏輯或(or),即查找名字爲a.out或名字以 .o結尾的文件,find在當前目錄及其子目錄下找到這佯的文件之後,再進行判斷,看其最後訪問時間是否在7天以前(條件-atime +7),若是,則對該文件執行命令rm(- exec rm{ }//;)。其中{ }代表當前查到的符合條件的文件名,//;則是語法所要求的。上述命令中第一行的最後一個//是續行符。當命令太長而在一行寫不下時,可輸入一個//,之後系統將顯示一個>,指示用戶繼續輸入命令。
locate命令
功能:locate命令用於查找文件,它比find命令的搜索速度快,它需要一個數據庫,這個數據庫由每天的例行工作(crontab)程序來建立。當我們建立好這個數據庫後,就可以方便地來搜尋所需文件了。
語法: locate 相關字
例如:查找相關字issue
$ locate issue
/etc/issue
/etc/issue.net
/usr/man/man5/issue.5
/usr/man/man5/issue.net.5
Linux備份與壓縮命令
用戶經常需要備份計算機系統中的數據,爲了節省存儲空間,常常將備份文件進行壓縮。下面分別介紹備份與壓縮的命令。
tar命令
作用:tar可以爲文件和目錄創建檔案。利用tar,用戶可以爲某一特定文件創建檔案(備份文件),也可以在檔案中改變文件,或者向檔案中加入新的文件。tar最初被用來在磁帶上創建檔案,現在,用戶可以在任何設備上創建檔案,如軟盤。利用tar命令,可以把一大堆的文件和目錄全部打包成一個文件,這對於備份文件或將幾個文件組合成爲一個文件以便於網絡傳輸是非常有用的。Linux上的tar是GNU版本的。
語法:tar [主選項+輔選項] 文件或者目錄
使用該命令時,主選項是必須要有的,它告訴tar要做什麼事情,輔選項是輔助使用的,可以選用。
參數:
c 創建新的檔案文件。如果用戶想備份一個目錄或是一些文件,就要選擇這個選項。
r 把要存檔的文件追加到檔案文件的未尾。例如用戶已經作好備份文件,又發現還有一個目錄或是一些文件忘記備份了,這時可以使用該選項,將忘記的目錄或文件追加到備份文件中。
t 列出檔案文件的內容,查看已經備份了哪些文件。
u 更新文件。就是說,用新增的文件取代原備份文件,如果在備份文件中找不到要更新的文件,則把它追加到備份文件的最後。
x 從檔案文件中釋放文件。
輔助選項:
b 該選項是爲磁帶機設定的。其後跟一數字,用來說明區塊的大小,系統預設值爲20(20*512 bytes)。
f 使用檔案文件或設備,這個選項通常是必選的。
k 保存已經存在的文件。例如我們把某個文件還原,在還原的過程中,遇到相同的文件,不會進行覆蓋。
m 在還原文件時,把所有文件的修改時間設定爲現在。
M 創建多卷的檔案文件,以便在幾個磁盤中存放。
v 詳細報告tar處理的文件信息。如無此選項,tar不報告文件信息。
w 每一步都要求確認。
z 用gzip來壓縮/解壓縮文件,加上該選項後可以將檔案文件進行壓縮,但還原時也一定要使用該選項進行解壓縮。
例子:
例1:把/home目錄下包括它的子目錄全部做備份文件,備份文件名爲usr.tar。
$ tar cvf usr.tar /home
例2:把/home目錄下包括它的子目錄全部做備份文件,並進行壓縮,備份文件名爲usr.tar.gz 。
$ tar czvf usr.tar.gz /home
例3:把usr.tar.gz這個備份文件還原並解壓縮。
$ tar xzvf usr.tar.gz
例4:查看usr.tar備份文件的內容,並以分屏方式顯示在顯示器上。
$ tar tvf usr.tar | more
要將文件備份到一個特定的設備,只需把設備名作爲備份文件名。
例5:用戶在/dev/fd0設備的軟盤中創建一個備份文件,並將/home 目錄中所有的文件都拷貝到備份文件中。
$ tar cf /dev/fd0 /home
要恢復設備磁盤中的文件,可使用xf選項:
$ tar xf /dev/fd0
如果用戶備份的文件大小超過設備可用的存貯空間,如軟盤,您可以創建一個多卷的tar備份文件。M選項指示tar命令提示您使用一個新的存貯設備,當使用M選項向一個軟驅進行存檔時,tar命令在一張軟盤已滿的時候會提醒您再放入一張新的軟盤。這樣您就可以把tar檔案存入幾張磁盤中。
$ tar cMf /dev/fd0 /home
要恢復幾張盤中的檔案,只要將第一張放入軟驅,然後輸入有x和M選項的tar命令。在必要時您會被提醒放入另外一張軟盤。
$ tar xMf /dev/fd0
gzip命令
作用:減少文件大小有兩個明顯的好處,一是可以減少存儲空間,二是通過網絡傳輸文件時,可以減少傳輸的時間。gzip是在Linux系統中經常使用的一個對文件進行壓縮和解壓縮的命令,既方便又好用。
語法:gzip [選項] 壓縮(解壓縮)的文件名
參數:
-c 將輸出寫到標準輸出上,並保留原有文件。
-d 將壓縮文件解壓。
-l 對每個壓縮文件,顯示下列字段:
壓縮文件的大小
未壓縮文件的大小
壓縮比
未壓縮文件的名字
-r 遞歸式地查找指定目錄並壓縮其中的所有文件或者是解壓縮。
-t 測試,檢查壓縮文件是否完整。
-v 對每一個壓縮和解壓的文件,顯示文件名和壓縮比。
-num 用指定的數字num調整壓縮的速度,-1或--fast表示最快壓縮方法(低壓縮比),-9或--best表示最慢壓縮方法(高壓縮比)。系統缺省值爲6。
假設一個目錄/home下有文件mm.txt、sort.txt、xx.com。
例子:
例1:把/home目錄下的每個文件壓縮成.gz文件。
$ cd /home
$ gzip *
$ ls
m.txt.gz sort.txt.gz xx.com.gz
例2:把例1中每個壓縮的文件解壓,並列出詳細的信息。
$ gzip -dv *
mm.txt.gz 43.1%-----replaced with mm.txt
sort.txt.gz 43.1%-----replaced with sort.txt
xx.com.gz 43.1%-----replaced with xx.com
$ ls
mm.txt sort.txt xx.com
例3:詳細顯示例1中每個壓縮的文件的信息,並不解壓。
$ gzip -l *
compressed uncompr. ratio uncompressed_name
277 445 43.1% mm.txt
278 445 43.1% sort.txt
277 445 43.1% xx.com
$ ls
mm.txt.gz sort.txt.gz xx.com.gz
例4:壓縮一個tar備份文件,如usr.tar,此時壓縮文件的擴展名爲.tar.gz
$ gzip usr.tar
$ ls
usr.tar.gz
unzip命令
作用:用MS Windows下的壓縮軟件winzip壓縮的文件如何在Linux系統下展開呢?可以用unzip命令,該命令用於解擴展名爲.zip的壓縮文件。
語法:unzip [選項] 壓縮文件名.zip
參數:
-x 文件列表 解壓縮文件,但不包括指定的file文件。
-v 查看壓縮文件目錄,但不解壓。
-t 測試文件有無損壞,但不解壓。
-d 目錄 把壓縮文件解到指定目錄下。
-z 只顯示壓縮文件的註解。
-n 不覆蓋已經存在的文件。
-o 覆蓋已存在的文件且不要求用戶確認。
-j 不重建文檔的目錄結構,把所有文件解壓到同一目錄下。
例子:
例1:將壓縮文件text.zip在當前目錄下解壓縮。
$ unzip text.zip
例2:將壓縮文件text.zip在指定目錄/tmp下解壓縮,如果已有相同的文件存在,要求unzip命令不覆蓋原先的文件。
$ unzip -n text.zip -d /tmp
例3:查看壓縮文件目錄,但不解壓。
$ unzip -v text.zip
zgrep命令
這個命令的功能是在壓縮文件中尋找匹配的正則表達式,用法和grep命令一樣,只不過操作的對象是壓縮文件。如果用戶想看看在某個壓縮文件中有沒有某一句話,便可用zgrep命令。
在Linux環境下運行DOS命令
Linux系統提供了一組稱爲mtools的可移植工具,可以讓用戶輕鬆地從標準的DOS軟盤上讀、寫文件和目錄。它們對DOS和Linux環境之間交換文件非常有用。它們是不具備共同的文件系統格式的系統之間交換文件的有力手段。對於一個MS-DOS的軟盤,只要把軟盤放在軟驅中,就可以利用mtools提供的命令來訪問軟盤上的文件。
mtools的主要命令如下:
mcd 目錄名 改變MSDOS目錄;
mcopy 源文件 目標文件 在MSDOS和Unix之間複製文件;
mdel 文件名 刪除MSDOS文件;
mdir 目錄名 顯示MSDOS目錄;
mformat 驅動器號 在低級格式化的軟盤上創建MSDOS文件系統;
rnlabel 驅動器號 產生MSDOS卷標;
mmd 目錄名 建立MSDOS目錄;
mrd 目錄名 刪除MSDOS目錄;
mren 源文件 目標文件 重新命名已存在的MSDOS文件;
mtype 文件名 顯示MSDOS文件的內容。
這些命令和對應的不加 m的 MSDOS命令非常相似。
例1:在Linux環境下看DOS盤最上層的目錄的內容:
$ mdir a:
Volume in drive A has no label
Volume Serial Number is 15F6-3362
Directory of A:/
SS6 CPP 331 09-24-99 7:41 ss6.cpp
CH9
11-20-99 16:22 ch9
XXQ 0 11-20-99 16:24 xxq
95CZXTA DOC 36,864 06-15-98 22:51 95czxta.doc
95CZXTB DOC 39,936 06-16-98 7:18 95czxtb.doc
HTCA DOC 27,136 01-08-99 0:13 htca.doc
HTCB DOC 27,136 01-08-99 0:12 htcb.doc
6 file(s) 131,403 bytes
1 dir(s) 1,295,872 bytes free
例2:將DOS盤上的文件xxq複製到當前目錄下,並用ls命令進行驗證。
$ mcopy a:/htca.doc
$ ls –l htca.doc
-rw-r— -r- - 1 xxq xxq 27136 Jan 1 01:80 htca.doc
Linux 的常用網絡命令
計算機網絡的主要優點是能夠實現資源和信息的共享,並且用戶可以遠程訪問信息。Linux提供了一組強有力的網絡命令來爲用戶服務,這些工具能夠幫助用戶登錄到遠程計算機上、傳輸文件和執行遠程命令等。 本章介紹下列幾個常用的有關網絡操作的命令:
ftp 傳輸文件
telnet 登錄到遠程計算機上
r - 使用各種遠程命令
netstat 查看網絡的狀況
nslookup 查詢域名和IP地址的對應
finger 查詢某個使用者的信息
ping 查詢某個機器是否在工作
使用ftp命令進行遠程文件傳輸
ftp命令是標準的文件傳輸協議的用戶接口。ftp是在TCP/IP網絡上的計算機之間傳輸文件的簡單有效的方法。它允許用戶傳輸ASCII文件和二進制文件。 在ftp會話過程中,用戶可以通過使用ftp客戶程序連接到另一臺計算機上。從此,用戶可以在目錄中上下移動、列出目錄內容、把文件從遠程機拷貝到本地機上、把文件從本地機傳輸到遠程系統中。
需要注意的是,如果用戶沒有那個文件的存取權限,就不能從遠程系統中獲得文件或向遠程系統傳輸文件。 爲了使用ftp來傳輸文件,用戶必須知道遠程計算機上的合法用戶名和口令。這個用戶名/口令的組合用來確認ftp 會話,並用來確定用戶對要傳輸的文件可以進行什麼樣的訪問。另外,用戶顯然需要知道對其進行ftp 會話的計算機的名字或IP地址。
Ftp命令的功能是在本地機和遠程機之間傳送文件。該命令的一般格式如下:
$ ftp 主機名/IP
其中“主機名/IP”是所要連接的遠程機的主機名或IP地址。在命令行中,主機名屬於選項,如果指定主機名,ftp將試圖與遠程機的ftp服務程序進行連接;如果沒有指定主機名,ftp將給出提示符,等待用戶輸入命令: $ ftp ftp > 此時在ftp>提示符後面輸入open命令加主機名或IP地址,將試圖連接指定的主機。 不管使用哪一種方法,如果連接成功,需要在遠程機上登錄。用戶如果在遠程機上有帳號,就可以通過ftp使用這一帳號並需要提供口令。
在遠程機上的用戶帳號的讀寫權限決定該用戶在遠程機上能下載什麼文件和將上載文件放到哪個目錄中。 如果沒有遠程機的專用登錄帳號,許多ftp站點設有可以使用的特殊帳號。這個帳號的登錄名爲anonymous(也稱爲匿名ftp),當使用這一帳號時,要求輸入email地址作爲口令。 如果遠程系統提供匿名ftp服務,用戶使用這項服務可以登錄到特殊的,供公開使用的目錄。
一般專門提供兩個目錄:pub目錄和incoming目錄。pub目錄包含該站點供公衆使用的所有文件,incoming目錄存放上載到該站點的文件。 一旦用戶使用ftp在遠程站點上登錄成功,將得到“ftp>”提示符。現在可以自由使用ftp提供的命令,可以用 help命令取得可供使用的命令清單,也可以在 help命令後面指定具體的命令名稱,獲得這條命令的說明。
最常用的命令有:
ls 列出遠程機的當前目錄
cd 在遠程機上改變工作目錄
lcd 在本地機上改變工作目錄
ascii 設置文件傳輸方式爲ASCII模式
binary 設置文件傳輸方式爲二進制模式
close終止當前的ftp會話
hash 每次傳輸完數據緩衝區中的數據後就顯示一個#號
get(mget) 從遠程機傳送指定文件到本地機
put(mput) 從本地機傳送指定文件到遠程機
open 連接遠程ftp站點
quit斷開與遠程機的連接並退出ftp
? 顯示本地幫助信息
! 轉到Shell中
下面簡單將ftp常用命令作一簡介。
啓動ftp會話 open命令用於打開一個與遠程主機的會話。該命令的一般格式是: open 主機名/IP 如果在ftp 會話期間要與一個以上的站點連接,通常只用不帶參數的ftp命令。如果在會話期間只想與一臺計算機連接,那麼在命令行上指定遠程主機名或IP地址作爲ftp命令的參數。 終止ftp會話 close、disconnect、quit和bye命令用於終止與遠程機的會話。close和disronnect命令關閉與遠程機的連接,但是使用戶留在本地計算機的ftp程序中。quit和bye命令都關閉用戶與遠程機的連接,然後退出用戶機上的ftp 程序。 改變目錄 “cd [目錄]”命令用於在ftp會話期間改變遠程機上的目錄,lcd命令改變本地目錄,使用戶能指定查找或放置本地文件的位置。 遠程目錄列表 ls命令列出遠程目錄的內容,就像使用一個交互shell中的ls命令一樣。ls命令的一般格式是: ls [目錄] [本地文件] 如果指定了目錄作爲參數,那麼ls就列出該目錄的內容。如果給出一個本地文件的名字,那麼這個目錄列表被放入本地機上您指定的這個文件中。 從遠程系統獲取文件 get和mget命令用於從遠程機上獲取文件。get命令的一般格式爲: get 文件名 您還可以給出本地文件名,這個文件名是這個要獲取的文件在您的本地機上創建時的文件名。如果您不給出一個本地文件名,那麼就使用遠程文件原來的名字。 mget命令一次獲取多個遠程文件。mget命令的一般格式爲: mget 文件名列表 使用用空格分隔的或帶通配符的文件名列表來指定要獲取的文件,對其中的每個文件都要求用戶確認是否傳送。 向遠程系統發送文件 put和mput命令用於向遠程機發送文件。Put命令的一般格式爲: put 文件名 mput命令一次發送多個本地文件,mput命令的一般格式爲: mput 文件名列表 使用用空格分隔的或帶通配符的文件名列表來指定要發送的文件。對其中的每個文件都要求用戶確認是否發送。 改變文件傳輸模式 默認情況下,ftp按ASCII模式傳輸文件,用戶也可以指定其他模式。ascii和brinary命令的功能是設置傳輸的模式。用ASCII模式傳輸文件對純文本是非常好的,但爲避免對二進制文件的破壞,用戶可以以二進制模式傳輸文件。 檢查傳輸狀態 傳輸大型文件時,可能會發現讓ftp提供關於傳輸情況的反饋信息是非常有用的。hash命令使ftp在每次傳輸完數據緩衝區中的數據後,就在屏幕上打印一個#字符。本命令在發送和接收文件時都可以使用。 ftp中的本地命令 當您使用ftp時,字符“!”用於向本地機上的命令shell傳送一個命令。如果用戶處在ftp會話中,需要shell做某些事,就很有用。例如用戶要建立一個目錄來保存接收到的文件。如果輸入!mkdir new_dir,那麼Linux就在用戶當前的本地目錄中創建一個名爲new_dir 的目錄。
從遠程機grunthos下載二進制數據文件的典型對話過程如下:
$ 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命令訪問遠程計算機
用戶使用telnet命令進行遠程登錄。該命令允許用戶使用telnet協議在遠程計算機之間進行通信,用戶可以通過網絡在遠程計算機上登錄,就像登錄到本地機上執行命令一樣。 爲了通過telnet登錄到遠程計算機上,必須知道遠程機上的合法用戶名和口令。雖然有些系統確實爲遠程用戶提供登錄功能,但出於對安全的考慮,要限制來賓的操作權限,因此,這種情況下能使用的功能是很少的。當允許遠程用戶登錄時,系統通常把這些用戶放在一個受限制的shell中,以防系統被懷有惡意的或不小心的用戶破壞。 用戶還可以使用telnet從遠程站點登錄到自己的計算機上,檢查電子郵件、編輯文件和運行程序,就像在本地登錄一樣。
但是,用戶只能使用基於終端的環境而不是X Wndows環境,telnet只爲普通終端提供終端仿真,而不支持 X Wndow等圖形環境。 telnet命令的一般形式爲: telnet 主機名/IP 其中“主機名/IP”是要連接的遠程機的主機名或IP地址。如果這一命令執行成功,將從遠程機上得到login:提示符。 使用telnet命令登錄的過程如下: $ telnet 主機名/IP 啓動telnet會話。 一旦telnet成功地連接到遠程系統上,就顯示登錄信息並提示用戶輸人用戶名和口令。如果用戶名和口令輸入正確,就能成功登錄並在遠程系統上工作。 在telnet提示符後面可以輸入很多命令,用來控制telnet會話過程,在telnet聯機幫助手冊中對這些命令有詳細的說明。
下面是一臺Linux計算機上的telnet會話舉例:
$ 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 I486 login: 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 $
用戶結束了遠程會話後,一定要確保使用logout命令退出遠程系統。然後telnet報告遠程會話被關閉,並返回到用戶的本地機的Shell提示符下。 r-系列命令 除ftp和telnet以外,還可以使用r-系列命令訪問遠程計算機和在網絡上交換文件。 使用r-系列命令需要特別注意,因爲如果用戶不小心,就會造成嚴重的安全漏洞。用戶發出一個r-系列命令後,遠程系統檢查名爲/etc/hosts.equiv的文件,以查看用戶的主機是否列在這個文件中。如果它沒有找到用戶的主機,就檢查遠程機上同名用戶的主目錄中名爲.rhosts的文件,看是否包括該用戶的主機。如果該用戶的主機包括在這兩個文件中的任何一個之中,該用戶執行r-系列命令就不用提供口令。
雖然用戶每次訪問遠程機時不用鍵入口令可能是非常方便的,但是它也可能會帶來嚴重的安全問題。我們建議用戶在建立/etc/hosts.equiv和.rhosts文件之前,仔細考慮r-命令隱含的安全問題。
rlogin命令
功能:rlogin 是“remote login”(遠程登錄)的縮寫。該命令與telnet命令很相似,允許用戶啓動遠程系統上的交互命令會話。
格式: rlogin [ -8EKLdx ] [ -e char ] [-k realm ] [ - l username ] host
參數:
-8 此選項始終允許8位輸入數據通道。該選項允許發送格式化的ANSI字符和其他的特殊代碼。如果不用這個選項,除非遠端的終止和啓動字符不是或,否則就去掉奇偶校驗位。
-E 停止把任何字符當作轉義字符。當和-8選項一起使用時,它提供一個完全的透明連接。
-K 關閉所有的Kerberos確認。只有與使用Kerberos 確認協議的主機連接時才使用這個選項。
-L 允許rlogin會話在litout模式中運行。要了解更多信息,請查閱tty聯機幫助。
-d 打開與遠程主機進行通信的TCP sockets的socket調試。要了解更多信息,請查閱setsockopt的聯機幫助。
-e 爲rlogin會話設置轉義字符,默認的轉義字符是“~”,用戶可以指定一個文字字符或一個//nnn形式的八進制數。
-k 請求rlogin獲得在指定區域內的遠程主機的Kerberos許可,而不是獲得由krb_realmofhost(3)確定的遠程主機區域內的遠程主機的Kerberos 許可。
-x 爲所有通過rlogin會話傳送的數據打開DES加密。這會影響響應時間和CPU利用率,但是可以提高安全性。
rsh命令
功能:rsh是“remote shell”(遠程 shell)的縮寫。 該命令在指定的遠程主機上啓動一個shell並執行用戶在rsh命令行中指定的命令。如果用戶沒有給出要執行的命令,rsh就用rlogin命令使用戶登錄到遠程機上。
格式:rsh [-Kdnx] [-k realm] [-l username] host [command]
command可以是從shell提示符下鍵人的任何Linux命令。
參數:
-K 關閉所有的Kerbero確認。該選項只在與使用Kerbero確認的主機連接時才使用。
-d 打開與遠程主機進行通信的TCP sockets的socket調試。要了解更多的信息,請查閱setsockopt的聯機幫助。
-k 請求rsh獲得在指定區域內的遠程主機的Kerberos許可,而不是獲得由krb_relmofhost(3)確定的遠程主機區域內的遠程主機的Kerberos許可。
-l 缺省情況下,遠程用戶名與本地用戶名相同。本選項允許指定遠程用戶名,如果指定了遠程用戶名,則使用Kerberos 確認,與在rlogin命令中一樣。
-n 重定向來自特殊設備/dev/null的輸入。
-x 爲傳送的所有數據打開DES加密。這會影響響應時間和CPU利用率,但是可以提高安全性。 Linux把標準輸入放入rsh命令中,並把它拷貝到要遠程執行的命令的標準輸入中。它把遠程命令的標準輸出拷貝到rsh的標準輸出中。它還把遠程標準錯誤拷貝到本地標準錯誤文件中。任何退出、中止和中斷信號都被送到遠程命令中。當遠程命令終止了,rsh也就終止了。
rcp命令
功能:rcp代表“remote file copy”(遠程文件拷貝)。該命令用於在計算機之間拷貝文件。
rcp命令有兩種格式。第一種格式用於文件到文件的拷貝;第二種格式用於把文件或目錄拷貝到另一個目錄中。
格式:
rcp [-px] [-k realm] file1 file2 rcp [-px] [-r] [-k realm] file
directory 每個文件或目錄參數既可以是遠程文件名也可以是本地文件名。遠程文件名具有如下形式:rname@rhost:path,其中rname是遠程用戶名,rhost是遠程計算機名,path是這個文件的路徑。
參數:
-r 遞歸地把源目錄中的所有內容拷貝到目的目錄中。要使用這個選項,目的必須是一個目錄。
-p 試圖保留源文件的修改時間和模式,忽略umask。
-k 請求rcp獲得在指定區域內的遠程主機的Kerberos 許可,而不是獲得由krb_relmofhost(3)確定的遠程主機區域內的遠程主機的Kerberos許可。
-x 爲傳送的所有數據打開DES加密。這會影響響應時間和CPU利用率,但是可以提高安全性。 如果在文件名中指定的路徑不是完整的路徑名,那麼這個路徑被解釋爲相對遠程機上同名用戶的主目錄。如果沒有給出遠程用戶名,就使用當前用戶名。如果遠程機上的路徑包含特殊shell字符,需要用反斜線(//)、雙引號(”)或單引號(’)括起來,使所有的shell元字符都能被遠程地解釋。 需要說明的是,rcp不提示輸入口令,它通過rsh命令來執行拷貝。