加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 2.1  Linux常用命令
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

Linux基礎(chǔ)命令之: Linux常用命令

2013/09/13
1
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

?

2.1??Linux常用命令

在安裝完Linux再次啟動(dòng)之后,就可以進(jìn)入到與Windows類似的圖形化界面了。這個(gè)界面就是Linux圖形化界面X窗口系統(tǒng)(簡(jiǎn)稱X)的一部分。要注意的是,X窗口系統(tǒng)僅僅是Linux上面的一個(gè)軟件(或者也可稱為服務(wù)),它不是Linux自身的一部分。雖然現(xiàn)在的X窗口系統(tǒng)已經(jīng)與Linux整合得相當(dāng)好了,但畢竟還不能保證絕對(duì)的可靠性。另外,X窗口系統(tǒng)是一個(gè)相當(dāng)耗費(fèi)系統(tǒng)資源的軟件,它會(huì)大大地降低Linux的系統(tǒng)性能。因此,若是希望更好地享受Linux所帶來的高效及高穩(wěn)定性,建議讀者盡可能地使用Linux的命令行界面,也就是shell環(huán)境。

當(dāng)用戶在命令行下工作時(shí),不是直接同操作系統(tǒng)內(nèi)核交互信息的,而是由命令解釋器接受命令,分析后再傳給相關(guān)的程序。shell是一種Linux中的命令行解釋程序,就如同command.com是DOS下的命令解釋程序一樣,為用戶提供使用操作系統(tǒng)的接口。它們之間的關(guān)系如圖2.1所示。用戶在提示符下輸入的命令都由shell先解釋然后傳給Linux內(nèi)核。

小知識(shí)

·??shell是命令語言、命令解釋程序及程序設(shè)計(jì)語言的統(tǒng)稱。它不僅擁有自己內(nèi)建的shell命令集,同時(shí)也能被系統(tǒng)中其他應(yīng)用程序所調(diào)用。

·??shell的一個(gè)重要特性是它自身就是一個(gè)解釋型的程序設(shè)計(jì)語言,shell程序設(shè)計(jì)語言支持絕大多數(shù)在高級(jí)語言中能見到的程序元素,如函數(shù)、變量、數(shù)組和程序控制結(jié)構(gòu)。shell編程語言簡(jiǎn)單易學(xué),任何在提示符中能鍵入的命令都能放到一個(gè)可執(zhí)行的shell程序中。關(guān)于shell編程的詳細(xì)講解,感興趣的讀者可以參見其他相關(guān)書籍。

Linux中運(yùn)行shell的環(huán)境是“系統(tǒng)工具”下的“終端”,讀者可以單擊“終端”以啟動(dòng)shell環(huán)境。這時(shí)屏幕上顯示類似“[david@localhost?home]$”的信息,其中,david是指系統(tǒng)用戶,localhost是計(jì)算機(jī)名,而home是指當(dāng)前所在的目錄。

由于Linux中的命令非常多,要全部介紹幾乎是不可能的。因此,在本書按照命令的用途進(jìn)行分類講解,并且對(duì)每一類中最常用的命令詳細(xì)講解,同時(shí)列出同一類中的其他命令。由于同一類的命令都有很大的相似性,因此,讀者通過學(xué)習(xí)本書中所列命令,可以很快地掌握其他命令。

圖2.1? 內(nèi)核、shell和用戶的關(guān)系

?

命令格式說明。

n 格式中帶[]的表明為可選項(xiàng),其他為必選項(xiàng)。

n 選項(xiàng)可以多個(gè)連帶寫入。

n 本章后面選項(xiàng)參數(shù)列表中加粗的含義是:該選項(xiàng)是非常常用的選項(xiàng)。

2.1.1??用戶系統(tǒng)相關(guān)命令

Linux是一個(gè)多用戶的操作系統(tǒng),每個(gè)用戶又可以屬于不同的用戶組,下面,首先來熟悉一下Linux中的用戶切換和用戶管理的相關(guān)命令。

1.用戶切換(su)

(1)作用。

變更為其他使用者的身份,主要用于將普通用戶身份轉(zhuǎn)變?yōu)槌?jí)用戶,而且需輸入相應(yīng)用戶密碼。

(2)格式。

su?[選項(xiàng)]?[使用者]

其中的使用者為要變更的對(duì)應(yīng)使用者。

(3)常見參數(shù)。

主要選項(xiàng)參數(shù)如表2.1所示。

表2.1 su命令常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-,-l,--login

為該使用者重新登錄,大部分環(huán)境變量(如HOME、SHELL和USER等)和工作目錄都是以該使用者(USER)為主。若沒有指定USER,缺省情況是root

-m,-p

執(zhí)行su時(shí)不改變環(huán)境變量

-c,--command

變更賬號(hào)為USER的使用者,執(zhí)行指令(command)后再變回原來使用者

(4)使用示例。

[david@localhost?~]$?su?-?root

Password:?

[root@localhost?~]#?

示例通過su命令將普通用戶變更為root用戶,并使用選項(xiàng)“-”攜帶root環(huán)境變量。

(5)使用說明。

n 在將普通用戶變更為root用戶時(shí)建議使用“-”選項(xiàng),這樣可以將root的環(huán)境變量和工作目錄同時(shí)帶入,否則在以后的使用中可能會(huì)由于環(huán)境變量的原因而出錯(cuò)。

n 在轉(zhuǎn)變?yōu)閞oot權(quán)限后,提示符變?yōu)?。

小知識(shí)

環(huán)境變量實(shí)際上就是用戶運(yùn)行環(huán)境的參數(shù)集合。Linux是一個(gè)多用戶的操作系統(tǒng)。而且在每個(gè)用戶登錄系統(tǒng)后,都會(huì)有一個(gè)專有的運(yùn)行環(huán)境。通常每個(gè)用戶默認(rèn)的環(huán)境都是相同的,而這個(gè)默認(rèn)環(huán)境實(shí)際上就是一組環(huán)境變量的定義。用戶可以對(duì)自己的運(yùn)行環(huán)境進(jìn)行定制,其方法就是修改相應(yīng)的系統(tǒng)環(huán)境變量。

常見的環(huán)境變量如下。

☆PATH是系統(tǒng)路徑。

☆HOME是系統(tǒng)根目錄。

☆HISTSIZE是指保存歷史命令記錄的條數(shù)。

☆LOGNAME是指當(dāng)前用戶的登錄名。

☆HOSTNAME是指主機(jī)的名稱,若應(yīng)用程序要用到主機(jī)名,通常是從這個(gè)環(huán)境變量中來取得的。

☆SHELL是指當(dāng)前用戶用的是哪種shell。

LANG/LANGUGE是和語言相關(guān)的環(huán)境變量,使用多種語言的用戶可以修改此環(huán)境變量。

☆MAIL是指當(dāng)前用戶的郵件存放目錄。

設(shè)置環(huán)境變量方法如下。

ü??通過echo顯示字符串(指定環(huán)境變量)。

ü??通過export設(shè)置新的環(huán)境變量。

ü??通過env顯示所有環(huán)境變量。

ü??通過set命令顯示所有本地定義的shell變量。

ü??通過unset命令來清除環(huán)境變量。

讀者可以試著用“env”命令查看“su?-?root”(或“su?–”)和“su?root”的區(qū)別。

?

2.用戶管理(useradd和passwd)

Linux中常見用戶管理命令如表2.2所示,本書僅以u(píng)seradd和passwd為例進(jìn)行詳細(xì)講解,其他命令類似,請(qǐng)讀者自行學(xué)習(xí)使用。

表2.2 Linux常見用戶管理命令

命????令

命?令?含?義

格????式

useradd

添加用戶賬號(hào)

useradd?[選項(xiàng)]?用戶名

usermod

設(shè)置用戶賬號(hào)屬性

usermod?[選項(xiàng)]?屬性值

userdel

刪除對(duì)應(yīng)用戶賬號(hào)

userdel?[選項(xiàng)]?用戶名

groupadd

添加組賬號(hào)

groupadd?[選項(xiàng)]?組賬號(hào)

groupmod

設(shè)置組賬號(hào)屬性

groupmod?[選項(xiàng)]?屬性值

groupdel

刪除對(duì)應(yīng)組賬號(hào)

groupdel?[選項(xiàng)]?組賬號(hào)

passwd

設(shè)置賬號(hào)密碼

passwd?[對(duì)應(yīng)賬號(hào)]

id

顯示用戶ID、組ID和用戶所屬的組列表

id?[用戶名]

groups

顯示用戶所屬的組

groups?[組賬號(hào)]

who

顯示登錄到系統(tǒng)的所有用戶

who

(1)作用。

①?useradd:添加用戶賬號(hào)。

②?passwd:更改對(duì)應(yīng)用戶的賬號(hào)密碼。

(2)格式。

①?useradd:useradd?[選項(xiàng)]?用戶名。

②?passwd:passwd?[選項(xiàng)]?[用戶名]。

其中的用戶名為修改賬號(hào)密碼的用戶,若不帶用戶名,缺省為更改當(dāng)前使用者的密碼。

(3)常用參數(shù)

①?useradd主要選項(xiàng)參數(shù)如表2.3所示。

表2.3 useradd命令常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-g

指定用戶所屬的群組

-m

自動(dòng)建立用戶的登入目錄

-n

取消建立以用戶名稱為名的群組

②?passwd:一般很少使用選項(xiàng)參數(shù)。

(4)使用實(shí)例。

[root@localhost?~]#?useradd?david

[root@localhost?~]#?passwd?david

New?password:??(輸入密碼)

Retype?new?password:??(再輸入一次密碼,以確認(rèn)輸入的正確性)

passwd:?all?authentication?tokens?updated?successfully

[root@localhost?~]#?su?–?david

[david@localhost?~]$

[david@localhost?~]$?pwd(查看當(dāng)前目錄)

/home/david?(該用戶的工作目錄)

實(shí)例中先添加了用戶名為david的用戶,接著又為該用戶設(shè)置了賬號(hào)密碼。從su的命令可以看出,該用戶添加成功,其工作目錄為“/home/david”。

(5)使用說明。

n 在添加用戶時(shí),這兩個(gè)命令是一起使用的,其中,useradd必須用root的權(quán)限。而且useradd指令所建立的賬號(hào),實(shí)際上是保存在“/etc/passwd”文本文件中,文件中每一行包含一個(gè)賬號(hào)信息。

n 在缺省情況下,useradd所做的初始化操作包括在“/home”目錄下為對(duì)應(yīng)賬號(hào)建立一個(gè)同名的主目錄,并且還為該用戶單獨(dú)建立一個(gè)與用戶名同名的組。

n adduser只是useradd的符號(hào)鏈接(關(guān)于符號(hào)鏈接的概念在本節(jié)后面會(huì)有介紹),兩者是相同的。

n passwd還可用于普通用戶修改賬號(hào)密碼,Linux并不采用類似Windows的密碼回顯(顯示為*號(hào)),所以輸入的這些字符用戶是看不見的。密碼最好包括字母、數(shù)字和特殊符號(hào),并且設(shè)成6位以上。

?

3.系統(tǒng)管理命令(ps和kill)

Linux中常見的系統(tǒng)管理命令如表2.4所示,本書以ps和kill為例進(jìn)行講解。

表2.4 Linux常見系統(tǒng)管理命令

命????令

命?令?含?義

格????式

ps

顯示當(dāng)前系統(tǒng)中由該用戶運(yùn)行的進(jìn)程列表

ps?[選項(xiàng)]

top

動(dòng)態(tài)顯示系統(tǒng)中運(yùn)行的程序(一般為每隔5s)

top

kill

輸出特定的信號(hào)給指定PID(進(jìn)程號(hào))的進(jìn)程

kill?[選項(xiàng)]?進(jìn)程號(hào)(PID)

uname

顯示系統(tǒng)的信息(可加選項(xiàng)-a)

uname?[選項(xiàng)]

setup

系統(tǒng)圖形化界面配置

setup

crontab

循環(huán)執(zhí)行例行性命令

crontab?[選項(xiàng)]

shutdown

關(guān)閉或重啟Linux系統(tǒng)

shutdown?[選項(xiàng)]?[時(shí)間]

uptime

顯示系統(tǒng)已經(jīng)運(yùn)行了多長(zhǎng)時(shí)間

uptime

clear

清除屏幕上的信息

clear

(1)作用。

①?ps:顯示當(dāng)前系統(tǒng)中由該用戶運(yùn)行的進(jìn)程列表。

②?kill:輸出特定的信號(hào)給指定PID(進(jìn)程號(hào))的進(jìn)程,并根據(jù)該信號(hào)完成指定的行為。其中可能的信號(hào)有進(jìn)程掛起、進(jìn)程等待、進(jìn)程終止等。

(2)格式。

①?ps:ps?[選項(xiàng)]。

②?kill:kill?[選項(xiàng)]?進(jìn)程號(hào)(PID)。

kill命令中的進(jìn)程號(hào)為信號(hào)輸出的指定進(jìn)程的進(jìn)程號(hào),當(dāng)選項(xiàng)是缺省時(shí)為輸出終止信號(hào)給該進(jìn)程。

(3)常見參數(shù)。

①?ps主要選項(xiàng)參數(shù)如表2.5所示。

表2.5 ps命令常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-ef

查看所有進(jìn)程及其PID(進(jìn)程號(hào))、系統(tǒng)時(shí)間、命令詳細(xì)目錄、執(zhí)行者等

-aux

除可顯示-ef所有內(nèi)容外,還可顯示CPU及內(nèi)存占用率、進(jìn)程狀態(tài)

-w

顯示加寬并且可以顯示較多的信息

②?kill主要選項(xiàng)參數(shù)如表2.6所示。

表2.6 kill命令常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-s

將指定信號(hào)發(fā)送給進(jìn)程

-p

打印出進(jìn)程號(hào)(PID),但并不送出信號(hào)

-l

列出所有可用的信號(hào)名稱

(4)使用實(shí)例。

[root@localhost?root]#?ps?–ef

UID????????PID??PPID??C?STIME?TTY??????????TIME?CMD

root????????1?????0??0??2005??????????00:00:05?init

root????????2?????1??0??2005??????????00:00:00?[keventd]

root????????3?????0??0??2005??????????00:00:00?[ksoftirqd_CPU0]

root????????4?????0??0??2005??????????00:00:00?[ksoftirqd_CPU1]

root?????7421?????1??0??2005??????????00:00:00?/usr/local/bin/ntpd?-c?/etc/ntp.

root?????21787?21739??0?17:16?pts/1??????00:00:00?grep?ntp

[root@localhost?root]#?kill?-9?7421?(殺死進(jìn)程)

[root@localhost?root]#?ps?-ef|grep?ntp

root?????21789?21739??0?17:16?pts/1????00:00:00?grep?ntp

該實(shí)例中首先查看所有進(jìn)程,并終止進(jìn)程號(hào)為7421的ntp進(jìn)程,之后再次查看時(shí)已經(jīng)沒有該進(jìn)程號(hào)的進(jìn)程。

(5)使用說明。

n ps在使用中通??梢耘c其他一些命令結(jié)合起來使用,主要作用是提高效率。

n ps選項(xiàng)中的參數(shù)w可以寫多次,通常最多寫3次,它的含義為加寬3次,這足以顯示很長(zhǎng)的命令行了。例如:ps?–auxwww。

小知識(shí)

管道是Linux中信息通信的重要方式。它是把一個(gè)程序的輸出直接連接到另一個(gè)程序的輸入,而不經(jīng)過任何中間文件。管道線是指連接兩個(gè)或更多程序管道的通路。在shell中字符”|”表示管道線。如前例子中的ps?–ef|grep?ntp所示,ps?–ef的結(jié)果直接輸入到grep?ntp的程序中(關(guān)于grep命令在后面會(huì)有詳細(xì)的介紹)。grep、pr、sort和wc都可以在上述管道線上工作。讀者可以靈活地運(yùn)用管道機(jī)制

4.磁盤相關(guān)命令(fdisk)

Linux中與磁盤相關(guān)的命令如表2.7所示,本書僅以fdisk為例進(jìn)行講解。

表2.7 Linux常見系統(tǒng)管理命令

選??項(xiàng)

參?數(shù)?含?義

格????式

free

查看當(dāng)前系統(tǒng)內(nèi)存的使用情況

free?[選項(xiàng)]

df

查看文件系統(tǒng)的磁盤空間占用情況

df?[選項(xiàng)]

du

統(tǒng)計(jì)目錄(或文件)所占磁盤空間的大小

du?[選項(xiàng)]

fdisk

查看硬盤分區(qū)情況及對(duì)硬盤進(jìn)行分區(qū)管理

fdisk?[-l]

(1)作用。

fdisk可以查看硬盤分區(qū)情況,并可對(duì)硬盤進(jìn)行分區(qū)管理,這里主要介紹如何查看硬盤分區(qū)情況,另外,fdisk也是一個(gè)非常好的硬盤分區(qū)工具,感興趣的讀者可以另外查找資料學(xué)習(xí)如何使用fdisk進(jìn)行硬盤分區(qū)。

(2)格式。

fdisk?[-l]

(3)使用實(shí)例。

[root@localhost?~]#?fdisk?-l

Disk?/dev/hda:?40.0?GB,?40007761920?bytes

240?heads,?63?sectors/track,?5168?cylinders

Units?=?cylinders?of?15120?*?512?=?7741440?bytes

???Device?Boot??????Start?????????End??????Blocks???Id??System

/dev/hda1???*????????????1?????????1084?????8195008+???c??W95?FAT32?(LBA)

/dev/hda2?????????????1085?????????5167????30867480????f??W95?Ext'd?(LBA)

/dev/hda5?????????????1085?????????2439????10243768+???b??W95?FAT32

/dev/hda6?????????????2440?????????4064????12284968+???b??W95?FAT32

/dev/hda7?????????????4065?????????5096?????7799526???83??Linux

/dev/hda8?????????????5096?????????5165??????522081???82??Linux?swap

Disk?/dev/sda:?999?MB,?999816704?bytes

4?heads,?8?sectors/track,?61023?cylinders

Units?=?cylinders?of?32?*?512?=?16384?bytes

Disk?identifier:?0x00000000

Device?Boot??????Start?????????End??????Blocks???Id??System

/dev/sda1???*???????????1???????61024??????976379+???b??W95?FAT32

可以看出,使用“fdisk?–l”列出了文件系統(tǒng)的分區(qū)情況。

(4)使用說明

n 使用fdisk必須擁有root權(quán)限。

n IDE硬盤對(duì)應(yīng)的設(shè)備名稱分別為hda、hdb、hdc和hdd,SCSI硬盤對(duì)應(yīng)的設(shè)備名稱則為sda、sdb、…。此外,hda1代表hda的第一個(gè)硬盤分區(qū),hda2代表hda的第二個(gè)分區(qū),依此類推。

n 通過查看/var/log/messages文件,可以找到Linux系統(tǒng)已辨認(rèn)出來的設(shè)備代號(hào)。

?

5.文件系統(tǒng)掛載命令(mount)

(1)作用。

掛載文件系統(tǒng),它的使用權(quán)限是超級(jí)用戶或/etc/fstab中允許的使用者。正如1.2.1節(jié)中所述,掛載是指在分區(qū)和目錄之間建立映射關(guān)系的過程,而掛載點(diǎn)是指掛載在文件樹中的位置。使用mount命令可以把文件系統(tǒng)掛載到相應(yīng)的目錄下,并且由于Linux中把設(shè)備都當(dāng)成文件一樣使用,因此,mount命令也可以掛載不同的設(shè)備。

通常,在Linux下“/mnt”目錄是專門用于掛載不同的文件系統(tǒng)的,它可以在該目錄下新建不同的子目錄來掛載不同的設(shè)備文件系統(tǒng)。

(2)格式。

mount?[選項(xiàng)]?[類型]?設(shè)備文件名?掛載點(diǎn)目錄

其中的類型是指設(shè)備文件的類型。

(3)常見參數(shù)

mount常見參數(shù)如表2.8所示。

表2.8 mount命令選項(xiàng)常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-a

依照/etc/fstab的內(nèi)容裝載所有相關(guān)的硬盤

-l

列出當(dāng)前已掛載的設(shè)備、文件系統(tǒng)名稱和掛載點(diǎn)

-t?類型

將后面的設(shè)備以指定類型的文件格式裝載到掛載點(diǎn)上。常見的類型有前面介紹過的幾種:vfat、ext3、ext2、iso9660、nfs等

-f

通常用于除錯(cuò)。它會(huì)使mount不執(zhí)行實(shí)際掛上的動(dòng)作,而是模擬整個(gè)掛上的過程,通常會(huì)和-v一起使用

(4)使用實(shí)例。

使用mount命令主要通過以下幾個(gè)步驟。

①?確認(rèn)是否為L(zhǎng)inux可以識(shí)別的文件系統(tǒng),Linux可識(shí)別的文件系統(tǒng)只要是以下幾種。

n Windows?95/98常用的FAT32文件系統(tǒng):vfat。

n WindowsNT/2000的文件系統(tǒng):ntfs。

n OS/2用的文件系統(tǒng):hpfs。

n Linux用的文件系統(tǒng):ext2、ext3、nfs。

n CD-ROM光盤用的文件系統(tǒng):iso9660。

②?確定設(shè)備的名稱,可通過使用命令“fdisk?-l”查看。

③?查找掛載點(diǎn)。

必須確定掛載點(diǎn)已經(jīng)存在,也就是在“/mnt”下的相應(yīng)子目錄已經(jīng)存在,一般建議在“/mnt”下新建幾個(gè)如“/mnt/windows”,“/mnt/usb”的子目錄,現(xiàn)在有些新版本的Linux(如Fedora、Ubuntu、紅旗Linux、中軟Linux、MandrakeLinux)都可自動(dòng)掛載文件系統(tǒng),Red?Hat?Linux僅可自動(dòng)掛載光驅(qū)。

④?掛載文件系統(tǒng)如下所示。

[root@locaohost?~]#?mkdir?-p?/mnt/win/c

[root@locaohost?~]#?mount?-t?vfat?/dev/hda1?/mnt/win/c

[root@localhost?~]#?cd?/mnt/win/c

24.s03e01.pdtv.xvid-sfm.rmvb??Documents?and?Settings??Program?Files

24.s03e02.pdtv.xvid-sfm.rmvb??Downloads?????????????????????Recycled

C盤是原先筆者Windows系統(tǒng)的啟動(dòng)盤??梢?,在掛載了C盤之后,可直接訪問Windows下的C盤的內(nèi)容。

⑤?在使用完該設(shè)備文件后可使用命令umount將其卸載。

[root@localhost?~]#?umount?/mnt/win/c

[root@localhost?~]#?cd?/mnt/win/c

[root@localhost?~]#?ls?/mnt/win/c

可見,此時(shí)目錄“/mnt/win/c”下為空。Windows下的C盤已被成功卸載。

小知識(shí)

·??在Linux下如何使用U盤呢?

一般U盤為SCSI格式的硬盤,其格式為vfat格式,其設(shè)備號(hào)可通過“fdisk?–l”進(jìn)行查看,假若設(shè)備名為“/dev/sda1”,則可用如下命令將其掛載:

mount?-t?vfat?/dev/sda1?/mnt/usb

·??若想設(shè)置在開機(jī)時(shí)自動(dòng)掛載,可在文件“/etc/fstab”中加入相應(yīng)的設(shè)置行即可。

?

2.1.2??文件相關(guān)命令

Linux中有關(guān)文件的操作非常重要,也非常常用,本節(jié)將對(duì)Linux系統(tǒng)的文件操作命令進(jìn)行詳細(xì)講解。

1.cd

(1)作用。

改變當(dāng)前工作目錄。

(2)格式。

cd?[路徑]

其中的路徑為要改變的工作目錄,可為相對(duì)路徑或絕對(duì)路徑。

(3)使用實(shí)例。

[root@localhost?~]#?cd?/home/david/

[root@localhost?david]#?pwd

[root@localhost?david]#?/home/david/

該實(shí)例中變更工作目錄為“/home/david/”,在后面的“pwd”(顯示當(dāng)前目錄)的結(jié)果中可以看出。

(4)使用說明。

n 該命令將當(dāng)前目錄改變至指定路徑的目錄。若沒有指定路徑,則回到用戶的主目錄(例如:“/home/david”為用戶david的主目錄)。為了改變到指定目錄,用戶必須擁有對(duì)指定目錄的執(zhí)行和讀權(quán)限。

n 該命令可以使用通配符。

n 使用“cd??–”可以回到前次工作目錄。

n “./”代表當(dāng)前目錄,“../”代表上級(jí)目錄。

2.ls

(1)作用

列出目錄和文件的信息。

(2)格式。

ls?[選項(xiàng)]?[文件]

其中文件選項(xiàng)為指定查看指定文件的相關(guān)內(nèi)容,若未指定文件,默認(rèn)查看當(dāng)前目錄下的所有文件。

(3)常見參數(shù)。

ls主要選項(xiàng)參數(shù)見表2.9所示。

表2.9 ls命令常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-1,--format=single-column

一行輸出一個(gè)文件(單列輸出)

-a,-all

列出目錄中所有文件,包括以“.”開頭的隱藏文件

-d

將目錄名和其他文件一樣列出,而不是列出目錄的內(nèi)容

-l,--format=long,?--format=verbose

除每個(gè)文件名外,增加顯示文件類型、權(quán)限、硬鏈接數(shù)、所有者名、組名、大?。˙yte)及時(shí)間信息(如未指明是其他時(shí)間即指修改時(shí)間)

-f

不排序目錄內(nèi)容,按它們?cè)诖疟P上存儲(chǔ)的順序列出

(4)使用實(shí)例。

[david@localhost?test]$?ls?-l

total?220

drwxr-xr-x????2?root?????root?????????4096?Mar?31??2005?bin

drwxr-xr-x????3?root?????root?????????4096?Apr??3??2005?boot

-rw-r--r--????1?root?????root????????????0?Apr?24??2002?test.run

該實(shí)例查看當(dāng)前目錄下的所有文件,并通過選項(xiàng)“-l”顯示出詳細(xì)信息。

顯示格式說明如下。

文件類型與權(quán)限?鏈接數(shù)?文件屬主?文件屬組?文件大小?修改的時(shí)間?名字

(5)使用說明。

n 在ls的常見參數(shù)中,-l(長(zhǎng)文件名顯示格式)的選項(xiàng)是最為常見的??梢栽敿?xì)顯示出各種信息。

n?若想顯示出所有“.”開頭的隱藏文件,可以使用-a,這在嵌入式開發(fā)中很常用。

注意

Linux中的可執(zhí)行文件不是與Windows一樣通過文件擴(kuò)展名來標(biāo)識(shí)的,而是通過設(shè)置文件相應(yīng)的可執(zhí)行屬性來實(shí)現(xiàn)的。

?

3.mkdir

(1)作用。

創(chuàng)建一個(gè)目錄。

(2)格式。

mkdir?[選項(xiàng)]?路徑

(3)常見參數(shù)。

mkdir主要選項(xiàng)參數(shù)如表2.10所示。

表2.10 mkdir命令常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-m

對(duì)新建目錄設(shè)置存取權(quán)限,也可以用chmod命令(在本節(jié)后會(huì)有詳細(xì)說明)設(shè)置

-p

可以是一個(gè)路徑名稱。此時(shí)若此路徑中的某些目錄尚不存在,在加上此選項(xiàng)后,系統(tǒng)將自動(dòng)建立好那些尚不存在的目錄,即一次可以建立多個(gè)目錄

(4)使用實(shí)例。

[david@localhost?~]$?mkdir?-p?./hello/my

[david@localhost?~]$?cd?hello/my

[david@localhost?my]$?pwd(查看當(dāng)前目錄命令)

/home/david/hello/my

該實(shí)例使用選項(xiàng)“-p”一次創(chuàng)建了./hello/my多級(jí)目錄。

[david@localhost?my]$?mkdir?-m?777?./why

[david@localhost?my]$?ls?-l

total?4

drwxrwxrwx????2?root?????root?????????4096?Jan?14?09:24?why

該實(shí)例使用改選項(xiàng)“-m”創(chuàng)建了相應(yīng)權(quán)限的目錄。對(duì)于“777”的權(quán)限在本節(jié)后面會(huì)有詳細(xì)的說明。

(5)使用說明。

該命令要求創(chuàng)建目錄的用戶在創(chuàng)建路徑的上級(jí)目錄中具有寫權(quán)限,并且路徑名不能是當(dāng)前目錄中已有的目錄或文件名稱。

4.cat

(1)作用。

連接并顯示指定的一個(gè)或多個(gè)文件的有關(guān)信息。

(2)格式。

cat[選項(xiàng)]文件1文件2…

其中的文件1、文件2為要顯示的多個(gè)文件。

(3)常見參數(shù)。

cat命令的常見參數(shù)如表2.11所示。

表2.11 cat命令常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-n

由第一行開始對(duì)所有輸出的行數(shù)編號(hào)

-b

和-n相似,只不過對(duì)于空白行不編號(hào)

(4)使用實(shí)例。

[david@localhost?~]$?cat?-n?hello1.c?hello2.c

?????1??#include?<stdio.h>

?????2??void?main()

?????3??{

?????4??????????printf("Hello!This?is?my?home!n");

?????5??}

?????6??#include?<stdio.h>

?????7??void?main()

?????8??{

?????9??????????printf("Hello!This?is?your?home!n");

????10??}

在該實(shí)例中,指定對(duì)hello1.c和hello2.c進(jìn)行輸出,并指定行號(hào)。

?

5.cp、mv和rm

(1)作用。

①?cp:將給出的文件或目錄復(fù)制到另一文件或目錄中。

②?mv:為文件或目錄改名或?qū)⑽募梢粋€(gè)目錄移入另一個(gè)目錄中。

③?rm:刪除一個(gè)目錄中的一個(gè)或多個(gè)文件或目錄。

(2)格式。

①?cp:cp?[選項(xiàng)]?源文件或目錄?目標(biāo)文件或目錄

②?mv:mv?[選項(xiàng)]?源文件或目錄?目標(biāo)文件或目錄

③?rm:rm?[選項(xiàng)]?文件或目錄

(3)常見參數(shù)。

①?cp主要選項(xiàng)參數(shù)如表2.12所示。

表2.12 cp命令常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-a

保留鏈接、文件屬性,并復(fù)制其子目錄,其作用等于dpr選項(xiàng)的組合

-d

復(fù)制時(shí)保留鏈接

-f

刪除已經(jīng)存在的目標(biāo)文件而不提示

-i

在覆蓋目標(biāo)文件之前將給出提示要求用戶確認(rèn)?;卮饄時(shí)目標(biāo)文件將被覆蓋,而且是交互式復(fù)制

-p

此時(shí)cp除復(fù)制源文件的內(nèi)容外,還將把其修改時(shí)間和訪問權(quán)限也復(fù)制到新文件中

-r

若給出的源文件是一個(gè)目錄文件,此時(shí)cp將遞歸復(fù)制該目錄下所有的子目錄和文件。此時(shí)目標(biāo)文件必須為一個(gè)目錄名

②?mv主要選項(xiàng)參數(shù)如表2.13所示。

表2.13 mv命令常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-i

若mv操作將導(dǎo)致對(duì)已存在的目標(biāo)文件的覆蓋,此時(shí)系統(tǒng)詢問是否重寫,并要求用戶回答y或n,這樣可以避免誤覆蓋文件

-f

禁止交互操作。在mv操作要覆蓋某已有的目標(biāo)文件時(shí)不給任何指示,在指定此選項(xiàng)后,i選項(xiàng)將不再起作用

③?rm主要選項(xiàng)參數(shù)如表2.14所示。

表2.14 rm命令常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-i

進(jìn)行交互式刪除

-f

忽略不存在的文件,但從不給出提示

-r

指示rm將參數(shù)中列出的全部目錄和子目錄均遞歸地刪除

(4)使用實(shí)例。

①?cp

[root@www?hello]#?cp?-a?./my/why/?./??

[root@www?hello]#?ls

my??why

該實(shí)例使用-a選項(xiàng)將“/my/why”目錄下的所有文件復(fù)制到當(dāng)前目錄下。而此時(shí)在原先目錄下還有原有的文件。

②?mv

[root@www?hello]#?mv?-i?./my/why/?./

[root@www?hello]#?ls

my??why

該實(shí)例中把“/my/why”目錄下的所有文件移至當(dāng)前目錄,則原目錄下文件被自動(dòng)刪除。

③?rm

[root@www?hello]#?rm?–r?-i?./why

rm:?descend?into?directory?'./why'??y

rm:?remove?'./why/my.c'??y

rm:?remove?directory?'./why'??y

該實(shí)例使用“-r”選項(xiàng)刪除“./why”目錄下所有內(nèi)容,系統(tǒng)會(huì)進(jìn)行確認(rèn)是否刪除。

(5)使用說明。

①?cp:該命令把指定的源文件復(fù)制到目標(biāo)文件,或把多個(gè)源文件復(fù)制到目標(biāo)目錄中。

②?mv

n 該命令根據(jù)命令中第二個(gè)參數(shù)類型的不同(是目標(biāo)文件還是目標(biāo)目錄)來判斷是重命名還是移動(dòng)文件,當(dāng)?shù)诙€(gè)參數(shù)類型是文件時(shí),mv命令完成文件重命名,此時(shí),它將所給的源文件或目錄重命名為給定的目標(biāo)文件名;

n 當(dāng)?shù)诙€(gè)參數(shù)是已存在的目錄名稱時(shí),mv命令將各參數(shù)指定的源文件均移至目標(biāo)目錄中;

n 在跨文件系統(tǒng)移動(dòng)文件時(shí),mv先復(fù)制,再將原有文件刪除,而連至該文件的鏈接也將丟失。

③?rm

n 如果沒有使用-?r選項(xiàng),則rm不會(huì)刪除目錄;

n 使用該命令時(shí)一旦文件被刪除,它是不能被恢復(fù)的,所以最好使用-i參數(shù)。

?

6.chown和chgrp

(1)作用。

①?chown:修改文件所有者和組別。

②?chgrp:改變文件的組所有權(quán)。

(2)格式。

①?chown:chown?[選項(xiàng)]...文件所有者[所有者組名]?文件

其中的文件所有者為修改后的文件所有者。

②?chgrp:chgrp?[選項(xiàng)]...?文件所有組?文件

其中的文件所有組為改變后的文件組擁有者。

(3)常見參數(shù)。

chown和chgrp的常見參數(shù)意義相同,其主要選項(xiàng)參數(shù)如表2.15所示。

表2.15 chown和chgrp命令常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-c,-changes

詳盡地描述每個(gè)file實(shí)際改變了哪些所有權(quán)

-f,--silent,--quiet

不打印文件所有權(quán)就不能修改的報(bào)錯(cuò)信息

(4)使用實(shí)例。

在筆者的系統(tǒng)中一個(gè)文件的所有者原先是這樣的。

[root@localhost?test]#$?ls?-l

-rwxr-xr-x???15?apectel??david?????????4096??6月??4??200X?uClinux-dist.tar

可以看出,這是一個(gè)文件,文件擁有者是apectel,具有可讀寫和執(zhí)行的權(quán)限,它所屬的用戶組是david,具有可讀和執(zhí)行的權(quán)限,但沒有可寫的權(quán)限,同樣,系統(tǒng)其他用戶對(duì)其也只有可讀和執(zhí)行的權(quán)限。

首先使用chown將文件所有者改為root。

[root@localhost?test]#?chown?root?uClinux-dist.tar

[root@localhost?test]#?ls?–l

-rwxr-xr-x???15?root?????david?????????4096??6月??4??200X?uClinux-dist.tar

可以看出,此時(shí),該文件擁有者變?yōu)榱藃oot,它所屬文件用戶組不變。

接著使用chgrp將文件用戶組變?yōu)閞oot。

[root@localhost?test]#?chgrp?root?uClinux-dist.tar

[root@localhost?test]#?ls?–l

-rwxr-xr-x???15?root?????root?????????4096??6月??4??200X?uClinux-dist.tar

(5)使用說明。

n 使用chown和chgrp必須擁有root權(quán)限。

小知識(shí)

在進(jìn)行有關(guān)文件的操作時(shí),若想避免輸入冗長(zhǎng)的文件,在文件名沒有重復(fù)的情況下可以使用輸入文件前幾個(gè)字母+<Tab>鍵的方式,即:cd?/uC<tab>會(huì)顯示cd?/uClinux-list

?

7.chmod

(1)作用。

改變文件的訪問權(quán)限。

(2)格式。

chmod可使用符號(hào)標(biāo)記進(jìn)行更改和八進(jìn)制數(shù)指定更改兩種方式,因此它的格式也有兩種不同的形式。

①?符號(hào)標(biāo)記:chmod?[選項(xiàng)]…符號(hào)權(quán)限[符號(hào)權(quán)限]…文件

其中的符號(hào)權(quán)限可以指定為多個(gè),也就是說,可以指定多個(gè)用戶級(jí)別的權(quán)限,但它們中間要用逗號(hào)分開表示,若沒有顯式指出則表示不作更改。

②?八進(jìn)制數(shù):chmod?[選項(xiàng)]?…八進(jìn)制權(quán)限?文件…

其中的八進(jìn)制權(quán)限是指要更改后的文件權(quán)限。

(3)選項(xiàng)參數(shù)。

chmod主要選項(xiàng)參數(shù)如表2.16所示。

表2.16 chmod命令常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-c

若該文件權(quán)限確實(shí)已經(jīng)更改,才顯示其更改動(dòng)作

-f

若該文件權(quán)限無法被更改也不要顯示錯(cuò)誤信息

-v

顯示權(quán)限變更的詳細(xì)資料

(4)使用實(shí)例。

chmod涉及文件的訪問權(quán)限,在此對(duì)相關(guān)的概念進(jìn)行簡(jiǎn)單的回顧。

在1.3.1節(jié)中已經(jīng)提到,文件的訪問權(quán)限可表示成:-?rwx?rwx?rwx。在此設(shè)有3種不同的訪問權(quán)限:讀(r)、寫(w)和運(yùn)行(x)。3個(gè)不同的用戶級(jí)別:文件擁有者(u)、所屬的用戶組(g)和系統(tǒng)里的其他用戶(o)。在此,可增加一個(gè)用戶級(jí)別a(all)來表示所有這3個(gè)不同的用戶級(jí)別。

①?第一種符號(hào)連接方式的chmod命令中,用加號(hào)“+”代表增加權(quán)限,用減號(hào)“?”代表刪除權(quán)限,等于號(hào)“=”代表設(shè)置權(quán)限。

例如,原先筆者系統(tǒng)中有文件uClinux20031103.tgz,其權(quán)限如下所示。

[root@localhost?test]#?ls?–l

-rw-r--r--????1?root?????root?????79708616?Mar?24??2005?uClinux20031103.tgz

[root@localhost?test]#?chmod?a+rx,u+w?uClinux20031103.tgz

[root@localhost?test]#?ls?–l

-rwxr-xr-x????1?root?????root?????79708616?Mar?24??2005?uClinux20031103.tgz

可見,在執(zhí)行了chmod之后,文件擁有者除擁有所有用戶都有的可讀和執(zhí)行的權(quán)限外,還有可寫的權(quán)限。

②?對(duì)于第二種八進(jìn)制數(shù)指定的方式,將文件權(quán)限字符代表的有效位設(shè)為“1”,即“rw-”、“rw-”和“r--”的八進(jìn)制表示為“110”、“110”、“100”,把這個(gè)二進(jìn)制串轉(zhuǎn)換成對(duì)應(yīng)的八進(jìn)制數(shù)就是6、6、4,也就是說該文件的權(quán)限為664(三位八進(jìn)制數(shù))。這樣對(duì)于轉(zhuǎn)化后八進(jìn)制數(shù)、二進(jìn)制及對(duì)應(yīng)權(quán)限的關(guān)系如表2.17所示。

表2.17 轉(zhuǎn)化后八進(jìn)制數(shù)、二進(jìn)制及對(duì)應(yīng)權(quán)限的關(guān)系

轉(zhuǎn)換后八進(jìn)制數(shù)

二??進(jìn)??制

對(duì)?應(yīng)?權(quán)?限

轉(zhuǎn)換后八進(jìn)制數(shù)

二??進(jìn)??制

對(duì)?應(yīng)?權(quán)?限

0

000

沒有任何權(quán)限

1

001

只能執(zhí)行

2

010

只寫

3

011

只寫和執(zhí)行

4

100

只讀

5

101

只讀和執(zhí)行

6

110

讀和寫

7

111

讀、寫和執(zhí)行

同上例,原先筆者系統(tǒng)中有文件genromfs-0.5.1.tar.gz,其權(quán)限如下所示。

[root@localhost?test]#?ls?–l

-rw-rw-r--????1?david?????david????????20543?Dec?29??2004?genromfs-0.5.1.tar.gz

[root@localhost?test]#?chmod?765?genromfs-0.5.1.tar.gz

[root@localhost?test]#?ls?–l

-rwxrw-r-x????1?david?????david????????20543?Dec?29??2004?genromfs-0.5.1.tar.gz

可見,在執(zhí)行了chmod?765之后,該文件的擁有者權(quán)限、文件組權(quán)限和其他用戶權(quán)限都恰當(dāng)?shù)貙?duì)應(yīng)了。

(5)使用說明

n 使用chmod必須具有root權(quán)限。

想一想

chmod?o+x?uClinux20031103.tgz是什么意思?它所對(duì)應(yīng)的八進(jìn)制數(shù)指定更改應(yīng)如何表示?

?

8.grep

(1)作用。

在指定文件中搜索特定的內(nèi)容,并將含有這些內(nèi)容的行標(biāo)準(zhǔn)輸出。

(2)格式。

grep?[選項(xiàng)]?格式?[文件及路徑]

其中的格式是指要搜索的內(nèi)容格式,若缺省“文件及路徑”則默認(rèn)表示在當(dāng)前目錄下搜索。

(3)常見參數(shù)。

grep主要選項(xiàng)參數(shù)如表2.18所示。

表2.18 grep命令常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-c

只輸出匹配行的計(jì)數(shù)

-I

不區(qū)分大小寫(只適用于單字符)

-h

查詢多文件時(shí)不顯示文件名

-l

查詢多文件時(shí)只輸出包含匹配字符的文件名

-n

顯示匹配行及行號(hào)

-s

不顯示不存在或無匹配文本的錯(cuò)誤信息

-v

顯示不包含匹配文本的所有行

(4)使用實(shí)例。

[root@localhost?test]#?grep?"hello"?/?-r

Binary?file?./iscit2005/備份/iscit2004.sql?matches

./ARM_TOOLS/uClinux-Samsung/linux-2.4.x/Documentation/s390/Debugging390.txt:hello?world$2?=?0

在本例中,“hello”是要搜索的內(nèi)容,“/?-r”是指定文件,表示搜索根目錄下的所有文件。

(5)使用說明。

n 在缺省情況下,“grep”只搜索當(dāng)前目錄。如果此目錄下有許多子目錄,“grep”會(huì)以如下形式列出:“grep:sound:Is?a?directory”。這會(huì)使“grep”的輸出難以閱讀。但有以下兩種解決的方法。

①?明確要求搜索子目錄:grep?–r(正如上例中所示);

②?忽略子目錄:grep?-d?skip。

n 當(dāng)預(yù)料到有許多輸出時(shí),可以通過管道將其轉(zhuǎn)到“l(fā)ess”(分頁器)上閱讀:如grep?"h"?./?-r?|less分頁閱讀。

n grep特殊用法。

grep?pattern1|pattern2?files:顯示匹配pattern1或pattern2的行;

grep?pattern1?files|grep?pattern2:顯示既匹配pattern1又匹配pattern2的行;

小知識(shí)

在文件命令中經(jīng)常會(huì)使用pattern正則表達(dá)式,它是可以描述一類字符串的模式(Pattern),如果一個(gè)字符串可以用某個(gè)正則表達(dá)式來描述,就稱這個(gè)字符和該正則表達(dá)式匹配。這和DOS中用戶可以使用通配符“*”代表任意字符類似。在Linux系統(tǒng)上,正則表達(dá)式通常被用來查找文本的模式,以及對(duì)文本執(zhí)行“搜索-替換”操作等。

正則表達(dá)式的主要參數(shù)有如下

·??:忽略正則表達(dá)式中特殊字符的原有含義;

·??^:匹配正則表達(dá)式的開始行;

·??$:匹配正則表達(dá)式的結(jié)束行;

·??<:從匹配正則表達(dá)式的行開始;

·??>:到匹配正則表達(dá)式的行結(jié)束;

·??[?]:?jiǎn)蝹€(gè)字符,如[A]即A符合要求;

·??[-]:范圍,如[A-Z],即A、B、C一直到Z都符合要求;

·??。:所有的單個(gè)字符;

·??*:所有字符,長(zhǎng)度可以為0。

?

9.find

(1)作用。

在指定目錄中搜索文件,它的使用權(quán)限是所有用戶。

(2)格式。

find?[路徑][選項(xiàng)][描述]

其中的路徑為文件搜索路徑,系統(tǒng)開始沿著此目錄樹向下查找文件。它是一個(gè)路徑列表,相互用空格分離。若缺省路徑,那么默認(rèn)為當(dāng)前目錄。

其中的描述是匹配表達(dá)式,是find命令接受的表達(dá)式。

(3)常見參數(shù)。

[選項(xiàng)]主要參數(shù)如表2.19所示。

表2.19 find選項(xiàng)常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-depth

使用深度級(jí)別的查找過程方式,在某層指定目錄中優(yōu)先查找文件內(nèi)容

-mount

不在其他文件系統(tǒng)(如Msdos、Vfat等)的目錄和文件中查找

[描述]主要參數(shù)如表2.20所示。

表2.20 find描述常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-name

支持通配符*和?

-user

用戶名:搜索文件屬主為用戶名(ID或名稱)的文件

-print

輸出搜索結(jié)果,并且打印

(4)使用實(shí)例。

[root@localhost?test]#?find?./?-name?hello*.c

./hello1.c

./iscit2005/hello2.c

在該實(shí)例中使用了-name的選項(xiàng)支持通配符。

(5)使用說明。

n 若使用目錄路徑為“/”,通常需要查找較多的時(shí)間,可以指定更為確切的路徑以減少查找時(shí)間。

n find命令可以使用混合查找的方法,例如,想在/etc目錄中查找大于500000字節(jié),并且在24小時(shí)內(nèi)修改的某個(gè)文件,則可以使用-and(與)把兩個(gè)查找參數(shù)鏈接起來組合成一個(gè)混合的查找方式,如“find?/etc?-size?+500000c?-and?-mtime?+1”。

10.locate

(1)作用。

用于查找文件。其方法是先建立一個(gè)包括系統(tǒng)內(nèi)所有文件名稱及路徑的數(shù)據(jù)庫(kù),之后當(dāng)尋找時(shí)就只需查詢這個(gè)數(shù)據(jù)庫(kù),而不必實(shí)際深入檔案系統(tǒng)之中了。因此其速度比find快很多。

(2)格式。

locate?[選項(xiàng)]

(3)locate主要選項(xiàng)參數(shù)如表2.21所示。

表2.21 locate命令常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-u

從根目錄開始建立數(shù)據(jù)庫(kù)

-U

在指定的位置開始建立數(shù)據(jù)庫(kù)

-f

將特定的文件系統(tǒng)排除在數(shù)據(jù)庫(kù)外,例如proc文件系統(tǒng)中的文件

-r

使用正則運(yùn)算式做尋找的條件

-o

指定數(shù)據(jù)庫(kù)的名稱

(4)使用實(shí)例。

[root@localhost?test]#?locate?issue?-U?./

[root@localhost?test]#?updatedb

[root@localhost?test]#?locate?-r?issue*

./ARM_TOOLS/uClinux-Samsung/lib/libpam/doc/modules/pam_issue.sgml

./ARM_TOOLS/uClinux-Samsung/lib/libpam/modules/pam_issue

./ARM_TOOLS/uClinux-Samsung/lib/libpam/modules/pam_issue/Makefile

./ARM_TOOLS/uClinux-Samsung/lib/libpam/modules/pam_issue/pam_issue.c

實(shí)例中首先在當(dāng)前目錄下建立了一個(gè)數(shù)據(jù)庫(kù),并且在更新了數(shù)據(jù)庫(kù)之后進(jìn)行正則匹配查找。通過運(yùn)行可以發(fā)現(xiàn)locate的運(yùn)行速度非常快。

(5)使用說明。

locate命令所查詢的數(shù)據(jù)庫(kù)由updatedb程序來更新,而updatedb是由cron?daemon周期性建立的,但若所找到的檔案是最近才建立或剛改名的,可能會(huì)找不到,因?yàn)閡pdatedb默認(rèn)每天運(yùn)行一次,用戶可以由修改crontab配置(etc/crontab)來更新周期值。

11.ln

(1)作用。

為某一個(gè)文件在另外一個(gè)位置建立一個(gè)符號(hào)鏈接。當(dāng)需要在不同的目錄用到相同的文件時(shí),Linux允許用戶不用在每一個(gè)需要的目錄下都存放一個(gè)相同的文件,而只需將其他目錄下的文件用ln命令鏈接即可,這樣就不必重復(fù)地占用磁盤空間。

(2)格式。

ln[選項(xiàng)]?目標(biāo)?目錄

(3)常見參數(shù)。

n -s建立符號(hào)鏈接(這也是通常惟一使用的參數(shù))。

(4)使用實(shí)例。

[root@localhost?test]#?ln?-s?../genromfs-0.5.1.tar.gz?./hello

[root@localhost?test]#?ls?-l

total?77948

lrwxrwxrwx???1?root???root????24?Jan?14?00:25?hello?->?../genromfs-0.5.1.tar.gz

該實(shí)例建立了當(dāng)前目錄的hello文件與上級(jí)目錄之間的符號(hào)鏈接,可以看見,在hello的ls?–l中的第一位為“l(fā)”,表示符號(hào)鏈接,同時(shí)還顯示了鏈接的源文件。

(5)使用說明。

n ln命令會(huì)保持每一處鏈接文件的同步性,也就是說,不論改動(dòng)了哪一處,其他的文件都會(huì)發(fā)生相同的變化。

n ln的鏈接分軟鏈接和硬鏈接兩種。

軟鏈接就是上面所說的ln?-s?**?**,它只會(huì)在用戶選定的位置上生成一個(gè)文件的鏡像,不會(huì)重復(fù)占用磁盤空間,平時(shí)使用較多的都是軟鏈接。

硬鏈接是不帶參數(shù)的ln?**?**,它會(huì)在用戶選定的位置上生成一個(gè)和源文件大小相同的文件,無論是軟鏈接還是硬鏈接,文件都保持同步變化。

?

2.1.3??壓縮打包相關(guān)命令

Linux中打包壓縮的相關(guān)命令如表2.22所示,本書以gzip和tar為例進(jìn)行講解。

表2.22 Linux常見系統(tǒng)管理命令

命????令

命?令?含?義

格????式

bzip2

.bz2文件的壓縮(或解壓縮)程序

bzip2[選項(xiàng)]?壓縮(解壓縮)的文件名

bunzip2

.bz2文件的解壓縮程序

bunzip2[選項(xiàng)]?.bz2壓縮文件

bzip2recover

修復(fù)損壞的.bz2文件

bzip2recover?.bz2壓縮文件

gzip

.gz文件的壓縮程序

gzip?[選項(xiàng)]?壓縮(解壓縮)的文件名

gunzip

解壓縮被gzip壓縮過的文件

gunzip?[選項(xiàng)]?.gz文件名

unzip

解壓縮winzip壓縮的.zip文件

unzip?[選項(xiàng)]?.zip壓縮文件

compress

早期的壓縮或解壓縮程序(壓縮后文件名為.Z)

compress?[選項(xiàng)]?文件

tar

對(duì)文件目錄進(jìn)行打包或解壓縮

tar?[選項(xiàng)]?[打包后文件名]文件目錄列表

1.gzip

(1)作用。

對(duì)文件進(jìn)行壓縮和解壓縮,而且gzip根據(jù)文件類型可自動(dòng)識(shí)別壓縮或解壓。

(2)格式。

gzip?[選項(xiàng)]?壓縮(解壓縮)的文件名。

(3)常見參數(shù)。

gzip主要選項(xiàng)參數(shù)如表2.23所示。

表2.23 gzip命令常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-c

將輸出信息寫到標(biāo)準(zhǔn)輸出上,并保留原有文件

-d

將壓縮文件解壓

-l

對(duì)每個(gè)壓縮文件,顯示下列字段:壓縮文件的大小、未壓縮時(shí)文件的大小、壓縮比、未壓縮時(shí)文件的名字

-r

查找指定目錄并壓縮或解壓縮其中的所有文件

-t

測(cè)試,檢查壓縮文件是否完整

-v

對(duì)每一個(gè)壓縮和解壓的文件,顯示文件名和壓縮比

(4)使用實(shí)例。

[root@localhost?test]#?gzip?portmap-4.0-54.i386.rpm

[root@localhost?test]#?ls

portmap-4.0-54.i386.rpm.gz

[root@localhost?test]#?gzip?-l?portmap-4.0-54.i386.rpm

compressed????uncompressed??ratio?uncompressed_name

21437????????????25751???16.9%?portmap-4.0-54.i386.rpm

該實(shí)例將目錄下的“hello.c”文件進(jìn)行壓縮,選項(xiàng)“-l”列出了壓縮比。

(5)使用說明。

n 使用gzip壓縮只能壓縮單個(gè)文件,而不能壓縮目錄,其選項(xiàng)“-d”是將該目錄下的所有文件逐個(gè)進(jìn)行壓縮,而不是壓縮成一個(gè)文件。

2.tar

(1)作用。

對(duì)文件目錄進(jìn)行打包或解包。

在此需要對(duì)打包和壓縮這兩個(gè)概念進(jìn)行區(qū)分。打包是指將一些文件或目錄變成一個(gè)總的文件,而壓縮則是將一個(gè)大的文件通過一些壓縮算法變成一個(gè)小文件。為什么要區(qū)分這兩個(gè)概念呢?這是由于在Linux中的很多壓縮程序(如前面介紹的gzip)只能針對(duì)一個(gè)文件進(jìn)行壓縮,這樣當(dāng)想要壓縮較多文件時(shí),就要借助它的工具將這些堆文件先打成一個(gè)包,然后再用原來的壓縮程序進(jìn)行壓縮。

(2)格式。

tar?[選項(xiàng)]?[打包后文件名]文件目錄列表。

tar可自動(dòng)根據(jù)文件名識(shí)別打包或解包動(dòng)作,其中打包后文件名為用戶自定義的打包后文件名稱,文件目錄列表可以是要進(jìn)行打包備份的文件目錄列表,也可以是進(jìn)行解包的文件目錄列表。

(3)主要參數(shù)。

tar主要選項(xiàng)參數(shù)如表2.24所示。

表2.24 tar命令常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-c

建立新的打包文件

-r

向打包文件末尾追加文件

-x

從打包文件中解出文件

-o

將文件解開到標(biāo)準(zhǔn)輸出

-v

處理過程中輸出相關(guān)信息

-f

對(duì)普通文件操作

-z

調(diào)用gzip來壓縮打包文件,與-x聯(lián)用時(shí)調(diào)用gzip完成解壓縮

-j

調(diào)用bzip2來壓縮打包文件,與-x聯(lián)用時(shí)調(diào)用bzip2完成解壓縮

-Z

調(diào)用compress來壓縮打包文件,與-x聯(lián)用時(shí)調(diào)用compress完成解壓縮

(4)使用實(shí)例。

[root@localhost?home]#?tar?-cvf?david.tar??david

./david/

./david/.bash_logout

./david/.bash_profile

./david/.bashrc

./david/.bash_history

./david/my/

./david/my/1.c.gz

./david/my/my.c.gz

./david/my/hello.c.gz

./david/my/why.c.gz

[root@localhost?home]#?ls?-l?david.tar

-rw-r--r--????1?root?????root????????10240?Jan?14?15:01?david.tar

該實(shí)例將“david”目錄下的文件加以打包,其中選項(xiàng)“-v”在屏幕上輸出了打包的具體過程。

[david@localhost?david]#?tar?-zxvf?linux-2.6.11.tar.gz

linux-2.6.11/

linux-2.6.11/drivers/

linux-2.6.11/drivers/video/

linux-2.6.11/drivers/video/aty/

該實(shí)例用選項(xiàng)“-z”調(diào)用gzip,與“-x”聯(lián)用時(shí)完成解壓縮。

(5)使用說明。

tar命令除了用于常規(guī)的打包之外,使用更為頻繁的是用選項(xiàng)“-z”或“-j”調(diào)用gzip或bzip2(Linux中另一種解壓工具)完成對(duì)各種不同文件的解壓。

表2.25對(duì)Linux中常見類型的文件解壓命令做一個(gè)總結(jié)。

表2.25 Linux常見類型的文件解壓命令一覽表

文?件?后?綴

解?壓?命?令

示????例

.a

tar?xv

tar?xv?hello.a

.z

Uncompress

uncompress?hello.Z

.gz

Gunzip

gunzip?hello.gz

.tar.Z

tar?xvZf

tar?xvZf?hello.tar.Z

.tar.gz/.tgz

tar?xvzf

tar?xvzf?hello.tar.gz

tar.bz2

tar?jxvf

tar?jxvf?hello.tar.bz2

.rpm

安裝:rpm?–i

安裝:rpm?-i?hello.rpm

解壓縮:rpm2cpio

解壓縮:rpm2cpio?hello.rpm

.deb(Debain中的文件格式)

安裝:dpkg?–i

安裝:dpkg?-i?hello.deb

解壓縮:dpkg-deb?--fsys-tarfile

解壓縮:dpkg-deb?--fsys-tarhello?hello.deb

.zip

Unzip

unzip?hello.zip

?

2.1.4??文件比較合并相關(guān)命令

1.diff

(1)作用。

比較兩個(gè)不同的文件或不同目錄下的兩個(gè)同名文件功能,并生成補(bǔ)丁文件。

(2)格式。

diff[選項(xiàng)]?文件1?文件2

diff比較文件1和文件2的不同之處,并按照選項(xiàng)所指定的格式加以輸出。diff的格式分為命令格式和上下文格式,其中上下文格式又包括了舊版上下文格式和新版上下文格式,命令格式分為標(biāo)準(zhǔn)命令格式、簡(jiǎn)單命令格式及混合命令格式,它們之間的區(qū)別會(huì)在使用實(shí)例中進(jìn)行詳細(xì)講解。當(dāng)選項(xiàng)缺省時(shí),diff默認(rèn)使用混合命令格式。

(3)主要參數(shù)。

diff主要選項(xiàng)參數(shù)如表2.26所示。

表2.26 diff命令常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-r

對(duì)目錄進(jìn)行遞歸處理

-q

只報(bào)告文件是否有不同,不輸出結(jié)果

-e,-ed

命令格式

-f

RCS(修訂控制系統(tǒng))命令簡(jiǎn)單格式

-c,--context

舊版上下文格式

-u,--unified

新版上下文格式

-Z

調(diào)用compress來壓縮歸檔文件,與-x聯(lián)用時(shí)調(diào)用compress完成解壓縮

(4)使用實(shí)例。

以下有兩個(gè)文件hello1.c和hello2.c。

/*?hello1.c?*/

#include?<stdio.h>

void?main()

{

???????????printf("Hello!This?is?my?home!n");

}

/*?hello2.c?*/

#include?<stdio.h>

void?main()

{

???????????printf("Hello!This?is?your?home!n");

}

以下實(shí)例主要講解了各種不同格式的比較和補(bǔ)丁文件的創(chuàng)建方法。

①?主要格式比較。

首先使用舊版上下文格式進(jìn)行比較。

[root@localhost?david]#?diff?-c?hello1.c?hello2.c

***?hello1.c????Sat?Jan?14?16:24:51?2006

---?hello2.c????Sat?Jan?14?16:54:41?2006

***************

***?1,5?****

??#include?<stdio.h>

??void?main()

??{

!????????printf("Hello!This?is?my?home!n");

??}

---?1,5?----

??#include?<stdio.h>

??void?main()

??{

!????????printf("Hello!This?is?your?home!n");

??}

可以看出,用舊版上下文格式進(jìn)行輸出時(shí),在顯示每個(gè)有差別行的同時(shí)還顯示該行的上下3行,區(qū)別的地方用“!”加以標(biāo)出,由于示例程序較短,上下3行已經(jīng)包含了全部代碼。

接著使用新版的上下文格式進(jìn)行比較。

[root@localhost?david]#?diff?-u?hello1.c?hello2.c?

---?hello1.c????Sat?Jan?14?16:24:51?2006

+++?hello2.c????Sat?Jan?14?16:54:41?2006

@@?-1,5?+1,5?@@

?#include?<stdio.h>

?void?main()

?{

-????????printf("Hello!This?is?my?home!n");

+????????printf("Hello!This?is?your?home!n");

?}

可以看出,在新版上下文格式輸出時(shí),僅把兩個(gè)文件的不同之處分別列出,而相同之處沒有重復(fù)列出,這樣大大方便了用戶的閱讀。

接下來使用命令格式進(jìn)行比較。

[root@localhost?david]#?diff?-e?hello1.c?hello2.c?

4c

?????????printf("Hello!This?is?your?home!n");

可以看出,命令符格式輸出時(shí)僅輸出了不同的行,其中命令符“4c”中的數(shù)字表示行編號(hào),字母的含義為:a表示添加,b表示刪除,c表示更改。因此,-e選項(xiàng)的命令符表示:若要把hello1.c變?yōu)閔ello2.c,就需要把hello1.c的第4行改為顯示出的“printf(“Hello!This?is?your?home!n”);”。

選項(xiàng)“-f”和選項(xiàng)“-e”顯示的內(nèi)容基本相同,就是數(shù)字和字母的順序相交換了,從以下的輸出結(jié)果可以看出。

[root@localhost?david]#?diff?-f?hello1.c?hello2.c?

c4

?????????printf("Hello!This?is?your?home!n");

在diff選項(xiàng)缺省的情況下,輸出結(jié)果如下所示。

[root@localhost?david]#?diff?hello1.c?hello2.c????

4c4

<????????printf("Hello!This?is?my?home!n");

---

>????????printf("Hello!This?is?your?home!n");

可以看出,diff缺省情況下的輸出格式充分顯示了如何將hello1.c轉(zhuǎn)化為hello2.c,即通過“4c4”實(shí)現(xiàn)。

②?創(chuàng)建補(bǔ)丁文件(也就是差異文件)是diff的功能之一,不同的選項(xiàng)格式可以生成與之相對(duì)應(yīng)的補(bǔ)丁文件,如下面扔例子所示。

[root@localhost?david]#?diff?hello1.c?hello2.c?>hello.patch

[root@localhost?david]#?vi?hello.patch?

4c4

<????????printf("Hello!This?is?my?home!n");

---

>????????printf("Hello!This?is?your?home!n");

可以看出,使用缺省選項(xiàng)創(chuàng)建補(bǔ)丁文件的內(nèi)容和前面使用缺省選項(xiàng)的輸出內(nèi)容是一樣的。

小知識(shí)

上例中所使用的”>“是輸出重定向。通常在Linux上執(zhí)行一個(gè)shell命令行時(shí),會(huì)自動(dòng)打開3個(gè)標(biāo)準(zhǔn)文件:標(biāo)準(zhǔn)輸入文件(stdin),即通常對(duì)應(yīng)終端的鍵盤;標(biāo)準(zhǔn)輸出文件(stdout)和標(biāo)準(zhǔn)錯(cuò)誤輸出文件(stderr),前兩個(gè)文件都對(duì)應(yīng)終端的屏幕。進(jìn)程將從標(biāo)準(zhǔn)輸入文件中得到輸入數(shù)據(jù),并且將正常輸出數(shù)據(jù)輸出到標(biāo)準(zhǔn)輸出文件,而將錯(cuò)誤信息送到標(biāo)準(zhǔn)錯(cuò)誤文件中。這就是通常使用的標(biāo)準(zhǔn)輸入/輸出方式。

直接使用標(biāo)準(zhǔn)輸入/輸出文件存在以下問題:首先,用戶輸入的數(shù)據(jù)只能使用一次。當(dāng)下次希望再次使用這些數(shù)據(jù)時(shí)就不得不重新輸入。同樣,用戶對(duì)輸出信息不能做更多的處理,只能等待程序的結(jié)束。

為了解決上述問題,Linux系統(tǒng)為輸入、輸出的信息傳送引入了兩種方式:輸入/輸出重定向機(jī)制和管道(在1.3.1的小知識(shí)中已有介紹)。其中,輸入重定向是指把命令(或可執(zhí)行程序)的標(biāo)準(zhǔn)輸入重定向到指定的文件中。也就是說,輸入可以不來自鍵盤,而來自一個(gè)指定的文件。同樣,輸出重定向是指把命令(或可執(zhí)行程序)的標(biāo)準(zhǔn)輸出或標(biāo)準(zhǔn)錯(cuò)誤輸出重新定向到指定文件中。這樣,該命令的輸出就可以不顯示在屏幕上,而是寫入到指定文件中。就如上述例子中所用到的把“diff?hello1.c?hello2.c”的結(jié)果重定向到hello.patch文件中。這就大大增加了輸入/輸出的靈活性。

?

2.patch

(1)作用。

命令跟diff配合使用,把生成的補(bǔ)丁文件應(yīng)用到現(xiàn)有代碼上。

(2)格式。

patch?[選項(xiàng)]?[待patch的文件[patch文件]]。

常用的格式為:patch?-pnum?[patch文件],其中的-pnum是選項(xiàng)參數(shù),在后面會(huì)詳細(xì)介紹。

(3)常見參數(shù)。

patch主要選項(xiàng)參數(shù)如表2.27所示。

表2.27 patch命令常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-b

生成備份文件

-d

把dir設(shè)置為解釋補(bǔ)丁文件名的當(dāng)前目錄

-e

把輸入的補(bǔ)丁文件看作是ed腳本

-pnum

剝離文件名中的前NUM個(gè)目錄部分

-t

在執(zhí)行過程中不要求任何輸入

-v

顯示patch的版本號(hào)

以下對(duì)-punm選項(xiàng)進(jìn)行說明。

首先查看以下示例(對(duì)分別位于xc.orig/config/cf/Makefile和xc.bsd/config/cf/Makefile的文件使用patch命令)。

diff?-ruNa?xc.orig/config/cf/Makefile?xc.bsd/config/cf/Makefile

以下是patch文件的頭標(biāo)記。

---?xc.orig/config/cf/Imake.cf?Fri?Jul?30?12:45:47?1999

+++?xc.new/config/cf/Imake.cf?Fri?Jan?21?13:48:44?2000

這個(gè)patch如果直接應(yīng)用,那么它會(huì)去找“xc.orig/config/cf”目錄下的Makefile文件,假如用戶源碼樹的根目錄是缺省的xc而不是xc.orig,則除了可以把xc.orig移到xc處之外,還有什么簡(jiǎn)單的方法應(yīng)用此patch嗎?NUM就是為此而設(shè)的:patch會(huì)把目標(biāo)路徑名剝?nèi)UM個(gè)“/”,也就是說,在此例中,-p1的結(jié)果是config/cf/Makefile,-p2的結(jié)果是cf/Makefile。因此,在此例中就可以用命令cd?xc;patch?_p1?<?/pathname/xxx.patch完成操作。

(4)使用實(shí)例。

[root@localhost?david]#?diff?hello1.c?hello2.c?>hello1.patch

[root@localhost?david]#?patch?./hello1.c?<?hello1.patch?

patching?file?./hello1.c

[root@localhost?david]#?vi?hello1.c

#include?<stdio.h>

void?main()

{

????????printf("Hello!This?is?your?home!n");

}

在該實(shí)例中,由于patch文件和源文件在同一目錄下,因此直接給出了目標(biāo)文件的目錄,在應(yīng)用了patch之后,hello1.c的內(nèi)容變?yōu)榱薶ello2.c的內(nèi)容。

(5)使用說明。

n 如果patch失敗,patch命令會(huì)把成功的patch行補(bǔ)上其差異,同時(shí)(無條件)生成備份文件和一個(gè).rej文件。.rej文件里沒有成功提交的patch行,需要手工打上補(bǔ)丁。這種情況在源碼升級(jí)的時(shí)候有可能會(huì)發(fā)生。

n 在多數(shù)情況下,patch程序可以確定補(bǔ)丁文件的格式,當(dāng)它不能識(shí)別時(shí),可以使用-c、-e、-n或者-u選項(xiàng)來指定輸入的補(bǔ)丁文件的格式。由于只有GNU?patch可以創(chuàng)建和讀取新版上下文格式的patch文件,因此,除非能夠確定補(bǔ)丁所面向的只是那些使用GNU工具的用戶,否則應(yīng)該使用舊版上下文格式來生成補(bǔ)丁文件。

n 為了使patch程序能夠正常工作,需要上下文的行數(shù)至少是2行(即至少是有一處差別的文件)。

2.1.5??網(wǎng)絡(luò)相關(guān)命令

Linux下網(wǎng)絡(luò)相關(guān)的常見命令如表2.28所示,本書僅以ifconfig和ftp為例進(jìn)行說明。

表2.28 Linux下網(wǎng)絡(luò)相關(guān)命令

選????項(xiàng)

參?數(shù)?含?義

常見選項(xiàng)格式

netstat

顯示網(wǎng)絡(luò)連接、路由表和網(wǎng)絡(luò)接口信息

netstat?[-an]

nslookup

查詢一臺(tái)機(jī)器的IP地址和其對(duì)應(yīng)的域名

nslookup?[IP地址/域名]

finger

查詢用戶的信息

finger?[選項(xiàng)]?[使用者]?[用戶@主機(jī)]

ping

用于查看網(wǎng)絡(luò)上的主機(jī)是否在工作

ping?[選項(xiàng)]?主機(jī)名/IP地址

ifconfig

查看和配置網(wǎng)絡(luò)接口的參數(shù)

ifconfig?[選項(xiàng)]?[網(wǎng)絡(luò)接口]

ftp

利用ftp協(xié)議上傳和下載文件

在本節(jié)中會(huì)詳細(xì)講述

telnet

利用telnet協(xié)議訪問主機(jī)

telent?[選項(xiàng)]?[IP地址/域名]

ssh

利用ssh登錄對(duì)方主機(jī)

ssh?[選項(xiàng)]?[IP地址]

1.ifconfig

(1)作用。

用于查看和配置網(wǎng)絡(luò)接口的地址和參數(shù),包括IP地址、網(wǎng)絡(luò)掩碼、廣播地址,它的使用權(quán)限是超級(jí)用戶。

(2)格式。

ifconfig有兩種使用格式,分別用于查看和更改網(wǎng)絡(luò)接口。

①?ifconfig?[選項(xiàng)]?[網(wǎng)絡(luò)接口]:用來查看當(dāng)前系統(tǒng)的網(wǎng)絡(luò)配置情況。

②?ifconfig?網(wǎng)絡(luò)接口?[選項(xiàng)]?地址:用來配置指定接口(如eth0、eth1)的IP地址、網(wǎng)絡(luò)掩碼、廣播地址等。

(3)常見參數(shù)。

ifconfig第二種格式的常見選項(xiàng)參數(shù)如表2.29所示。

表2.29 ftp命令選項(xiàng)的常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-interface

指定的網(wǎng)絡(luò)接口名,如eth0和eth1

up

激活指定的網(wǎng)絡(luò)接口卡

down

關(guān)閉指定的網(wǎng)絡(luò)接口

broadcast?address

設(shè)置接口的廣播地址

poin?to?point

啟用點(diǎn)對(duì)點(diǎn)方式

address

設(shè)置指定接口設(shè)備的IP地址

netmask?address

設(shè)置接口的子網(wǎng)掩碼

(4)使用實(shí)例。

首先,在本例中使用ifconfig的第一種格式來查看網(wǎng)絡(luò)接口配置情況。

[root@localhost?~]#?ifconfig

eth0??????Link?encap:Ethernet??HWaddr?00:08:02:E0:C1:8A

????????????inet?addr:192.168.1.70??Bcast:192.168.1.255

Mask:255.255.255.0

????????????inet6?addr:?fe80::208:2ff:fee0:c18a/64?Scope:Link

????????????UP?BROADCAST?RUNNING?MULTICAST??MTU:1500??Metric:1

????????????RX?packets:26931?errors:0?dropped:0?overruns:0?frame:0

????????????TX?packets:3209?errors:0?dropped:0?overruns:0?carrier:0

????????????collisions:0?txqueuelen:1000

????????????RX?bytes:6669382?(6.3?MiB)??TX?bytes:321302?(313.7?KiB)

????????????Interrupt:11

lo?????????Link?encap:Local?Loopback

????????????inet?addr:127.0.0.1??Mask:255.0.0.0

????????????inet6?addr:?::1/128?Scope:Host

????????????UP?LOOPBACK?RUNNING??MTU:16436??Metric:1

????????????RX?packets:2537?errors:0?dropped:0?overruns:0?frame:0

????????????TX?packets:2537?errors:0?dropped:0?overruns:0?carrier:0

????????????collisions:0?txqueuelen:0

????????????RX?bytes:2093403?(1.9?MiB)??TX?bytes:2093403?(1.9?MiB)

可以看出,使用ifconfig的顯示結(jié)果中詳細(xì)列出了所有活躍接口的IP地址、硬件地址、廣播地址、子網(wǎng)掩碼、回環(huán)地址等。

[root@localhost?workplace]#?ifconfig?eth0

eth0??????Link?encap:Ethernet??HWaddr?00:08:02:E0:C1:8A

???????????inet?addr:?192.168.1.70??Bcast:192.168.1.255??Mask:255.255.255.0

???????????inet6?addr:?fe80::208:2ff:fee0:c18a/64?Scope:Link

???????????UP?BROADCAST?RUNNING?MULTICAST??MTU:1500??Metric:1

???????????RX?packets:27269?errors:0?dropped:0?overruns:0?frame:0

???????????TX?packets:3212?errors:0?dropped:0?overruns:0?carrier:0

???????????collisions:0?txqueuelen:1000

???????????RX?bytes:6698832?(6.3?MiB)??TX?bytes:322488?(314.9?KiB)

???????????Interrupt:11

在此例中,通過指定接口顯示出對(duì)應(yīng)接口的詳細(xì)信息。另外,用戶還可以通過指定參數(shù)“-a”來查看所有接口(包括非活躍接口)的信息。

接下來的示例指出了如何使用ifconfig的第二種格式來改變指定接口的網(wǎng)絡(luò)參數(shù)配置。

[root@localhost?~]#?ifconfig?eth0?down

[root@localhost?~]#?ifconfig

lo????????Link?encap:Local?Loopback

???????????inet?addr:127.0.0.1??Mask:255.0.0.0

???????????inet6?addr:?::1/128?Scope:Host

???????????UP?LOOPBACK?RUNNING??MTU:16436??Metric:1

???????????RX?packets:1931?errors:0?dropped:0?overruns:0?frame:0

???????????TX?packets:1931?errors:0?dropped:0?overruns:0?carrier:0

???????????collisions:0?txqueuelen:0

???????????RX?bytes:2517080?(2.4?MiB)??TX?bytes:2517080?(2.4?MiB)

在此例中,通過將指定接口的狀態(tài)設(shè)置為DOWN,暫時(shí)停止該接口的工作。

[root@localhost?~]#?ifconfig?eth0?210.25.132.142?netmask?255.255.255.0

[root@localhost?~]#?ifconfig

eth0??????Link?encap:Ethernet??HWaddr?00:08:02:E0:C1:8A

???????????inet?addr:210.25.132.142??Bcast:210.25.132.255??Mask:255.255.255.0

???????????inet6?addr:?fe80::208:2ff:fee0:c18a/64?Scope:Link

???????????UP?BROADCAST?RUNNING?MULTICAST??MTU:1500??Metric:1

???????????RX?packets:1722?errors:0?dropped:0?overruns:0?frame:0

???????????TX?packets:5?errors:0?dropped:0?overruns:0?carrier:0

???????????collisions:0?txqueuelen:1000

???????????RX?bytes:147382?(143.9?KiB)??TX?bytes:398?(398.0?b)

???????????Interrupt:11

從上例可以看出,ifconfig改變了接口eth0的IP地址、子網(wǎng)掩碼等,在之后的ifconfig查看中可以看出確實(shí)發(fā)生了變化。

(5)使用說明。

用ifconfig命令配置的網(wǎng)絡(luò)設(shè)備參數(shù)不重啟就可生效,但在機(jī)器重新啟動(dòng)以后將會(huì)失效,除非在網(wǎng)絡(luò)接口配置文件中進(jìn)行修改。

?

2.ftp

(1)作用。

該命令允許用戶利用ftp協(xié)議上傳和下載文件。

(2)格式。

ftp?[選項(xiàng)]?[主機(jī)名/IP]。

ftp相關(guān)命令包括使用命令和內(nèi)部命令,其中使用命令的格式如上所列,主要用于登錄到ftp服務(wù)器。內(nèi)部命令是指成功登錄后進(jìn)行的一系列操作,下面會(huì)詳細(xì)列出。若用戶缺省“主機(jī)名/IP”,則可在轉(zhuǎn)入到ftp內(nèi)部命令后繼續(xù)選擇登錄。

(3)常見參數(shù)。

ftp常見選項(xiàng)參數(shù)如表2.30所示。

表2.30 ftp命令選項(xiàng)常見參數(shù)列表

選????項(xiàng)

參?數(shù)?含?義

-v

顯示遠(yuǎn)程服務(wù)器的所有響應(yīng)信息

-n

限制ftp的自動(dòng)登錄

-d

使用調(diào)試方式

-g

取消全局文件名

ftp常見內(nèi)部命令如表2.31所示。

表2.31 ftp命令常見內(nèi)部命令

命????令

命?令?含?義

account[password]

提供登錄遠(yuǎn)程系統(tǒng)成功后訪問系統(tǒng)資源所需的補(bǔ)充口令

ascii

使用ASCII類型傳輸方式,為缺省傳輸模式

bin/?type?binary

使用二進(jìn)制文件傳輸方式(嵌入式開發(fā)中的常見方式)

bye

退出ftp會(huì)話過程

cd?remote-dir

進(jìn)入遠(yuǎn)程主機(jī)目錄

cdup

進(jìn)入遠(yuǎn)程主機(jī)目錄的父目錄

chmod?mode?file-name

將遠(yuǎn)程主機(jī)文件file-name的存取方式設(shè)置為mode

close

中斷與遠(yuǎn)程服務(wù)器的ftp會(huì)話(與open對(duì)應(yīng))

delete?remote-file

刪除遠(yuǎn)程主機(jī)文件

debug[debug-value]

設(shè)置調(diào)試方式,?顯示發(fā)送至遠(yuǎn)程主機(jī)的每條命令

dir/ls[remote-dir][local-file]

顯示遠(yuǎn)程主機(jī)目錄,并將結(jié)果存入本地文件local-file

disconnection

同close

get?remote-file[local-file]

將遠(yuǎn)程主機(jī)的文件remote-file傳至本地硬盤的local-file

lcd[dir]

將本地工作目錄切換至dir

mdelete[remote-file]

刪除遠(yuǎn)程主機(jī)文件

mget?remote-files

傳輸多個(gè)遠(yuǎn)程文件

mkdir?dir-name

在遠(yuǎn)程主機(jī)中建立一個(gè)目錄

mput?local-file

將多個(gè)文件傳輸至遠(yuǎn)程主機(jī)

open?host[port]

建立與指定ftp服務(wù)器的連接,可指定連接端口

passive

進(jìn)入被動(dòng)傳輸方式(在這種模式下,數(shù)據(jù)連接是由客戶程序發(fā)起的)

put?local-file[remote-file]

將本地文件local-file傳送至遠(yuǎn)程主機(jī)

reget?remote-file[local-file]

類似于get,但若local-file存在,則從上次傳輸中斷處繼續(xù)傳輸

size?file-name

顯示遠(yuǎn)程主機(jī)文件大小

system

顯示遠(yuǎn)程主機(jī)的操作系統(tǒng)類型

(4)使用實(shí)例。

首先,在本例中使用ftp命令訪問“ftp://study.byr.edu.cn”站點(diǎn)。

[root@localhost?~]#?ftp?study.byr.edu.cn

Connected?to?study.byr.edu.cn.

220?Microsoft?FTP?Service

500?'AUTH?GSSAPI':?command?not?understood

500?'AUTH?KERBEROS_V4':?command?not?understood

KERBEROS_V4?rejected?as?an?authentication?type

Name?(study.byr.edu.cn:root):?anonymous

331?Anonymous?access?allowed,?send?identity?(e-mail?name)?as?password.

Password:

230?Anonymous?user?logged?in.

Remote?system?type?is?Windows_NT.

注意

由于該站點(diǎn)可以匿名訪問,因此,在用戶名處輸入anonymous,在Password處輸入任意一個(gè)e-mail地址即可登錄成功。

ftp>?dir

227?Entering?Passive?Mode?(211,68,71,83,11,94).

125?Data?connection?already?open;?Transfer?starting.

11-20-05??05:00PM???????<DIR>??????????Audio

12-04-05??09:41PM???????<DIR>??????????BUPT_NET_Material

01-07-06??01:38PM???????<DIR>??????????Document

11-22-05??03:47PM???????<DIR>??????????Incoming

01-04-06??11:09AM???????<DIR>??????????Material

226?Transfer?complete.

以上使用ftp內(nèi)部命令dir列出了在該目錄下文件及目錄的信息。

ftp>?cd?/Document/Wrox/Wrox.Beginning.SQL.Feb.2005.eBook-DDU

250?CWD?command?successful.

ftp>?pwd

257?"/Document/Wrox/Wrox.Beginning.SQL.Feb.2005.eBook-DDU"?is?current?directory.

以上實(shí)例通過cd命令進(jìn)入相應(yīng)的目錄,可通過pwd命令進(jìn)行驗(yàn)證。

ftp>?lcd?/root/workplace

Local?directory?now?/root/workplace

ftp>?get?d-wbsq01.zip

local:?d-wbsq01.zip?remote:?d-wbsq01.zip

200?PORT?command?successful.

150?Opening?ASCII?mode?data?connection?for?d-wbsq01.zip(1466768?bytes).

WARNING!?5350?bare?linefeeds?received?in?ASCII?mode

File?may?not?have?transferred?correctly.

226?Transfer?complete.

1466768?bytes?received?in?1.7?seconds?(8.6e+02?Kbytes/s)

接下來通過lcd命令首先改變用戶的本地工作目錄,也就是希望下載或上傳的工作目錄,接著通過get命令進(jìn)行下載文件。由于ftp默認(rèn)使用ASCII模式,因此,若希望改為其他模式如“bin”,直接輸入bin即可,如下所示:

ftp>?bin

200?Type?set?to?I.

ftp>?bye

221

最后用bye命令退出ftp程序。

(5)使用說明

n 若是需要匿名登錄,則在“Name?(**.**.**.**):”處鍵入anonymous,在“Password:”處鍵入自己的E-mail地址即可。

n 若要傳送二進(jìn)制文件,務(wù)必要把模式改為bin。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

華清遠(yuǎn)見(www.farsight.com.cn)是國(guó)內(nèi)領(lǐng)先嵌入師培訓(xùn)機(jī)構(gòu),2004年注冊(cè)于中國(guó)北京海淀高科技園區(qū),除北京總部外,上海、深圳、成都、南京、武漢、西安、廣州均有直營(yíng)分公司。華清遠(yuǎn)見除提供嵌入式相關(guān)的長(zhǎng)期就業(yè)培訓(xùn)、短期高端培訓(xùn)、師資培訓(xùn)及企業(yè)員工內(nèi)訓(xùn)等業(yè)務(wù)外,其下屬研發(fā)中心還負(fù)責(zé)嵌入式、Android及物聯(lián)網(wǎng)方向的教學(xué)實(shí)驗(yàn)平臺(tái)的研發(fā)及培訓(xùn)教材的出版,截止目前為止已公開出版70余本嵌入式/移動(dòng)開發(fā)/物聯(lián)網(wǎng)相關(guān)圖書。企業(yè)理念:專業(yè)始于專注 卓識(shí)源于遠(yuǎn)見。企業(yè)價(jià)值觀:做良心教育、做專業(yè)教育,更要做受人尊敬的職業(yè)教育。