第 2 章 Shell命令電子課件_第1頁(yè)
第 2 章 Shell命令電子課件_第2頁(yè)
第 2 章 Shell命令電子課件_第3頁(yè)
第 2 章 Shell命令電子課件_第4頁(yè)
第 2 章 Shell命令電子課件_第5頁(yè)
已閱讀5頁(yè),還剩80頁(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)介

第2章Shell命令內(nèi)容提要Shell命令概述目錄和文件操作用戶和用戶組管理權(quán)限管理進(jìn)程管理輸入/輸出重定向和管道元字符與正則表達(dá)式網(wǎng)絡(luò)基礎(chǔ)2.1Shell命令概述shell命令概述Linux系統(tǒng)可簡(jiǎn)單視作由內(nèi)核、系統(tǒng)工具和應(yīng)用程序等構(gòu)成的集合,它們通常被安裝在磁盤(pán)某分區(qū)建立的文件系統(tǒng)上,盡管源自不同的Linux發(fā)行版,但Linux系統(tǒng)所包含的內(nèi)容和組織結(jié)構(gòu)遵從相同的規(guī)則。根文件系統(tǒng)的目錄結(jié)構(gòu)/binetcdevbootusrmnthomerootzhangsliswwcdromfloppybinsbinincludeliblocalsrcgrubkernelsdasda1ttyxxcdromlscppwdmount根文件系統(tǒng)的目錄結(jié)構(gòu)(續(xù))目錄名內(nèi)容描述/bin普通用戶使用的系統(tǒng)工具/sbin管理員使用的系統(tǒng)工具/bootLinux內(nèi)核映像文件和與引導(dǎo)加載有關(guān)的文件/dev設(shè)備文件,包括字符設(shè)備和塊設(shè)備/etc系統(tǒng)配置文件/lib共享庫(kù)文件,供/bin和/sbin下的文件使用/mnt掛載點(diǎn),常用于掛載文件系統(tǒng)/usr/usr/bin普通用戶使用的應(yīng)用程序/usr/includeC頭文件/usr/lib函數(shù)庫(kù)/usr/src/源代碼目錄/usr/sbin超級(jí)用戶使用的管理程序/proc基于內(nèi)存的文件系統(tǒng),用于顯示內(nèi)核信息/sys基于設(shè)備驅(qū)動(dòng)模型的虛擬文件系統(tǒng)/tmp臨時(shí)文件目錄/var日志信息主目錄和工作目錄Linux系統(tǒng)中的每個(gè)用戶擁有各自的目錄,用于存放專(zhuān)屬的文檔,并通過(guò)工作目錄表達(dá)其在系統(tǒng)中當(dāng)前所處的位置。1.主目錄主目錄為用戶登錄系統(tǒng)時(shí)所處的目錄,,它在創(chuàng)建用戶時(shí)設(shè)定。2.工作目錄工作目錄為用戶當(dāng)前所處的目錄,它可隨時(shí)發(fā)生改變。文件路徑1.絕對(duì)路徑絕對(duì)路徑以根目錄為起點(diǎn),到達(dá)目標(biāo)文件所經(jīng)歷的一系列目錄構(gòu)成的字符串,目錄名之間用/分割。2.相對(duì)路徑相對(duì)路徑以當(dāng)前工作目錄為起點(diǎn),到達(dá)目標(biāo)文件所經(jīng)歷的目錄序列。假設(shè)用戶當(dāng)前工作目錄為/home/zhangs,該目錄下的文件demo.c的路徑可以表示為:/home/zhangs/demo.c//絕對(duì)路徑./demo.c//相對(duì)路徑shell命令的語(yǔ)法結(jié)構(gòu)cmd代表命令的名稱,通常為程序名稱。option表示可選項(xiàng),選項(xiàng)通??山M合使用;list表示命令操作的對(duì)象序列,對(duì)象可為文件、目錄和用戶等,對(duì)象名以空格分割,其數(shù)量取決于具體的命令。選項(xiàng)有短格式和長(zhǎng)格式兩種。短選項(xiàng)格式可表示為-x[xxx],字母x表示某功能,xxx代表可能攜帶的參數(shù),長(zhǎng)選項(xiàng)格式可表示為--word[xxx],word表示某功能的全稱,xxx同樣代表可能攜帶的參數(shù)。命令語(yǔ)法的一般形式cmd[option][list]實(shí)例分析$

ls

-l

/home命令提示符命令字命令選項(xiàng)命令組成部分之間用空格進(jìn)行分隔命令參數(shù)Shell命令的分類(lèi)1.內(nèi)部命令內(nèi)部命令由Shell實(shí)現(xiàn),具有功能簡(jiǎn)潔和使用頻率高的特點(diǎn)。2.外部命令外部命令是指存儲(chǔ)于文件系統(tǒng)中的可執(zhí)文件。實(shí)例分析$typels #顯示為外部命令$typecd #顯示為內(nèi)部命令聯(lián)機(jī)幫助語(yǔ)法man[章節(jié)]term功能獲得對(duì)象term的聯(lián)機(jī)幫助信息,命令的常用選項(xiàng)如下表2-2所示。章節(jié)編號(hào)含義1Shell命令2核心函數(shù)/系統(tǒng)調(diào)用3庫(kù)函數(shù)4設(shè)備文件,位于/dev目錄5文件的格式與內(nèi)容,例如,/etc/passwd6游戲7雜項(xiàng)(包括宏、包和約定等)8系統(tǒng)管理命令9內(nèi)核函數(shù)實(shí)例分析$man1read $man2read 2.2目錄和文件操作目錄操作概述命令功能ls顯示目錄中的文件pwd顯示當(dāng)前工作目錄cd改變當(dāng)前工作目錄mkdir創(chuàng)建目錄rmdir刪除目錄

目錄是一種特殊文件,它由若干目錄項(xiàng)組成,每個(gè)目錄項(xiàng)包含文件名機(jī)器關(guān)聯(lián)的i節(jié)點(diǎn)。每個(gè)目錄均包含兩個(gè)特殊成員”.”和”..”,”.”指向當(dāng)前目錄,”..”指向父目錄。實(shí)例分析$ls-l~/ #瀏覽用戶主目錄$ls-a./ #瀏覽當(dāng)前目錄$ls-iR/usr#瀏覽/usr及其子目錄$pwd #顯示當(dāng)前工作目錄$cdtest #將當(dāng)前工作目錄切換至test$mkdir

mydir #創(chuàng)建目錄mydir$rmdir

mydir #刪除目錄mydir文件操作命令

文件是由若干字節(jié)構(gòu)成的字節(jié)流,在Linux系統(tǒng)中,文件具有廣泛的含義,可將外部設(shè)備、定時(shí)器和事件等抽象為文件。命令功能file顯示指定文件的類(lèi)型touch改變文件的時(shí)間戳cp復(fù)制文件或目錄rm刪除文件或目錄mv移動(dòng)文件或目錄,可用于文件重命名stat顯示文件屬性實(shí)例分析$cpfile1file2#復(fù)制文件$cp-rfdir1dir2#復(fù)制目錄$rmfile1file2#刪除文件$rm-rdir1 #刪除目錄$mvdemotest#將demo文件重命名為test命令功能cat顯示文本文件內(nèi)容more分頁(yè)顯示文本文件內(nèi)容less分頁(yè)顯示文本文件內(nèi)容,可上下翻頁(yè)head顯示文件首部?jī)?nèi)容tail顯示文件尾部?jī)?nèi)容文本文件概述

文本文件是指僅存儲(chǔ)文字編碼的文件,其內(nèi)容沒(méi)有格式。

Linux系統(tǒng)中的配置文件、shell腳本和各種高級(jí)語(yǔ)言的源代碼文件均為文本文件。實(shí)例分析$catdemo.c

#顯示文本文件內(nèi)容$moredemo.c

#分頁(yè)顯示文本文件內(nèi)容鏈接文件1.硬鏈接硬鏈接是指與鏈接的文件共享i節(jié)點(diǎn),為同一文件定義多個(gè)名稱,硬鏈接不能跨越文件系統(tǒng)。2.符號(hào)鏈接符號(hào)鏈接又稱為軟鏈接,其內(nèi)容存儲(chǔ)的是鏈接文件的路徑,它可跨越不同的文件系統(tǒng).實(shí)例分析$lnsfile

dfile #創(chuàng)建硬連接$ln-ssfile

dfile#創(chuàng)建符號(hào)鏈接2.3用戶和用戶組管理用戶管理概述

為有效管理軟硬件資源的使用,Linux繼承了Unix的用戶和用戶組特性。用戶組是由具有某些共同特征的用戶構(gòu)成的集合。一個(gè)用戶可同時(shí)屬于多個(gè)用戶組,其中,一個(gè)為初始組,通常稱為用戶組,其余則稱為附加組。系統(tǒng)為每個(gè)用戶和用戶組設(shè)置唯一標(biāo)識(shí)ID,供內(nèi)核使用。用戶的分類(lèi)1.超級(jí)用戶(root)

超級(jí)用戶也稱為特權(quán)用戶,用于系統(tǒng)管理,可不加限制地使用系統(tǒng)資源,其UID為0,通常在系統(tǒng)安裝是自動(dòng)創(chuàng)建。2.系統(tǒng)用戶系統(tǒng)用戶為受限用戶,為滿足系統(tǒng)進(jìn)程對(duì)文件資源的訪問(wèn)控制而建立,例如bin和lp等,用戶UID一般為1~999。3.普通用戶建立普通戶的目的是為了讓用戶登錄系統(tǒng),使用系統(tǒng)資源,普通用戶也為受限用戶,用戶的UID的值為1000~60000之間。用戶和用戶組的相關(guān)操作命令含義groupadd建一個(gè)新的用groupdel刪除用戶組useradd創(chuàng)建一個(gè)新的用戶Userdel刪除用戶Usermod修改用戶Passwd設(shè)置用戶登錄密碼chown修改文件的歸屬對(duì)用戶和用戶組的操作需要有管理員權(quán)限。相關(guān)文件文件名描述/etc/passwd保存用戶信息/etc/shadow存儲(chǔ)加密后的密碼/etc/group保存用戶組的相關(guān)信息新建用戶組合用戶的信息,存儲(chǔ)在位于/etc目錄的相關(guān)文件中。/etc/passwd文件 structpasswd{ char*pw_name;/.用戶名

char*pw_passwd;//用戶密碼

uid_tpw_uid;//用戶ID gid_tpw_gid;//用戶組ID char*pw_gecos;//用戶信息

char*pw_dir;//主目錄

char*pw_shell;//shell程序

};/etc/shadow文件 structspwd{ char*sp_namp;//登錄用戶名

char*sp_pwdp;//經(jīng)加密的密碼

longsp_lstchg;//最后一次修改時(shí)間

longsp_min;//最小間隔修改時(shí)間

longsp_max;//最大間隔修改時(shí)間

longsp_warn;//密碼過(guò)期前的天數(shù)以警告用戶

longsp_inact;//密碼過(guò)期后直至被禁用的天數(shù)

longsp_expire;//密碼的有效期

};/etc/group文件 structgroup{ char*gr_name;//用戶組名

char*gr_passwd;//用戶組密碼

gid_tgr_gid;//用戶組ID char**gr_mem;//包含的用戶名

};實(shí)例分析$groupaddstudent$groupaddmusic$groupaddFootball$useradd

zhangs-gstudent-Gmusic-md/home/zhangs$useradd

lis-gstudent-GFootball-md/home/lis$passwdzhangs

$passwdlis

2.4文件權(quán)限管理觀察ls–l命令的執(zhí)行結(jié)果zhangsrootrootzhangsstudentrootrootstudent6617877876Oct122:43Oct122:41Oct122:41Oct122:44demo.cexam12-11.cp1.ctest.c->demo.crwxr--r-xrwxr--r-xrwxr--r-xrwxrwxrwx1221---l最近修改日期和時(shí)間文件名文件大小權(quán)限分配引用次數(shù)文件類(lèi)型文件歸屬(用戶和用戶組)在文件系統(tǒng)中,每個(gè)文件由目錄項(xiàng)和i節(jié)點(diǎn)組成,目錄項(xiàng)記錄文件名和i節(jié)點(diǎn)的地址,i節(jié)點(diǎn)記錄文件屬性的元數(shù)據(jù),其中包括文件類(lèi)型、權(quán)限分配、引用次數(shù)和文件的歸屬等。用戶可通過(guò)ls–l命令顯示文件的詳細(xì)信息。

每個(gè)文件一行,其中,每行的第1個(gè)字符標(biāo)識(shí)文件的類(lèi)型,第2個(gè)至第10個(gè)字符表示文件的權(quán)限分配。文件類(lèi)型ls–l命令結(jié)果中每行的第一個(gè)字符表示文件的類(lèi)型前綴類(lèi)型前綴類(lèi)型—普通文件l符號(hào)鏈接文件d目錄p命名管道c字符設(shè)備s本地套接字b塊設(shè)備文件的引用次數(shù)

指向同一i節(jié)點(diǎn)的文件數(shù)量,為該i節(jié)點(diǎn)關(guān)聯(lián)文件的引用次數(shù)。若為某個(gè)文件創(chuàng)建硬鏈接,則文件的引用數(shù)量加1,符號(hào)鏈接不會(huì)增加文件的引用次數(shù)。

由于每個(gè)目錄中均包含當(dāng)前目錄和父目錄,因此,新創(chuàng)空目錄的引用次數(shù)為2.權(quán)限普通文件目錄r(讀)查看文件內(nèi)容瀏覽目錄內(nèi)容w(寫(xiě))修改文件內(nèi)容在目錄中創(chuàng)建/刪除文件/目錄x(執(zhí)行)將文件投入運(yùn)行在目錄中搜索文件rwxrw-r--八進(jìn)制表示

764用戶(u)用戶組(g)其他用戶(o)內(nèi)部表示2.文件權(quán)限的分配1.文件權(quán)限的定義權(quán)限的定義和分配

系統(tǒng)將訪問(wèn)文件的用戶分為三類(lèi),用戶、用戶組和其他用戶。均為他們分配三種權(quán)限,依次為度、寫(xiě)和執(zhí)行。Zhangsstudent

為了滿足某些特殊需求,Linux引入了三位擴(kuò)展權(quán)限,它們分別為SUID、SGID和sticky。

i節(jié)點(diǎn)中的權(quán)限共計(jì)12位,分為四組,它們依次為擴(kuò)展權(quán)限、用戶權(quán)限、用戶組權(quán)限和其他用戶權(quán)限。擴(kuò)展權(quán)限100111110100擴(kuò)展位用戶用戶組其他用戶擴(kuò)展位的定義SUID標(biāo)志

SUID(Set-User-ID)標(biāo)志處于擴(kuò)展權(quán)限中的第1位,八進(jìn)制值為04000,當(dāng)執(zhí)行設(shè)置了SUID位的程序時(shí),進(jìn)程的有效用戶切換至程序的所屬用戶,使進(jìn)程擁有程序所屬用戶的的權(quán)限。2.SGID標(biāo)志

SGID(Set-Group-ID)標(biāo)志處于擴(kuò)展權(quán)限的第2位,八進(jìn)制值為02000,與SUID類(lèi)似,當(dāng)用戶執(zhí)行設(shè)置了SGID位的程序時(shí),進(jìn)程的有效用戶組切換至該程序的所屬用戶組,若某目錄上設(shè)置SGID位,目錄下建立文件或子目錄的所屬用戶組取自該目錄的所屬用戶組。3.Sticky標(biāo)志

Sticky標(biāo)志處于擴(kuò)展權(quán)限中的第3位,八進(jìn)制值為01000,當(dāng)在某個(gè)目錄設(shè)置sticky位時(shí),該目錄下的文件只有其所屬用戶才有權(quán)刪除。擴(kuò)展位的字符表示ls命令未為擴(kuò)展位預(yù)留顯示位置,而是分別共享用戶、用戶組和其他用戶的可執(zhí)行位。SUID/SGIDu.x/g.x顯示00-01X10S(大寫(xiě))11S(小寫(xiě))suido.x顯示00-01X10T(大寫(xiě))11t(小寫(xiě))Suid/sgid分別共享用戶/用戶組的可執(zhí)行位,顯示規(guī)則如下表所示Stickyu共享其他用戶的可執(zhí)行位,字符顯示規(guī)則如下表所示。實(shí)例分析100111101101-rwsr-xr-x1rootroot57972May172017/usr/bin/passwddrwxrwxrwt8rootroot4096Jan2704:25tmp001111111111-rw-r-----1rootshadow1521Jan2500:50/etc/shadow1.passwd命令使普通用戶也可修改自身密碼2./tmp目錄僅允許用戶刪除自己的文件000110109000權(quán)限掩碼

為了提高權(quán)限管理的靈活性,系統(tǒng)引入權(quán)限掩碼,它用三位八進(jìn)制表示,分別對(duì)應(yīng)用戶、用戶組和其他用戶,若某位為1,則響對(duì)應(yīng)的權(quán)限被屏蔽。系統(tǒng)為每個(gè)登錄用戶分配一個(gè)權(quán)限掩碼,在shell上執(zhí)行的進(jìn)程將繼承該掩碼值。用戶可通過(guò)umask命令獲取或重新設(shè)置權(quán)限掩碼。新建文件權(quán)限的計(jì)算新建文件/目錄的進(jìn)程最終會(huì)執(zhí)行核心函數(shù)open/mkdir,它們會(huì)傳遞參數(shù)mode,用以指定權(quán)限,最終新建文件/目錄的權(quán)限還要取決于進(jìn)程的權(quán)限掩碼,計(jì)算公式如下。新建文件/目錄的權(quán)限=mode&~(umask&0777)在默認(rèn)情況下,新建普通文件的默認(rèn)mode值為0666,創(chuàng)建目錄的默認(rèn)mode為0777。假設(shè)新建文件時(shí),mode參數(shù)設(shè)置為0666,用戶權(quán)限掩碼設(shè)置為022新建文件的權(quán)限=0666&~(022&0777)=0644文件權(quán)限的相關(guān)操作命令功能umask查詢/設(shè)置用戶的權(quán)限掩碼chmod修改文件的權(quán)限分配實(shí)例分析$chmoda-xdemo $chmodgo-wdemo $chmod

u+sdemo $chmod764demo $chmod5764demo $chown

zhangstest$chown:studenttest進(jìn)程的身份

進(jìn)程的身份源自登錄系統(tǒng)的用戶,另外還包括用戶所屬的用戶組和附加組。進(jìn)程訪問(wèn)文件時(shí),有時(shí),發(fā)揮作用的未必是登錄用戶,為此,系統(tǒng)引入了實(shí)際用戶/實(shí)際用戶組和有效用戶/有效用戶組,通常實(shí)際用戶/實(shí)際用戶組與有效用戶/有效用戶組相同,但當(dāng)執(zhí)行設(shè)置了SUID/SGID的可執(zhí)行文件時(shí),進(jìn)程的有效用戶/有效用戶組會(huì)發(fā)生改變。

因此,進(jìn)程的身份包括有效用戶、有效用戶組和附加組進(jìn)程訪問(wèn)文件的權(quán)限檢查進(jìn)程訪問(wèn)文件時(shí),內(nèi)核除檢查文件的權(quán)限外,還需檢查路徑上每個(gè)目錄是否擁有可執(zhí)行權(quán),對(duì)于目標(biāo)文件,內(nèi)核按下列檢查次序執(zhí)行,一旦匹配成功,內(nèi)核將停止后續(xù)操作。(1)若進(jìn)程的有效用戶ID為0,表明進(jìn)程為特權(quán)級(jí)進(jìn)程,此時(shí),進(jìn)程獲得文件的所有權(quán)限。(2)若進(jìn)程的有效用戶ID非0,且與文件所屬用戶ID相同,此時(shí),進(jìn)程獲得文件所屬用戶的權(quán)限。(3)若進(jìn)程的有效用戶組ID或某附加組ID與文件所屬用戶組ID相同,則進(jìn)程獲得文件所屬用戶組的權(quán)限。(4)若上述三種情況均不符合,則進(jìn)程獲得文件賦予其他用戶的權(quán)限。綜合實(shí)例分析$

groupadd

B220301$

groupadd

B220302$groupaddproject$useradd

zhangs–gB220301–Gproject–md/project/zhangs$useradd

lis–gB220302–Gproject–md/project/lis$mkdir/project/share$mkdir/project/temp$chown:project/project/share$chmod2770/project/share$chown:project/project/temp$chmod3770/project/temp$passwdzhangs$passwdlis某軟件項(xiàng)目,項(xiàng)目成員擁有各自的用戶組和專(zhuān)屬目錄,同時(shí),他們擁有一個(gè)共享目錄和一個(gè)臨時(shí)目錄,假設(shè)項(xiàng)目?jī)H有兩個(gè)成員,下面在Linux系統(tǒng)中為他們創(chuàng)建相應(yīng)的用戶。2.5進(jìn)程管理進(jìn)程

進(jìn)程是正在執(zhí)行的程序,是程序的一次運(yùn)行。程序是靜態(tài)的,而進(jìn)程是動(dòng)態(tài)的。進(jìn)程在其生命周期內(nèi),會(huì)處于多種狀態(tài),在進(jìn)程調(diào)度算法的作用下,實(shí)現(xiàn)狀態(tài)間遷移。

init/systemd通常作為系統(tǒng)中第一個(gè)用戶態(tài)程序,其進(jìn)程號(hào)為1,系統(tǒng)中的所有其他用戶進(jìn)程均為init的子孫,它們之間以層次關(guān)系呈現(xiàn)。。pstree命令systemd-+-cron|-dbus-daemon|-dhclient|-exim4|-login---bash---pstree|-rsyslogd-+-{in:imklog}||-{in:imuxsock}|`-{rs:mainQ:Reg}|-systemd---(sd-pam)|-systemd-journal|-systemd-logind|-systemd-timesyn---{sd-resolve}`-systemd-udevd語(yǔ)法pstree功能顯示系統(tǒng)中進(jìn)程之間的繼承關(guān)系。作業(yè)控制

作業(yè)控制源自BSD系統(tǒng)的CShell,允許用戶在一個(gè)Shell終端上同時(shí)運(yùn)行多個(gè)作業(yè),一個(gè)作業(yè)為以回車(chē)換行結(jié)尾的命令行。作業(yè)可運(yùn)行于前臺(tái)或后臺(tái),后臺(tái)可運(yùn)行多個(gè)作業(yè),前臺(tái)最多只能一個(gè),作業(yè)可在前后臺(tái)之間切換,僅前臺(tái)作業(yè)可獲得終端的控制權(quán),在無(wú)前臺(tái)作業(yè)的情況下,控制終端歸shell所有。一個(gè)作業(yè)可能由若干命令組成,命令的運(yùn)行次序取決于作業(yè)的組織方式。作業(yè)的狀態(tài)遷移前臺(tái)運(yùn)行終止后臺(tái)運(yùn)行后臺(tái)停止fg命令&SIGSTOPSIGTTINSIGTTOTbg(SIGCONT)Comtrol-z(SIGTSTP)fg(SIGCONT)Control-c(SIGINT)Control-\(SIGQUIT)killkill命令實(shí)例分析$sleep100&[1]3655$sleep200&[2]3663$sleep300^Z[3]+Stoppedsleep300$jobs[1]Runningsleep100&[2]-Runningsleep200&[3]+Stoppedsleep300$fg%1sleep100控制終端

會(huì)話被創(chuàng)建時(shí)未關(guān)聯(lián)任何終端設(shè)備,Shell無(wú)法完成標(biāo)準(zhǔn)輸入輸出;為此,作為首會(huì)話進(jìn)程的登錄進(jìn)程login通過(guò)打開(kāi)終端設(shè)備,實(shí)現(xiàn)與終端設(shè)備的關(guān)聯(lián),從而為其上創(chuàng)建的進(jìn)程提供標(biāo)準(zhǔn)輸入輸出服務(wù),故而終端也稱為控制終端,Shell也稱為終端的控制進(jìn)程。進(jìn)程的相關(guān)標(biāo)識(shí)進(jìn)程ID(PID)

用于標(biāo)識(shí)系統(tǒng)中的每一個(gè)進(jìn)程,初始化進(jìn)程init/systemd的進(jìn)程ID為1父進(jìn)程ID(PPID)

用于標(biāo)識(shí)進(jìn)程的創(chuàng)建者進(jìn)程組ID(PGID)

用于標(biāo)識(shí)進(jìn)程間的協(xié)作關(guān)系,進(jìn)程組ID取自領(lǐng)頭進(jìn)程的進(jìn)程ID會(huì)話ID(SID)

用于標(biāo)識(shí)用戶的一次登錄過(guò)程會(huì)話、進(jìn)程組和控制終端的關(guān)系作業(yè)控制進(jìn)程后臺(tái)作業(yè)1/后臺(tái)進(jìn)程組1后臺(tái)作業(yè)2/后臺(tái)進(jìn)程組2會(huì)話前臺(tái)作業(yè)/前臺(tái)進(jìn)程組控制終端proc6(領(lǐng)頭進(jìn)程)(738,641,738,353)proc7(739,641,738,353)proc3(領(lǐng)頭進(jìn)程)(735,641,735,353)proc4(736,735,735,353)proc5(737,735,735,353)proc1(領(lǐng)頭進(jìn)程)(733,641,733,353)proc2(734,641,733,353)登錄shell(641,353,641,353)進(jìn)程的表示:進(jìn)程名(進(jìn)程ID,父進(jìn)程ID,進(jìn)程組ID,會(huì)話ID)命令ps–efj列名含義C進(jìn)程占用CPU的百分比STIME進(jìn)程啟動(dòng)的開(kāi)始時(shí)間TTY進(jìn)程關(guān)聯(lián)的終端TIME進(jìn)程運(yùn)行時(shí)間CMD命令的名稱和參數(shù)命令ps-aux列名含義USER用戶名%CPU進(jìn)程占用CPU的百分比%MEM進(jìn)程占用內(nèi)存的百分比VSZ進(jìn)程使用虛擬內(nèi)存數(shù)量(KB)RSS進(jìn)程占用物理內(nèi)存頁(yè)面的數(shù)量(KB)TTY進(jìn)程的關(guān)聯(lián)終端STAT進(jìn)程的狀態(tài)進(jìn)程的狀態(tài)遷移就緒狀態(tài)運(yùn)行狀態(tài)停止?fàn)顟B(tài)可中斷狀態(tài)不可中斷狀態(tài)僵尸狀態(tài)調(diào)度時(shí)間片耗盡/占先信號(hào)(SIGCONT)事件到達(dá)/信號(hào)等待事件結(jié)束進(jìn)程信號(hào)(SIGSTOP,SIGTTIN,SIGTTOU)創(chuàng)建進(jìn)程等待事件事件到達(dá)進(jìn)程狀態(tài)進(jìn)程狀態(tài)含義D不可中斷的睡眠狀態(tài)R運(yùn)行或就緒狀態(tài)S可中斷的睡眠狀態(tài)T停止?fàn)顟B(tài)t停止?fàn)顟B(tài)(由于調(diào)試追蹤)W頁(yè)交換X結(jié)束狀態(tài)(從未出現(xiàn))Z僵尸狀態(tài),進(jìn)程已結(jié)束,等待父進(jìn)程進(jìn)一步處理9內(nèi)核函數(shù)進(jìn)程和作業(yè)的相關(guān)操作命令功能pstree顯示系統(tǒng)中用戶進(jìn)程的繼承關(guān)系ps顯示進(jìn)程屬性kill結(jié)束進(jìn)程jobs顯示后臺(tái)作業(yè)的狀態(tài)fg將后臺(tái)作業(yè)置于前臺(tái)bg恢復(fù)后臺(tái)作業(yè)的運(yùn)行實(shí)例分析$kill-1 #列出所有倍號(hào)$kill-sSIGSTOP323#暫停進(jìn)程運(yùn)行$kill-9524#結(jié)束進(jìn)程$jobs#列出當(dāng)前會(huì)話的所有后合作業(yè)$bg%2#使2號(hào)作業(yè)在后臺(tái)恢復(fù)運(yùn)行$fg%3#將3號(hào)后臺(tái)作業(yè)切換至前臺(tái)2.6輸入輸出重定向和管道概述

進(jìn)程通常將鍵盤(pán)/顯示器作為標(biāo)準(zhǔn)輸入/輸出設(shè)備,進(jìn)程從鍵盤(pán)上接受數(shù)據(jù),將輸出結(jié)果輸出至顯示器。為了在不修改程序的情況下,改變數(shù)據(jù)的來(lái)源和目的地,系統(tǒng)引入了輸入輸出重定向技術(shù),通過(guò)改變程序的運(yùn)行環(huán)境,改變數(shù)據(jù)的輸入輸出方向。實(shí)例分析$ls–l>test

每個(gè)由shell創(chuàng)建的進(jìn)程都會(huì)繼承三個(gè)已打開(kāi)的文件描述符,它們依次為標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出。文件文件描述符默認(rèn)設(shè)備輸入文件:標(biāo)準(zhǔn)輸入0鍵盤(pán)輸出文件:標(biāo)準(zhǔn)輸出1屏幕錯(cuò)誤輸出文件:標(biāo)準(zhǔn)錯(cuò)誤輸出2屏幕標(biāo)準(zhǔn)駛?cè)胼敵鲈O(shè)備輸入/輸出重定向1.輸入重定向語(yǔ)法cmd[n]<file功能命令cmd從文件描述符n的讀入轉(zhuǎn)向文件file。2.輸出重定向語(yǔ)法cmd[n]>filecmd[n]>>file功能命令cmd向文件描述符n的輸出寫(xiě)入文件file。類(lèi)別操作符說(shuō)明標(biāo)準(zhǔn)輸入重定向<從指定文煥上輸入標(biāo)準(zhǔn)輸出重定向>將標(biāo)準(zhǔn)輸出寫(xiě)入指定文件>>將標(biāo)準(zhǔn)輸出追加至指定文件標(biāo)準(zhǔn)錯(cuò)誤輸出重定向2>將標(biāo)準(zhǔn)錯(cuò)誤輸出寫(xiě)入至指定文件2>>將標(biāo)準(zhǔn)錯(cuò)誤輸出追加至指定文件標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出重定向&>將標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出寫(xiě)入至指定文件標(biāo)準(zhǔn)輸入/輸出重定向操作符實(shí)例分析$ls-l1>out2>err復(fù)制文件描述符(1)復(fù)制輸入文件描述符語(yǔ)法

[n]<&m功能 將文件描述符m復(fù)制至文件描述符n,用于輸入重定向。(2)復(fù)制輸出文件描述符語(yǔ)法

[n]>&m功能將文件描述符m復(fù)制至文件描述符n,用于輸出重定向。移動(dòng)文件描述符(1)移動(dòng)輸入文件描述符語(yǔ)法[n]<&m-功能將文件描述符m移動(dòng)至文件描述符n,用于輸入重定向。(2)移動(dòng)輸出文件描述符yufa[n]>&m-功能將文件描述符m移動(dòng)至文件描述符n,用于輸出重定向?qū)嵗治鰧?biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出重定向至文件out$ls>out2>&1將標(biāo)準(zhǔn)輸出重定向至文件out$ls2>&1>out因復(fù)制發(fā)生在重定向前,故僅將標(biāo)準(zhǔn)輸出重定向至文件out管道

管道用于連接兩個(gè)進(jìn)程的輸入和輸出,將一個(gè)進(jìn)程的輸出作為另一個(gè)進(jìn)程的輸入。管道存在兩個(gè)端點(diǎn),一個(gè)端點(diǎn)用于數(shù)據(jù)輸入,另一個(gè)端點(diǎn)用于數(shù)據(jù)輸出,采用單向模式,根據(jù)管道的實(shí)現(xiàn)方式,管道可分為無(wú)名管道和命名管道。無(wú)名管道語(yǔ)法cmd1|cmd2功能將命令cmd1的標(biāo)準(zhǔn)輸出作為命令cmd2的標(biāo)準(zhǔn)輸入。實(shí)例分析$ls-l|grep^d|more命名管道

命名管道為一種特殊的文件,存在于文件系統(tǒng)中,用戶可通過(guò)命令mkfifo創(chuàng)建。實(shí)例分析$mkfifomypipe$ls-lmypipeprw-r--r--1rootroot0Oct2417:28mypipe2.7元字符與正則表達(dá)式元字符對(duì)于某些軟件,例如Shell、vi和grep等,為了描述某些特征字符串構(gòu)成的集合,普通字符并非總能滿足要求,為此,引入了元字符。元字符是一類(lèi)具有特定含義而非自身的特殊字符,通常用于匹配字符串等操作。元字符的定義取決于具體命令。Shell中的元字符Shell中的元字符也稱為通配符,經(jīng)常出現(xiàn)在Shell命令中,用于通配文件和目錄。元字符含義?匹配任意一個(gè)字符*匹配任意數(shù)量的字符[abc]匹配a、b和c中任意一個(gè)字符[a-z]匹配a-z范圍內(nèi)的任意字符[!a-z]匹配除a-z外的字符常用Shell通配符的定義實(shí)例分析$ls[a-z]*#查找以字母a到z開(kāi)頭的所有文件$ls[!a-z]*#查找不以字母a到z開(kāi)頭的所有文件$ls*.c#查找后綴名為c的所有文件屏蔽元字符的特殊含義

有時(shí),需在命令中使用元字符本身,用戶可通過(guò)在元字符前使用反斜杠\實(shí)現(xiàn)。實(shí)例分析$lsa\*#列出當(dāng)前目錄下文件名為a*的文件正則表達(dá)式

正則表達(dá)式是一個(gè)字符串模板,由普通字符和元字符組成,用于文本匹配,在文本中搜索所需的字符串。正則表達(dá)式通常出現(xiàn)在文本處理軟件中,例如,shell、vi和grep等。元字符匹配字符^行首$行尾\char轉(zhuǎn)義后面的字符[^]不匹配方括號(hào)中的任意字符\<單詞的開(kāi)始\>單詞的結(jié)尾()括號(hào)內(nèi)為一組|分組{m}前綴字符重復(fù)m次{m,}前綴字符至少重復(fù)m次{m,n}前綴字符重復(fù)m至n次.所有的單個(gè)字符?0個(gè)或1個(gè)前綴字符+至少一個(gè)前綴字符*0個(gè)或多個(gè)字符文本過(guò)濾器GREP是一款功能強(qiáng)大的文本過(guò)濾軟件,可從文本文件中過(guò)濾出包含某些字符串的行,字符串通常具有某種特征,可使用正則表達(dá)式進(jìn)行描述,文本過(guò)濾器擁有多種版本。這里僅介紹egrep,下面給出egrep所支持的元字符。實(shí)例分析$egrep'^abc|^def'textfile#過(guò)濾出以單詞abc和def為首的行$egrep'\.00$'textfile#過(guò)濾出以.00結(jié)尾的行$egrep'5\..'textfile#過(guò)濾出包含5.后隨任意一個(gè)字符的行$egrep'^[a-c]'textfile#過(guò)濾出不以字符a、b或c開(kāi)頭的行$egrep'a(bc){2}'textfile#過(guò)濾出包含abcbc的行$egrep'[2-5][0-9]'textfile#過(guò)濾出包含20至59的行$egrep‘a(chǎn)(bc)+’textfile#過(guò)濾出包含abc、、abcbc…的行2.8網(wǎng)絡(luò)基礎(chǔ)TCP/IP概述TCP/IP協(xié)議已成為事實(shí)上的互聯(lián)網(wǎng)標(biāo)準(zhǔn)。正確配置網(wǎng)絡(luò)是保證Linux系統(tǒng)接入互聯(lián)網(wǎng)的基礎(chǔ)。在配置網(wǎng)絡(luò)前,需正確安裝網(wǎng)卡驅(qū)動(dòng)和TCP/IP協(xié)議,由于Linux發(fā)行版存在一定差異,在配置網(wǎng)絡(luò)時(shí)也有所不同。網(wǎng)絡(luò)配置文件配置文件發(fā)行版描述/etc/sysconfig/network-scripts/ifcfg-ethNCentOS配置IP、網(wǎng)關(guān)和DNS地址/etc/network/interfacesDebian配置IP、網(wǎng)關(guān)和DNS地址/etc/hosts-配置主機(jī)名/etc/services-配置網(wǎng)絡(luò)服務(wù)/etc/resolv.conf-配置DNS服務(wù)器配置DHCP1.基于CentOS發(fā)行版$cat/etc/sysconfig/network-scripts/ifcfg-ethN#配置文件路徑DEVICE=eth0#設(shè)備名稱BOOTPROTO=dhcp#使用DHCP協(xié)議ONBOOT=yes#啟動(dòng)時(shí)自動(dòng)激活網(wǎng)卡2.基于Debian發(fā)行版$cat/etc/network/interfaces#顯示配置文件內(nèi)容autoeth0#啟動(dòng)時(shí)自動(dòng)激活網(wǎng)卡ifaceeth0inetdhcp#設(shè)置DHCP協(xié)議配置靜態(tài)地址(1)基于CentOS發(fā)行版$cat/etc/sysconfig/network-scripts/ifcfg-ethN#配置文件路徑DEVICE=eth0

溫馨提示

  • 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)論