Linux入門剖析_第1頁(yè)
Linux入門剖析_第2頁(yè)
Linux入門剖析_第3頁(yè)
Linux入門剖析_第4頁(yè)
Linux入門剖析_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、一、Liinux簡(jiǎn)介系統(tǒng)啟動(dòng)(開(kāi)機(jī))如果你有一臺(tái)裝有Linux的電腦,加電后系統(tǒng)會(huì)自動(dòng)啟動(dòng),然后提示你登錄系統(tǒng),只有登錄后才能進(jìn)行其他操作。登錄Linux第一次使用Linux,會(huì)看到登錄的提示,如下所示:login:登錄步驟:登錄Linux必須有用戶名(用戶ID)和密碼,如果沒(méi)有,可以向管理員所要。在登錄提示處輸入用戶名并回車;用戶名是區(qū)分大小寫的,輸入時(shí)要注意。然后會(huì)提示你輸入密碼,密碼也是區(qū)分大小寫的。如果用戶名和密碼正確,那么會(huì)成功登錄,并看到上次登錄信息。login:amroodamrood'spassword:Lastlogin:SunJun1409:32:322009fro

2、m3$登錄后會(huì)出現(xiàn)命令提示符($),你可以輸入任何命令。下面通過(guò)cal命令來(lái)查看日歷:$calJune2009SuMoTuWeThFrSa1234567891011121321222324252627282930$修改密碼Linux系統(tǒng)通過(guò)密碼來(lái)保證數(shù)據(jù)和文件的安全,防止黑客破解和攻擊。你可以通過(guò)以下方法來(lái)修改密碼:輸入password命令。輸入你現(xiàn)在使用的密碼。輸入新密碼。注意密碼不要過(guò)于簡(jiǎn)單,簡(jiǎn)單的密碼往往會(huì)為入侵者大開(kāi)便利之門。確認(rèn)密碼,再輸入一遍剛才的密碼。$passwdChangingpasswordforamrood(current)Linuxpassword

3、:*NewLinuxpassword:*RetypenewLinuxpassword:*passwd:allauthenticationtokensupdatedsuccessfully$注意:輸入的密碼是看不到的,只會(huì)看到一個(gè)占位符(*)。查看目錄和文件在Linux中,所有的數(shù)據(jù)都被保存在文件中,所有的文件又被分配到不同的目錄;目錄是種類似樹(shù)的結(jié)構(gòu),稱為文件系統(tǒng)。你可以使用ls命令來(lái)查看當(dāng)前目錄下的文件和目錄。下面的例子,使用了ls命令的-1選項(xiàng):$1s-1total19621drwxrwxr-x2amroodamrood4096Dec2509:59uml- rw-rw-r-1amrooda

4、mrood5341Dec2508:38uml.jpgdrwxr-xr-x2amroodamrood4096Feb152006univdrwxr-xr-x2rootroot4096Dec92007urlspedia- rw-r-r-1rootroot276480Dec92007urlspedia.tardrwxr-xr-x8rootroot4096Nov252007usr- rwxr-xr-x1rootroot3192Nov252007webthumb.php- rw-rw-r-1amroodamrood20480Nov252007webthumb.tar- rw-rw-r-1amroodamr

5、ood5654Aug92007yourfile.mid- rw-rw-r-1amroodamrood166255Aug92007yourfile.swf$注意:以d*開(kāi)頭的為目錄,如uml、univ、urlspedia等;其他的都是文件。Ls-ltr按照時(shí)間的倒敘排列查看當(dāng)前用戶信息登錄系統(tǒng)后,如果你希望知道自己的用戶名(用戶ID),可以使用whoami命令:$whoamiamrood$如果你希望了解更多關(guān)于當(dāng)前用戶的信息,可以使用whoami命令,讀者可以自己嘗試一下。查看當(dāng)前在線用戶users、who 和 w如果你希望知道當(dāng)前在線的用戶(同時(shí)登錄到系統(tǒng)的用戶),可以使用命令:$usersa

6、mroodbabluqadir$whoamroodttyp0Oct814:10(limbo)babluttyp2Oct409:08(calliope)qadirttyp4Oct812:09(dent)$w命令可以看到在線用戶的更多信息,讀者可以自己嘗試。退出登錄完成工作后,你需要退出系統(tǒng),防止他人使用你的賬戶。使用logout命令即可退出登錄,系統(tǒng)會(huì)清理有關(guān)信息并斷開(kāi)連接。關(guān)閉系統(tǒng)(關(guān)機(jī))關(guān)閉Linux系統(tǒng)可以使用下列命令:命令說(shuō)明halt直接關(guān)閉系統(tǒng)init0使用預(yù)先定義的腳本關(guān)閉系統(tǒng),關(guān)閉前可以清埋和更新有關(guān)缶息init6重新啟動(dòng)系統(tǒng)poweroff通過(guò)斷電來(lái)關(guān)閉系統(tǒng)reboot重新啟動(dòng)系

7、統(tǒng)shutdown安全關(guān)閉系統(tǒng)注意:一般情況下只有超級(jí)用戶和root用戶(Linux系統(tǒng)中的最高特權(quán)用戶)才有關(guān)閉系統(tǒng)的權(quán)限,但是給普通用戶賦予相應(yīng)權(quán)限也可以關(guān)閉系統(tǒng)。二、Linux文件管理Linux中的所有數(shù)據(jù)都被保存在文件中,所有的文件被分配到不同的目錄。目錄是一種類似于樹(shù)的結(jié)構(gòu),稱為文件系統(tǒng)。當(dāng)你使用Linux時(shí),大部分時(shí)間都會(huì)和文件打交道,通過(guò)本節(jié)可以了解基本的文件操作,如創(chuàng)建文件、刪除文件、復(fù)制文件、重命名文件以及為文件創(chuàng)建鏈接等。在Linux中,有三種基本的文件類型:1)普通文件普通文件是以字節(jié)為單位的數(shù)據(jù)流,包括文本文件、源碼文件、可執(zhí)行文件等。文本和二進(jìn)制對(duì)Linux來(lái)說(shuō)并無(wú)區(qū)

8、別,對(duì)普通文件的解釋由處理該文件的應(yīng)用程序進(jìn)行。2)目錄目錄可以包含普通文件和特殊文件,目錄相當(dāng)于Windows和MacOS中的文件夾。3)設(shè)備文件有些教程中稱特殊文件,是一個(gè)含義。Linux與外部設(shè)備(例如光驅(qū),打印機(jī),終端,modern等)是通過(guò)一種被稱為設(shè)備文件的文件來(lái)進(jìn)行通信。Linux輸入輸出到外部設(shè)備的方式和輸入輸出到一個(gè)文件的方式是相同的。Linux和一個(gè)外部設(shè)備通訊之前,這個(gè)設(shè)備必須首先要有一個(gè)設(shè)備文件存在。例如,每一個(gè)終端都有自己的設(shè)備文件來(lái)供Linux寫數(shù)據(jù)(出現(xiàn)在終端屏幕上)和讀取數(shù)據(jù)(用戶通過(guò)鍵盤輸入)。設(shè)備文件和普通文件不一樣,設(shè)備文件中并不包含任何數(shù)據(jù)。設(shè)備文件有兩

9、種類型:字符設(shè)備文件和塊設(shè)備文件。字符設(shè)備文件以字母"c"開(kāi)頭。字符設(shè)備文件向設(shè)備傳送數(shù)據(jù)時(shí),一次傳送一個(gè)字符。典型的通過(guò)字符傳送數(shù)據(jù)的設(shè)備有終端、打印機(jī)、繪圖儀、modern等。字符設(shè)備文件有時(shí)也被稱為"raw"設(shè)備文件。塊設(shè)備文件以字母"b"開(kāi)頭。塊設(shè)備文件向設(shè)備傳送數(shù)據(jù)時(shí),先從內(nèi)存中的buffer中讀或?qū)憯?shù)據(jù),而不是直接傳送數(shù)據(jù)到物理磁盤。磁盤和CD-ROMS既可以使用字符設(shè)備文件也可以使用塊設(shè)備文件。查看文件查看當(dāng)前目錄下的文件和目錄可以使用ls命令,例如:$lsbinhostslibres.03ch07hw1pubtest_

10、resultsch07.bakhw2res.01usersdocshw3res.02work通過(guò)ls命令的-l選項(xiàng),你可以獲取更多文件信息,例如:$ls-ltotal1962188drwxrwxr-x2amroodamrood4096Dec2509:59uml- rw-rw-r-1amroodamrood5341Dec2508:38uml.jpgdrwxr-xr-x2amroodamrood4096Feb152006univdrwxr-xr-x2rootroot4096Dec92007urlspedia- rw-r-r-1rootroot276480Dec92007urlspedia.tard

11、rwxr-xr-x8rootroot4096Nov252007usrdrwxr-xr-x22003004096Nov252007webthumb-1.01- rwxr-xr-x1rootroot3192Nov252007webthumb.php- rw-rw-r-1amroodamrood20480Nov252007webthumb.tar- rw-rw-r-1amroodamrood5654Aug92007yourfile.mid- rw-rw-r-1amroodamrood166255Aug92007yourfile.swfdrwxr-xr-x11amroodamrood4096May29

12、2007zlib-1.2.3$每一列的含義如下:第一列:文件類型。第二列:表示文件個(gè)數(shù)。如果是文件,那么就是1;如果是目錄,那么就是該目錄中文件的數(shù)目。第三列:文件的所有者,即文件的創(chuàng)建者。第四列:文件所有者所在的用戶組。在Linux中,每個(gè)用戶都隸屬于一個(gè)用戶組。第五列:文件大小(以字節(jié)計(jì))。第六列:文件被創(chuàng)建或上次被修改的時(shí)間。第七列:文件名或目錄名。注意:每一個(gè)目錄都有一個(gè)指向它本身的子目錄"."和指向它上級(jí)目錄的子目錄".",所以對(duì)于一個(gè)空目錄,第二列應(yīng)該為2。通過(guò)ls-l列出的文件,每一行都是以a、d、-或l開(kāi)頭,這些字符表示文件類型:前綴描述

13、- 普通文件。如文本文件、二進(jìn)制可執(zhí)行文件、源代碼等。b塊設(shè)備文件。硬盤可以使用塊設(shè)備文件。c字符設(shè)備文件。硬盤也可以使用字符設(shè)備文件。d目錄文件。目錄可以包含文件和其他目錄。l符號(hào)鏈接(軟鏈接)??梢枣溄尤魏纹胀ㄎ募愃朴赪indows中的快捷方式。p具名管道。管道是進(jìn)程間的一種通信機(jī)制。s用于進(jìn)程間通信的套接字。提示:通俗的講軟連接就是windows的快捷方式,原來(lái)文件刪了,快捷方式雖然在但是不起作用了。元字符元字符是具有特殊含義的字符。*和?都是元字符:*可以匹配0個(gè)或多個(gè)任意字符;?匹配一個(gè)字符。例如$lsch*.doc可以顯示所有以ch開(kāi)頭,以.doc結(jié)尾的文件:ch01-1.do

14、cch010.docch02.docch03-2.docch04-1.docch040.docch05.docch06-2.docch01-2.docch02-1.docc這里,*匹配任意一個(gè)字符。如果你希望顯示所有以.doc結(jié)尾的文件,可以使用$ls*.doc。隱藏文件隱藏文件的第一個(gè)字符為英文句號(hào)或點(diǎn)號(hào)(.),Linux程序(包括Shell)通常使用隱藏文件來(lái)保存配置信息。下面是一些常見(jiàn)的隱藏文件:.profile:Bourneshell(sh)初始化腳本.kshrc:Kornshell(ksh)初始化腳本.cshrc:Cshell(csh)初始化腳本.rhosts:Remoteshell

15、(rsh)配置文件查看隱藏文件需要使用ls命令的-a選項(xiàng):$filedocslibtest_results.rhostshostspubusers.emacsbinhw1res.01work.exrcch07hw2res.02.kshrcch07.bak$hw3res.03一個(gè)點(diǎn)號(hào)(.)表示當(dāng)前目錄,兩個(gè)點(diǎn)號(hào)(.)表示上級(jí)目錄注意:輸入密碼時(shí),星號(hào)(*)作為占位符,代表你輸入的字符個(gè)數(shù)。創(chuàng)建文件在Linux中,可以使用vi編輯器創(chuàng)建一個(gè)文本文件,例如:$vifilename上面的命令會(huì)創(chuàng)建文件filename并打開(kāi),按下i鍵即可進(jìn)入編輯模式,你可以向文件中寫入內(nèi)容。例如:Thi

16、sisLinuxfile.IcreateditforthefirsttimeI'mgoingtosavethiscontentinthisfile.完成編輯后,可以按esc鍵退出編輯模式,也可以按組合鍵Shift+ZZ完全退出文件。這樣,就完成了文件的創(chuàng)建。$vifilename$編輯文件vi編輯器可以用來(lái)編輯文件。由于篇幅限制,這里僅作簡(jiǎn)單介紹,將在后面章節(jié)進(jìn)行詳細(xì)講解。如下可以打開(kāi)一個(gè)名為filename的文件:$vifilename當(dāng)文件被打開(kāi)后,可以按i鍵進(jìn)入編輯模式,按照自己的方式編輯文件。如果想移動(dòng)光標(biāo),必須先按esc鍵退出編輯模式,然后使用下面的按鍵在文件內(nèi)移動(dòng)光標(biāo):l鍵

17、向右移動(dòng)h鍵向左移動(dòng)k鍵向上移動(dòng)j鍵向下移動(dòng)使用上面的按鍵,可以將光標(biāo)快速定位到你想編輯的地方。定位好光標(biāo)后,按i鍵再次進(jìn)入編輯模式。編輯完成后按esc鍵退出編輯模式或者按組合鍵Shift+ZZ退出當(dāng)前文件。查看文件內(nèi)容可以使用cat命令來(lái)查看文件內(nèi)容,下面是一個(gè)簡(jiǎn)單的例子:$catfilenameThisisLinuxfile.Icreateditforthefirsttime.I'mgoingtosavethiscontentinthisfile.$可以通過(guò)cat命令的-b選項(xiàng)來(lái)顯示行號(hào),例如:$cat-bfilename1 ThisisLinuxfile.Icreateditfo

18、rthefirsttime.2 I'mgoingtosavethiscontentinthisfile.$統(tǒng)計(jì)單詞數(shù)目可以使用wc命令來(lái)統(tǒng)計(jì)當(dāng)前文件的行數(shù)、單詞數(shù)和字符數(shù),下面是一個(gè)簡(jiǎn)單的例子:$wcfilename219103filename$每一列的含義如下:第一列:文件的總行數(shù)第二列:?jiǎn)卧~數(shù)目第三列:文件的字節(jié)數(shù),即文件的大小第四列:文件名也可以一次查看多個(gè)文件的內(nèi)容,例如:$wcfilenamelfilename2filename3復(fù)制文件可以使用cp命令來(lái)復(fù)制文件。cp命令的基本語(yǔ)法如下:$cpsource_filedestination_file下面的例子將會(huì)復(fù)制filen

19、ame文件:$cpfilenamecopyfile(在當(dāng)前目錄下復(fù)制filename,復(fù)制后的名字是copyfile$現(xiàn)在在當(dāng)前目錄中會(huì)多出一個(gè)和filename一模一樣的copyfile文件。重命名文件重命名文件可以使用mv命令,語(yǔ)法為:$mvoldfilenewfile卜面的例子將會(huì)把filename文件重命名為newfile:$mvfilenamenewfile現(xiàn)在在當(dāng)前目錄下,只有一個(gè)newfile 文件。mv命令其實(shí)是一個(gè)移動(dòng)文件的命令,不但可以更改文件的路徑,也可以更改文件名。刪除文件rm命令可以刪除文件,語(yǔ)法為:-i選項(xiàng)來(lái)使$rmfilename注意:刪除文件是一種危險(xiǎn)的行為,因

20、為文件內(nèi)可能包含有用信息,建議結(jié)合用rm命令。卜面的例子會(huì)徹底刪除一個(gè)文件:$rmfilename$你也可以一次刪除多個(gè)文件:$rmfilenamelfilename2filename3$三、標(biāo)準(zhǔn)的Linux流般情況下,每個(gè)Linux程序運(yùn)行時(shí)都會(huì)創(chuàng)建三個(gè)文件流(三個(gè)文件)標(biāo)準(zhǔn)輸入流(stdin):stdin的文件描述符為0,Linux程序默認(rèn)從stdin讀取數(shù)據(jù)。標(biāo)準(zhǔn)輸出流(stdout):stdout的文件描述符為1,Linux程序默認(rèn)向stdout輸出數(shù)據(jù)。標(biāo)準(zhǔn)錯(cuò)誤流(stderr):stderr的文件描述符為2,Linux程序會(huì)向stderr流中寫入錯(cuò)誤信息。linux目錄目錄也是一個(gè)

21、文件,它的唯一功能是用來(lái)保存文件及其相關(guān)信息。所有的文件,包括普通文件、設(shè)備文件和目錄文件,都會(huì)被保存到目錄中。主目錄登錄后,你所在的位置就是你的主目錄(或登錄目錄),接下來(lái)你主要是在這個(gè)目錄下進(jìn)行操作,如創(chuàng)建文件、刪除文件等。使用下面的命令可以隨時(shí)進(jìn)入主目錄:$cd$這里就表示主目錄。如果你希望進(jìn)入其他用戶的主目錄,可以使用下面的命令:$cdusername$返回進(jìn)入當(dāng)前目錄前所在的目錄可以使用下面的命令:$cd-$絕對(duì)路徑和相對(duì)路徑卜面;文件在層次舉例如下:Linux的目錄有清晰的層次結(jié)構(gòu),/代表根目錄,所有的目錄都位于/結(jié)構(gòu)中的位置可以用路徑來(lái)表示。如果一個(gè)路徑以/開(kāi)頭,就稱為絕對(duì)路徑;

22、它表示當(dāng)前文件與根目錄的關(guān)系。/etc/passwd/users/sjones/chem/notes/dev/rdsk/Os3不以/開(kāi)頭的路徑稱為相對(duì)路徑,它表示文件與當(dāng)前目錄的關(guān)系。例如:chem/notespersonal/res獲取當(dāng)前所在的目錄可以使用pwd命令:$pwd/user0/home/amrood$查看目錄中的文件可以使用ls命令:$lsdirname下面的例子將遍歷/usr/local目錄下的文件:$ls/usr/localX11bingimpjikessbinacedocincludelibshareatalketcinfomanami創(chuàng)建目錄可以使用mkdir命令來(lái)創(chuàng)建

23、目錄,語(yǔ)法為:$mkdirdirnamedirname可以為絕對(duì)路徑,也可以為相對(duì)路徑。例如$mkdirmydir$會(huì)在當(dāng)前目錄下創(chuàng)建mydir目錄。又如$mkdir/tmp/test-dir$會(huì)在/tmp目錄下創(chuàng)建test-dir目錄。mkdir成功創(chuàng)建目錄后不會(huì)輸出任何信息。也可以使用mkdir命令同時(shí)創(chuàng)建多個(gè)目錄,例如$mkdirdocspub$會(huì)在當(dāng)前目錄下創(chuàng)建docs和pub兩個(gè)目錄。創(chuàng)建父目錄使用mkdir命令創(chuàng)建目錄時(shí),如果上級(jí)目錄不存在,就會(huì)報(bào)錯(cuò)。下面的例子中,mkdir會(huì)輸出錯(cuò)誤信息:$mkdir/tmp/amrood/testmkdir:Failedtomakedirect

24、ory"/tmp/amrood/test"Nosuchfileordirectory$為mkdir命令增加-p選項(xiàng),可以一級(jí)一級(jí)創(chuàng)建所需要的目錄,即使上級(jí)目錄不存在也不會(huì)報(bào)錯(cuò)。例如$mkdir-p/tmp/amrood/test$會(huì)創(chuàng)建所有不存在的上級(jí)目錄。刪除目錄可以使用rmdir命令來(lái)刪除目錄,例如:$rmdirdirname$注意:刪除目錄時(shí)請(qǐng)確保目錄為空,不會(huì)包含其他文件或目錄。也可以使用rmdir命令同時(shí)刪除多個(gè)目錄:$rmdirdirnameldirname2dirname3$如果dirnamel、dirname2、dirname3為空,就會(huì)被刪除。rmdir成

25、功刪除目錄后不會(huì)輸出任何信息。改變所在目錄可以使用cd命令來(lái)改變當(dāng)前所在目錄,進(jìn)入任何有權(quán)限的目錄,語(yǔ)法為:$cddirnamedirname為路徑,可以為相對(duì)路徑,也可以為絕對(duì)路徑。例如$cd/usr/local/bin可以進(jìn)入/usr/local/bin目錄??梢允褂孟鄬?duì)路徑從這個(gè)目錄進(jìn)入/usr/home/amrood目錄:$cd././home/amrood$重命名目錄mv(move)命令也可以用來(lái)重命名目錄,語(yǔ)法為:$mvolddirnewdir卜面的例子將會(huì)把mydir目錄重命名為yourdir目錄:$mvmydiryourdir$點(diǎn)號(hào)(.)一個(gè)點(diǎn)號(hào)(.)表示當(dāng)前目錄,兩個(gè)點(diǎn)號(hào)(.

26、)表示上級(jí)目錄(父目錄)ls命令的-a選項(xiàng)可以查看所有文件,包括隱藏文件;-1選項(xiàng)可以查看文件的所有信息,共有7列。例如:$1s-ladrwxrwxr-x4teacherclass2048Jul1617.56.drwxr-xr-x60root1536Jul1314:18.1teacherclass4210May108:27.profile-rwxr-xr-x1teacherclass1948May1213:42memo$四、Linux文件權(quán)限和訪問(wèn)模式為了更加安全的存儲(chǔ)文件,Linux為不同的文件賦予了不同的權(quán)限,每個(gè)文件都擁有下面三種權(quán)限:所有者權(quán)限:文件所有者能夠進(jìn)行的操作組權(quán)限:文件所屬

27、用戶組能夠進(jìn)行的操作外部權(quán)限(其他權(quán)限):其他用戶可以進(jìn)行的操作。查看文件權(quán)限使用ls-l命令可以查看與文件權(quán)限相關(guān)的信息:$ls-l/home/amrood-rwxr-xr-1amroodusers1024Nov200:10myfiledrwxr-xr-1amroodusers1024Nov200:10mydir第一列就包含了文件或目錄的權(quán)限。第一列的字符可以分為三組,每一組有三個(gè),每個(gè)字符都代表不同的權(quán)限,分別為讀取(r)、寫入(w)和執(zhí)行(x):第一組字符(2-4)表示文件所有者的權(quán)限,-rwxr-xr-表示所有者擁有讀?。╮)、寫入(w)和執(zhí)行(x)的權(quán)限。第二組字符(5-7)表示文件

28、所屬用戶組的權(quán)限,-rwxr-xr-表示該組擁有讀?。╮)和執(zhí)行(x)的權(quán)限,但沒(méi)有寫入權(quán)限。第三組字符(8-10)表示所有其他用戶的權(quán)限,rwxr-xr-表示其他用戶只能讀?。╮)文件。文件訪問(wèn)模式文件權(quán)限是Linux系統(tǒng)的第一道安全防線,基本的權(quán)限有讀?。╮)、寫入(w)和執(zhí)行(x):讀?。河脩裟軌蜃x取文件信息,查看文件內(nèi)容。寫入:用戶可以編輯文件,可以向文件寫入內(nèi)容,也可以刪除文件內(nèi)容。執(zhí)行:用戶可以將文件作為程序來(lái)運(yùn)行。目錄訪問(wèn)模式目錄的訪問(wèn)模式和文件類似,但是稍有不同:讀?。河脩艨梢圆榭茨夸浿械奈募懭耄河脩艨梢栽诋?dāng)前目錄中刪除文件或創(chuàng)建文件執(zhí)行:執(zhí)行權(quán)限賦予用戶遍歷目錄的權(quán)利,例如

29、執(zhí)行cd和ls命令。改變權(quán)限可以使用chmod(changemode)命令來(lái)改變文件或目錄的訪問(wèn)權(quán)限,權(quán)限可以使用符號(hào)或數(shù)字來(lái)表示。使用符號(hào)表示權(quán)限對(duì)于初學(xué)者來(lái)說(shuō)最簡(jiǎn)單的就是使用符號(hào)來(lái)改變文件或目錄的權(quán)限,你可以增加(+)和刪除(-)權(quán)限,也可以指定特定權(quán)限。符號(hào)說(shuō)明+為文件或目錄增加權(quán)限-刪除文件或目錄的權(quán)限=設(shè)置指定的權(quán)限下面的例子將會(huì)修改tesfile文件的權(quán)限:$ls-ltestfile-rwxrwxr-1amroodusers1024Nov200:10testfile$chmodo+wxtestfile$ls-ltestfile-rwxrwxrwx1amroodusers1024No

30、v200:10testfile$chmodu-xtestfile$ls-ltestfile-rw-rwxrwx1amroodusers1024Nov200:10testfile$chmodg=rxtestfile$ls-ltestfile-rw-r-xrwx1amroodusers1024Nov200:10testfile也可以同時(shí)使用多個(gè)符號(hào):$chmodo+wx,u-x,g=rxtestfile$ls-ltestfile-rw-r-xrwx1amroodusers1024Nov200:10testfile使用數(shù)字表示權(quán)限除了符號(hào),也可以使用八進(jìn)制數(shù)字來(lái)指定具體權(quán)限,如下表所示:數(shù)字說(shuō)明權(quán)限

31、0沒(méi)有任何權(quán)限-1 執(zhí)行權(quán)限-x2 寫入權(quán)限-w-3 執(zhí)行權(quán)限和寫入權(quán)限:1(執(zhí)行)+2(寫入)=3-wx4 讀取權(quán)限r(nóng)-5 讀取和執(zhí)彳T權(quán)限:4(讀取)+1(執(zhí)行)=5r-x6 讀取和寫入權(quán)限:4(讀?。?2(寫入)=6rw-7 所有權(quán)限:4(讀取)+2(寫入)+1(執(zhí)行)=7rwx下面的例子,首先使用ls-1命令查看testfile文件的權(quán)限,然后使用chmod命令更改權(quán)限:$ls-ltestfile-rwxrwxr-1amroodusers1024Nov200:10testfile$chmod755testfile$ls-ltestfile-rwxr-xr-x1amroodusers10

32、24Nov200:10testfile$chmod743testfile$ls-ltestfile-rwxr-wx1amroodusers1024Nov200:10testfile$chmod043testfile$ls-ltestfile-r-wx1amroodusers1024Nov200:10testfile更改所有者和用戶組在Linux中,每添加一個(gè)新用戶,就會(huì)為它分配一個(gè)用戶ID和群組ID,上面提到的文件權(quán)限也是基于用戶和群組來(lái)分配的。有兩個(gè)命令可以改變文件的所有者或群組:chown:chown命令是"changeowner"的縮寫,用來(lái)改變文件的所有者。chgr

33、p:chgrp命令是"changegroup"的縮寫,用來(lái)改變文件所在的群組。chown命令用來(lái)更改文件所有者,其語(yǔ)法如下:user可以是用戶名或用戶ID,例如$chownamroodtestfile$將testfile文件的所有者改為amrood。注意:超級(jí)用戶root可以不受限制的更改文件的所有者和用戶組,但是普通用戶只能更改所有者是自己的文件或目錄。chgrp命令用來(lái)改變文件所屬群組,其語(yǔ)法為:$chgrpgroupfilelistgroup可以是群組名或群組ID,例如$chgrpspecialtestfile$將文件testfile的群組改為special。SUID

34、和SGID位在Linux中,一些程序需要特殊權(quán)限才能完成用戶指定的操作。例如,用戶的密碼保存在/etc/shadow文件中,出于安全考慮,一般用戶沒(méi)有讀取和寫入的權(quán)限。但是當(dāng)我們使用passwd命令來(lái)更改密碼時(shí),需要對(duì)/etc/shadow文件有寫入權(quán)限。這就意味著,passwd程序必須要給我們一些特殊權(quán)限,才可以向/etc/shadow文件寫入內(nèi)容。Linux通過(guò)給程序設(shè)置SUID(SetUserID)和SGID(SetGroupID)位來(lái)賦予普通用戶特殊權(quán)限。當(dāng)我們運(yùn)行一個(gè)帶有SUID位的程序時(shí),就會(huì)繼承該程序所有者的權(quán)限;如果程序不帶SUID位,則會(huì)根據(jù)程序使用者的權(quán)限來(lái)運(yùn)行。SGID也

35、是一樣。一般情況下程序會(huì)根據(jù)你的組權(quán)限來(lái)運(yùn)行,但是給程序設(shè)置SGID后,就會(huì)根據(jù)程序所在組的組權(quán)限運(yùn)行。如果程序設(shè)置了SUID位,就會(huì)在表示文件所有者可執(zhí)行權(quán)限的位置上出現(xiàn)s'字母;同樣,如果設(shè)置了SGID,就會(huì)在表示文件群組可執(zhí)行權(quán)限的位置上出現(xiàn)s'字母。如下所示:$ls-l/usr/bin/passwd-r-sr-xr-x1rootbin19031Feb713:47/usr/bin/passwd*$上面第一列第四個(gè)字符不是x'或'-',而是's',說(shuō)明/usr/bin/passwd文件設(shè)置了SUID位,這時(shí)普通用戶會(huì)以root用戶的權(quán)

36、限來(lái)執(zhí)行passwd程序。注意:小寫字母's'說(shuō)明文件所有者有執(zhí)行權(quán)限(x),大寫字母'S'說(shuō)明程序所有者沒(méi)有執(zhí)行權(quán)限(x)。如果在表示群組權(quán)限的位置上出現(xiàn)SGID位,那么也僅有三類用戶可以刪除該目錄下的文件:目錄所有者、文件所有者、超級(jí)用戶root。為一個(gè)目錄設(shè)置SUID和SGID位可以使用下面的命令:$chmodug+sdirname$Is-ldrwsr-sr-x2rootroot4096Jun1906:45dirname$五、Linux環(huán)境變量在Linux中,環(huán)境變量是一個(gè)很重要的概念。環(huán)境變量可以由系統(tǒng)、用戶、Shell以及其他程序來(lái)設(shè)定。變量就是一個(gè)可

37、以被賦值的字符串,賦值范圍包括數(shù)字、文本、文件名、設(shè)備以及其他類型的數(shù)據(jù)。下面的例子,我們將為變量TEST賦值,然后使用echo命令輸出:$TEST="LinuxProgramming"$echo$TESTLinuxProgramming注意:變量賦值時(shí)前面不能加$符號(hào),變量輸出時(shí)必須要加$前綴。退出Shell時(shí),變量將消失。登錄系統(tǒng)后,Shell會(huì)有一個(gè)初始化的過(guò)程,用來(lái)設(shè)置環(huán)境變量。這個(gè)階段,Shell會(huì)讀取/etc/profile和.profile兩個(gè)文件,過(guò)程如下:Shell首先檢查/etc/profile文件是否存在,如果存在,就讀取內(nèi)容,否則就跳過(guò),但是不會(huì)報(bào)錯(cuò)

38、。然后檢查你的主目錄(登錄目錄)中是否存在.profile文件,如果存在,就讀取內(nèi)容,否則就跳過(guò),也不會(huì)報(bào)錯(cuò)。讀取完上面兩個(gè)文件,Shell就會(huì)出現(xiàn)$命令提示符:$出現(xiàn)這個(gè)提示符,就可以輸入命令并調(diào)用相應(yīng)的程序了。注意:上面是BourneShell的初始化過(guò)程,bash和ksh在初始化過(guò)程中還會(huì)檢查其他文件。.profile文件/etc/profile文件包含了通用的Shell初始化信息,由Linux管理員維護(hù),一般用戶無(wú)權(quán)修改。但是你可以修改主目錄下的.profile文件,增加一些“私人定制”初始化信息,包括:設(shè)置默認(rèn)終端類型和外觀樣式;設(shè)置Shell命令查找路徑,即PATH變量;設(shè)置命令提

39、示符。找到主目錄下的.profile文件,使用vi編輯器打開(kāi)并查看內(nèi)容。設(shè)置終端類型一般情況下,我們使用的終端是由login或getty程序設(shè)置的,可能會(huì)不符合我們的習(xí)慣。對(duì)于沒(méi)有使用過(guò)的終端,可能會(huì)比較生疏,不習(xí)慣命令的輸出樣式,交互起來(lái)略顯吃力。所以,一般用戶會(huì)將終端設(shè)置成下面的類型:$TERM=vt100$vt100是virtualterminate100的縮寫。虛擬終端是一種假的終端,真正有自己的顯示器和鍵盤的終端,會(huì)通過(guò)特殊電纜(如串口)連到計(jì)算機(jī)主機(jī)。vt100是被絕大多數(shù)Linux系統(tǒng)所支持的一種虛擬終端規(guī)范,常用的還有ansi、xterm等。設(shè)置PATH變量在命令提示符下輸入一

40、個(gè)命令時(shí),Shell會(huì)根據(jù)PATH變量來(lái)查找該命令對(duì)應(yīng)的程序,PATH變量指明了這些程序所在的路徑。一般情況下PATH變量的設(shè)置如下:$PATH=/bin:/usr/bin$多個(gè)路徑使用冒號(hào)(:)分隔。如果用戶輸入的命令在PATH設(shè)置的路徑下沒(méi)有找到,就會(huì)報(bào)錯(cuò),例如:$hellohello:notfound$PS1和PS2變量PS1變量用來(lái)保存命令提示符,可以隨意修改,如果你不習(xí)慣使用$作為提示符,也可以改成其他字符。PS1變量被修改后,提示符會(huì)立即改變。例如,把命令提示符設(shè)置成'=>':$PS1='=>'=>=>=>也可以將提示信

41、息設(shè)置成當(dāng)前目錄,例如:=>PS1="uhw$"rootip-72-167-112-17/var/www/tutorialspoint/Linux$rootip-72-167-112-17/var/www/tutorialspoint/Linux$命令提示信息包含了用戶名、主機(jī)名和當(dāng)前目錄。F表中的轉(zhuǎn)義字符可以被用作PS1的參數(shù),豐富命令提示符信息。轉(zhuǎn)義字符描述t當(dāng)前時(shí)間,格式為HH:MM:SSd當(dāng)前日期,格式為WeekdayMonthDaten換行W當(dāng)前所在目錄w當(dāng)前所在目錄的完整路徑u用戶名h主機(jī)名(IP地址)#輸入的命令的個(gè)數(shù),每輸入一個(gè)新的命令就會(huì)加1$如果是

42、超級(jí)用戶root,提示符為#,否則為$。你可以在每次登錄的時(shí)候修改提示符,也可以在.profile文件中增加PS1變量,這樣每次登錄時(shí)會(huì)自動(dòng)修改提示符。如果用戶輸入的命令不完整,Shell還會(huì)使用第二提示符來(lái)等待用戶完成命令的輸入。默認(rèn)的第二命令提示符是,保存在PS2變量,可以隨意修改。下面的例子使用默認(rèn)的第二命令提示符:$echo"thisisa>test"thisisatest$下面的例子通過(guò)PS2變量改變提示符:$PS2="secondaryprompt->”$echo"thisisasecondaryprompt->test&q

43、uot;thisisatest$常用環(huán)境變量卜表列出了部分重要的環(huán)境變量,這些變量可以通過(guò)上面提到的方式修改。變量描述DISPLAY用來(lái)設(shè)置將圖形顯示到何處。HOME當(dāng)前用戶的主目錄。IFS內(nèi)部域分隔符。LANGLANG可以讓系統(tǒng)支持多語(yǔ)言。例如,將LANG設(shè)為pt_BR,則可以支持(巴西)葡萄牙語(yǔ)。PATH指定Shell命令的路徑。PWD當(dāng)前所在目錄,即cd到的目錄。RANDOM生成一個(gè)介于0和32767之間的隨機(jī)數(shù)。TERM設(shè)置終端類型。TZ時(shí)區(qū)??梢允茿ST(大西洋標(biāo)準(zhǔn)時(shí)間)或GMT(格林尼治標(biāo)準(zhǔn)時(shí)間)等。UID以數(shù)字形式表示的當(dāng)前用戶ID,shell啟動(dòng)時(shí)會(huì)被初始化。下面的例子中使用了

44、部分環(huán)境變量:$echo$HOME/root$echo$DISPLAY$echo$TERMxterm$echo$PATH/usr/local/bin:/bin:/usr/bin:/home/amrood/bin:/usr/local/bin$六、Linux打印文件和發(fā)送郵件通過(guò)前面的介紹,相信你對(duì)Linux的命令和特性有了一個(gè)基本的認(rèn)識(shí),本節(jié)將介紹如果打印文件以及發(fā)送郵件。文件打印如果你希望打印文本文件,最好預(yù)先處理一下,包括調(diào)整邊距、設(shè)置行高、設(shè)置標(biāo)題等,這樣打印出來(lái)的文件更加美觀,易于閱讀。當(dāng)然,不處理也可以打印,但是可能會(huì)比較丑陋。大部分的Linux自帶了nroff和troff兩個(gè)強(qiáng)大的

45、文本格式化工具,不過(guò)比較老舊,使用的人很少,有興趣的讀者可以可以自行學(xué)習(xí),本教程不再進(jìn)行深入講解。pr命令pr命令用來(lái)將文本文件轉(zhuǎn)換成適合打印的格式,它可以把較大的文件分割成多個(gè)頁(yè)面進(jìn)行打印,并為每個(gè)頁(yè)面添加標(biāo)題。pr命令的語(yǔ)法如下:proption(s)filename(s)pr命令僅僅改變文件在屏幕上的顯示樣式和打印輸出樣式,并不會(huì)更改文件本身。下表是pr命令的幾個(gè)選項(xiàng):選項(xiàng)說(shuō)明- k分成幾列打印,默認(rèn)為1。- d兩倍行距(并不是所有版本的pr都有效)。- h"header"設(shè)置每個(gè)頁(yè)面的標(biāo)題。- t不打印標(biāo)題和上下邊距。- lPAGE_LENGTH每頁(yè)顯示多少行。默認(rèn)

46、是每個(gè)頁(yè)面一共66行,文本占56行。- oMARGIN每行縮進(jìn)的空格數(shù)。- wPAGE_WIDTH多列輸出時(shí),設(shè)置頁(yè)面寬度,默認(rèn)是72個(gè)字符。例如,food文件包含了很多食品的名字,使用pr命令分成兩列打印,并設(shè)置每頁(yè)的標(biāo)題為"Restaurants”。首先查看文件內(nèi)容:$catfoodSweetToothBangkokWokMandalayAfghaniCuisineIsleofJavaBigAppleDeliSushiandSashimiTioPepe'sPeppers$然后使用pr命令打?。?pr-2-h"Restaurants"foodNov79:

47、581997RestaurantsPage1SweetToothIsleofJavaBangkokWokBigAppleDeliMandalaySushiandSashimiAfghaniCuisineTioPepe'sPeppers$lp和lpr命令lp和lpr命令將文件傳送到打印機(jī)進(jìn)行打印。使用pr命令將文件格式化后就可以使用這兩個(gè)命令來(lái)打印。打印機(jī)一般由系統(tǒng)管理員來(lái)設(shè)置,下面的例子使用默認(rèn)的打印機(jī)打印food文件:$lpfoodrequestidislaserp-525(1file)$命令成功執(zhí)行會(huì)返回一個(gè)表示打印任務(wù)的ID,通過(guò)這個(gè)ID可以取消打印或者查看打印狀態(tài)。如果你希望打

48、印多份文件,可以使用lp的-nNum選項(xiàng),或者lpr命令的-Num選項(xiàng)。Num是一個(gè)數(shù)字,可以隨意設(shè)置。如果系統(tǒng)連接了多臺(tái)打印機(jī),可以使用lp命令的-dprinter選項(xiàng),或者lpr命令的-Pprinter選項(xiàng)來(lái)選擇打印機(jī)。printer為打印機(jī)名稱。lpstat和lpq命令I(lǐng)pstat命令可以查看打印機(jī)的緩存隊(duì)列(有多少個(gè)文件等待打印),包括任務(wù)ID、所有者、文件大小、請(qǐng)求時(shí)間和請(qǐng)求狀態(tài)。提示:等待打印的文件會(huì)被放到打印機(jī)的的緩存隊(duì)列中。例如,使用Ipstat-o命令查看打印機(jī)中所有等待打印的文件,包括你自己的:$lpstat-olaserp-573john128865Nov711:27on

49、laserplaserp-574grace82744Nov711:28laserp-575john23347Nov711:35$Ipstat-o命令按照打印順序輸出隊(duì)列中的文件。lpq命令顯示的信息與Ipstat-o稍有差異:$lpqlaserpisreadyandprintingRankOwnerJobFilesTotalSizeactivejohn573report.ps128865bytes1stgrace574ch03.psch04.ps82744bytes2ndjohn575standardinput23347bytes$第一行為打印機(jī)的狀態(tài)。如果打印機(jī)無(wú)法使用或者紙被用完,將會(huì)輸出

50、其他信息。cancel和lprm命令cancel和lprm分別用來(lái)終止lp和lpr的打印請(qǐng)求。使用這兩個(gè)命令,需要指定ID(由lp或lpq返回)或打印機(jī)名稱。例如,通過(guò)ID取消打印請(qǐng)求:$cancellaserp-575request"laserp-575"cancelled$如果希望取消正在打印的文件,那么可以不指定ID,僅僅指定打印機(jī)名稱即可:$cancellaserprequest"laserp-573"cancelled$lprm命令用來(lái)取消當(dāng)前用戶的正在等待打印的文件,使用任務(wù)號(hào)作為參數(shù)可以取消指定文件,使用橫線(-)作為參數(shù)可以取消所有文件。

51、例如,取消575號(hào)打印任務(wù):$lprm575dfA575diamonddequeuedcfA575diamonddequeued$lprm會(huì)返回被取消的文件名。發(fā)送郵件可以使用mail命令發(fā)送和接收郵件,語(yǔ)法如下:$mail-ssubject-ccc-addr-bbcc-addrto-addr每個(gè)選項(xiàng)的含義如下:選項(xiàng)描述- s郵件標(biāo)題。- c要發(fā)送的用戶,多個(gè)用戶以逗號(hào)(,)分隔。- b需要密件發(fā)送(密送)的用戶,多個(gè)用戶以逗號(hào)(,)分隔。例如,向admin發(fā)送郵件:$mail-s"TestMessage"adminHelloeveryone,thisisLinuxtuto

52、rialandurlisCc:第一行是輸入的命令,-s表示郵件的主題,后面的admin則是郵件的接收人,輸入完這行命令后回車,會(huì)進(jìn)入郵件正文的編寫,你可以輸入任何文字,比如上面的兩行。輸入完郵件正文,需要按CTRL+D結(jié)束輸入,此時(shí)會(huì)提示你輸入Cc地址,即郵件抄送地址,沒(méi)有直接回車就完成了郵件的發(fā)送。也可以通過(guò)重定向操作符<來(lái)發(fā)送文件:$mail-s"Report05/06/07"admin<demo.txt通過(guò)上面的命令,就可以把demol.txt文件的內(nèi)容作為郵件的內(nèi)容發(fā)送給admin了。接收郵件不需要任何參數(shù):$mailnoemail七、Linux管道和過(guò)

53、濾器有時(shí)候,我們可以把兩個(gè)命令連起來(lái)使用,一個(gè)命令的輸出作為另一個(gè)命令的輸入,這就叫做管道。為了建立管道,需要在兩個(gè)命令之間使用豎線(|)連接。管道是Linux進(jìn)程之間一種重要的通信機(jī)制;除了管道,還有共享內(nèi)存、消息隊(duì)列、信號(hào)、套接字(socket)等進(jìn)程通信機(jī)制。管道使用豎線(|)將兩個(gè)命令隔開(kāi),豎線左邊命令的輸出就會(huì)作為豎線右邊命令的輸入。連續(xù)使用豎線表示第一個(gè)命令的輸出會(huì)作為第二個(gè)命令的輸入,第二個(gè)命令的輸出又會(huì)作為第三個(gè)命令的輸入,依此類推。能夠接受數(shù)據(jù),過(guò)濾(處理或篩選)后再輸出的工具,稱為過(guò)濾器。grep命令grep是一個(gè)強(qiáng)大的文本搜索工具,可以使用正則表達(dá)式,并返回匹配的行,語(yǔ)法

54、為:$greppatternfile(s)"grep”源于ed(Linux的一個(gè)行文本編輯器)的g/re/p命令,g/re/p是"globallysearchforaregularexpressionandprintalllinescontainingit"的縮寫,意思是使用正則表達(dá)式進(jìn)行全局檢索,并把匹配的行打印出來(lái)。正則表達(dá)式是一個(gè)包含了若干特殊字符的字符串,每個(gè)字符都有特殊含義,可以用來(lái)匹配文本,更多信息請(qǐng)查看正則表達(dá)式教程grep可以看做是一個(gè)過(guò)濾器,如果沒(méi)有為grep指定要檢索的文件,那么它會(huì)從標(biāo)準(zhǔn)輸入設(shè)備(一般是鍵盤)讀??;其他過(guò)濾器也是如此。grep

55、命令最簡(jiǎn)單的使用就是檢索包含固定字符的文本。例如,在管道中使用grep命令,只允許包含指定字符的行輸出到顯示器:$ls-l|grep"Aug-rw-rw-rw-1johndoc11008Aug614:10ch02-rw-rw-rw-1johndoc8515Aug615:30ch07-rw-rw-r-1johndoc2488Aug1510:51intro-rw-rw-r-1caroldoc1605Aug2307:35macros$grep命令有很多選項(xiàng):選說(shuō)明項(xiàng)反轉(zhuǎn)查詢,輸出不匹配的行。例如,grep-v"test"demo.txt將輸出不包含"test"-v的行。- n輸出匹配的行以及行號(hào)。- 1輸出匹配的行所在的文件名。- c輸出匹配的總行數(shù)。-i不區(qū)分大小寫進(jìn)行匹配。下面我們使用正則表達(dá)式來(lái)匹配這樣的行:包含字符“carol”,然后包含任意數(shù)目(含零個(gè))的其他字符,最后還要包含“Au

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論