linux shell編程與器使用詳解_第1頁
linux shell編程與器使用詳解_第2頁
linux shell編程與器使用詳解_第3頁
linux shell編程與器使用詳解_第4頁
linux shell編程與器使用詳解_第5頁
已閱讀5頁,還剩663頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1篇Linux系統(tǒng)學(xué)習(xí)基礎(chǔ)第1章S編程基礎(chǔ)支持作業(yè) 第2章 第2篇與管理第3章 第4章命令常用的命第5章正則表達(dá)式第3篇vi編輯器與emacs編輯器第6章vi(vim)第7章emacs編輯器第4篇grep命令、gawk與sed,其他常用文本命令第8章grep命令第9章gawk與sed第5篇S編程及編程實戰(zhàn)第10章第11章S變量及相關(guān)操作第12章條件測試第13章S的控制結(jié)構(gòu)第14章函數(shù)第15章S編程實例 自動指定文Linux 李龍楊宇編電子工業(yè)PublishingHouseofElectronics實例,供讀者實戰(zhàn)演練。另外,本書有很多關(guān)于Linux下令操作內(nèi)介紹常用的系統(tǒng)管理命令、命令、正則表達(dá)式;第3篇介紹vi他常用的文本編輯命令、S變量及相關(guān)操作、條件測試、S的控制結(jié)構(gòu)、函數(shù)、S編程實例。nuu專業(yè)發(fā)員利n做發(fā)程術(shù)員n開發(fā)者大Lx, 工業(yè),2013.7 責(zé)任編輯:付 刷:中新偉業(yè)印刷 :電子工業(yè)市海淀區(qū)萬壽路173信箱 售缺,請與本社部聯(lián)系,聯(lián)系及郵購 服務(wù) 腦、路由器、游戲控制臺、臺式計算機(jī)、大型機(jī)和超級計算機(jī)。、循脈在握類配合大量實際例子運行操作,學(xué)習(xí)效果 量的開發(fā)技巧,以便讓讀者更好地理解各種概念和管理技術(shù),體驗實際編程,迅速提高管理水平。 本書內(nèi)容及體系第1篇Linux系統(tǒng)學(xué)習(xí)基礎(chǔ)(第1、2章 各種任務(wù),任務(wù)管理,常用的命令,系統(tǒng)的日常配置,自第3篇vi編輯器與emacs編輯器(第6、7章第4篇grep命令,gawk與sed,其他常用文本命令(第8、9章以掌握數(shù)據(jù)和產(chǎn)生報告的程序語言,命令行工具,文本常用的基本第5篇S編程及編程實戰(zhàn)(第10~15章 本書讀者對第1篇Linux第1章 編程基S是操作系統(tǒng)的外殼,是用戶使用操作系統(tǒng)令接口,是一個介于用戶和系統(tǒng)內(nèi)核之間的橋梁。S接受用戶以命令行方式輸入令(包括系統(tǒng)提供的內(nèi)部命令、獨立存在于某個下的程序),同時 的功命令,或者自動解釋和執(zhí)行預(yù)先設(shè)定好的一連串令;作為程序設(shè)計接受來自鍵盤令Linux 的常用命計語言構(gòu)成的文件稱為SScript或S S命令解釋器并執(zhí)行。當(dāng)執(zhí)行一個S 行、逐個循環(huán)地所有的ASCII文本,并從頭到尾依次執(zhí)行每條語表1- 編程常用命 注意:建立 文件同建立普通文件的方式一樣,可以使用vi、emacs命令來建立啟動和退 常用的S類S、BourneAgainS、CS、KornS和PerlS等。注意:本書編程部分所涉及的語言如非特別說明,以流行的BourneAgain注意:可以使用grep命令查看/etc/passwd文件,以顯示當(dāng)前登錄用戶使S,命令格式如下Linux默認(rèn)BourneAgainS(簡稱Bash)是Linux默認(rèn)的S,也是最流行 注意:要啟動Bash只需要在命令行鍵入bash并按回車鍵即Bourne 的擴(kuò)展貝爾的DavidKorn設(shè)計了Korn (簡稱ksh)。Korn是BourneS的繼承和發(fā)展,使用BourneS編寫的可以不必修改就直接使用KornS運行。同時KornS包含CS的特性,具有較強(qiáng)的作業(yè)控制能力,如掛起、執(zhí)行、喚醒、終止等,還提供了窗網(wǎng)關(guān)接口Perl 和ReportLanguage)S通常用來編寫Web應(yīng)用程序的通用網(wǎng)關(guān)接早期 注意:要啟動BourneS只需要在命令行鍵入sh并按回車鍵即可支持作業(yè) 加利福尼亞大學(xué)伯克利分校的BillJoy認(rèn)識到BourneS的上述不足,決定用C語言中的關(guān)鍵字來設(shè)計一種新的S——CS。CS 序員的青睞。CS還有一個擴(kuò)充版本TCS。注意:要啟動CS只需要在命令行鍵入csh并按回車鍵。要啟動TCS只S基本語 中的的注釋將有利于日后的和更新。unenTC注語相,用號標(biāo)注釋行如符#在的一出并其沒感號!或出現(xiàn)在的他意置那S 將視注的始S 會略從號開到末即一換符之的有容。 通配符的 大小寫區(qū) 指定使用某個 如果的前兩個字符是#!,那么系統(tǒng)將這兩個字符后面的那些字其中,“ps-f”可以用來顯示正在執(zhí)行該的S的名字。該 IO重定 標(biāo)準(zhǔn)輸入通常指傳給一個命令的鍵盤輸入。例如,運行命令lsal,有此文件或”,并從顯示器輸出。表1- 常用輸入輸出重定向命令格式說 下的所有文件建立一個,并保 t_li) o !!!,按在輸入完畢后先按回車鍵(否則最后一行不會),再按Ctrl+文件名。管道例如,以長格式查看/etc下的所有文件。由于/etc下的文件有很多,直接使用1s-al命令顯示的內(nèi)容會很快卷過屏幕,無法仔細(xì)查看??梢岳霉艿缹?s-al命令的執(zhí)行結(jié)果輸入more或less命令,實現(xiàn)分前臺與執(zhí)行任一種是在運行,其主要區(qū)別如下所示。有時用戶需要執(zhí)行的程序要花費很多時間(例如,從輸出、或上傳、對源代碼進(jìn)行編譯),如果臺運行,用戶將無法繼續(xù)進(jìn)行其他工作。為此可將這些耗時程序放到運行。在執(zhí)行由于進(jìn)程是S的一個子進(jìn)程,所以當(dāng)用戶退出S時(即退意是否有還未結(jié)束的進(jìn)程正在運行。注意:所有子進(jìn)程,在父進(jìn)程結(jié)束時,都將被結(jié)命令的執(zhí)行順 之間用分號(;)分隔,且分號前后令無因果關(guān)系。 執(zhí)行,也不能改變命令的任何功能。用戶可以在單獨一個命令行中連續(xù)地輸入一串 文件到/home/ 已經(jīng)存在,則不再進(jìn)行。利用||可以方便地完成該操作,執(zhí)行命令 中3種引號的單引號中變量PATH,其結(jié)果如下所示。例如,使引號顯示輸出ps,其結(jié)果如下所示。下面示例中使引號,如下所示。+運行 注意:任何用戶希望把文件名作為命令執(zhí)行時,都必須具有執(zhí)行權(quán)限。如果該文件是一個S ,用戶嘗試執(zhí)行這個文件時,還必須具備讀權(quán)限。而在執(zhí)行一個二進(jìn)制可執(zhí)行文件(已編譯程序)時,不需要讀權(quán)限。由于bash命令默認(rèn)一個包含命令的文件,所以不需要為賦予執(zhí)行權(quán)限。如果希望使用TCS來執(zhí)行,格式如下所示。使用ll命令可以查看這種關(guān)系,如下所示。行速度比具有執(zhí)行權(quán)限之后直接調(diào)用慢一些。所以大多數(shù)用戶更喜歡將文件為可執(zhí)行,并在命令行上直接輸入文件名來運行注意:“.”與后面的程序名之間要留有空 或或注意:一個命令或S 程序執(zhí)行完畢之后,將返回給父進(jìn)程一個退出狀態(tài)。退出狀態(tài)是一個0~255之間的整數(shù)。通常如果返回狀態(tài)為0,則表示命令或S 第2章系統(tǒng)管理與源的使用效率,并及時對系統(tǒng)進(jìn)行更新和。Linux系統(tǒng)提供了一些常用的信息顯示cal命令:日期顯表2- cal命令的選項說cat/proc/meminfo:內(nèi)存使用情況查 下的文件不是真正意義上的文件,關(guān)閉系統(tǒng)后,該 命令:內(nèi)存詳細(xì)信息表2- 命 的選項說arch命令:CPU架構(gòu)顯cat/proc/cpuinfo命令:處理器CPU信息顯cat/proc/modules:查詢當(dāng)前系統(tǒng)被加載模系統(tǒng)信息顯示命proc文件系統(tǒng):系統(tǒng)內(nèi)核信由于系統(tǒng)的信息總是動態(tài)變化的,所以用戶或應(yīng)用程序proc文件時 相應(yīng)令進(jìn)行查詢。例如查詢當(dāng)然系統(tǒng)中運行的vi程序的相關(guān)信息。注意:在proc 中,可以通過查看upinfo文件獲得處理器的詳細(xì)信息;通過nerupts文件可以查看當(dāng)前系統(tǒng)使用的中斷號;通過uptim文件可以查看系統(tǒng)運行的時間;通過fiesysems文件,可以查看當(dāng)前系統(tǒng)支持的文件系統(tǒng)類型。modinfo命令:內(nèi)核模塊信表2- modinfo命令的選項說cat/etc/issue命令:系統(tǒng)的當(dāng)前版顯示輸本信息。例如:可以看到,當(dāng)前的版本為Ubuntu RedHat。cat/proc/version:查看系統(tǒng)內(nèi)核當(dāng)前版cat/proc/partitions:查看系統(tǒng)當(dāng)前分cat/proc/interrupts命令:顯示中斷信cat/proc/filesystems命令:常用文件系統(tǒng)信dmesg:啟動信息查表2- dmesg命令選項說系統(tǒng)常用信息設(shè)date命令:系統(tǒng)時間顯示與設(shè)表2- date命令的選項說表2- date命令的輸出格式設(shè)hostname命令:當(dāng)前系統(tǒng)的主機(jī)名顯示與設(shè)表2- hostname命令選項說hwclock命令:硬件時鐘顯示和設(shè)表2- hwclock命令各選項說注意:UTC時間是UniversalTimeCoordinated的縮寫,在GPS系統(tǒng)中有兩種時 UTC是0時區(qū)的時間,地方時為本地時間,例如為東八區(qū),那么早上8點,UTC時間就為0點,比晚8小時。hash命令:顯示、添加或清除哈希表2- hash命令的選項說sysctl命令:系統(tǒng)參數(shù)的設(shè)表2- sysctl命令的選項說文件系統(tǒng)信息顯示常用命echo命令:文本行輸出顯表2- echo命令選項說注意:不同的 所支持的echo命令略有不同表2- 轉(zhuǎn)義字符及含義說從輸出結(jié)果可以看出,\n被轉(zhuǎn)義為Enter鍵,因此在o與s之間isosize命令:iso9660文件系統(tǒng)大小的顯表2- 命令isosize的選項說minfo命令:ms-dos文件系統(tǒng)的各項參數(shù)的顯表2- minfo命令的選項說pwd命令:當(dāng)前工 的顯 procinfo命令:系統(tǒng)狀態(tài)信息的顯 表2- procinfo命令顯示信息列表2- 架構(gòu)中的中斷定表2- procinfo命令的選項說stat命令:文件/文件系統(tǒng)的詳細(xì)信息的顯表2- 命令stat的選項說注意:事實上,stat命令顯示的是文件的I節(jié)點信息。Linux文件系統(tǒng)以(block)為單位信息,為了找到某一個文件在空間中存放的位置,用I對一個文件進(jìn)行索引。所謂的I節(jié)點,是文件系統(tǒng)管理的一個數(shù)據(jù)結(jié)構(gòu),是一個64字節(jié)長的表,包含了描述一個文件所必需的全部信息,其中有文件的大小、文件所有者、文件的存取權(quán)限、類型等重要信息。Linux操作系統(tǒng)信息查uname命令:操作系統(tǒng)信息的顯表2- uname命令的選項說vmstat命令:虛擬內(nèi)存的統(tǒng)計信息的顯表2- vmstat命令的選項說uptime命令:系統(tǒng)的運行信息的顯locale命令:當(dāng)前系統(tǒng)的語言設(shè)表2- locale命令的選項說tload命令:系統(tǒng)負(fù)載表2- tload命令的選項說圖2- tload命令顯示系統(tǒng)負(fù)runlevel命令:系統(tǒng)運行級別顯runlevel命令系統(tǒng)的/var/run/utmp文件,讀入系統(tǒng)的運行級別記表2- 運行級別說注意:系統(tǒng)的初始運行級別設(shè)置存放在文件/etc/inittab里,系統(tǒng)初始運lsmod命令:所有已加載模塊的顯其中,選項-V,--version用于顯示lsmod命令的版本信息,選項-h,--top命令:進(jìn)程信息顯圖2- top命令主界表2- top命令的選項說ipcs命令:IPC設(shè)備信息顯ipcs命令將提供調(diào)用進(jìn)程可以的IPC設(shè)備信息,對進(jìn)程通信進(jìn)行表2- ipcs命令的選項說time命令:進(jìn)程執(zhí)行時間顯pstree命令:以樹狀圖顯示程pstree令格式如下。表2- pstree命令的選項說ps命令:監(jiān)測進(jìn)態(tài)顯示進(jìn)程狀態(tài)的top命令。ps令格式如下。表2- ps命令各選項說可以看到,再次運行ps-Cnfsd-opid=命令后的顯示結(jié)果為空,因pmap命令:顯示程序的占用資源信 jobs命令:作jobs命令顯示當(dāng)前正在執(zhí)行的作業(yè)。在獲得作業(yè)的相關(guān)信息之表2- jobs命令的選項說mev命令:監(jiān)視鼠標(biāo)情表2- mev命令的選項說fuser命令:用套接口或者文件識別進(jìn)表2- fuser命令的選項說 Linux終端命令行fgconsole命令:顯示當(dāng)前虛擬終端數(shù)history命令:顯示歷史指history命令保留了最近執(zhí)行令記錄,默認(rèn)可以保留500個。歷史從0開始編號,直到保留的最大值。history命令的語法格式如下表2- history命令的選項說 用戶所使用令和歷史信息。例如:gdialog命令 創(chuàng)建 表2- gdialog命令的選項說表2- gdialog命令的Boxoption選項說例如,創(chuàng)建一個30×60的yesno框,框標(biāo)題為Network nodesinaregionofinterestisacriticalissueinbuildingsensornetworkbecauseisaffectscostanddetectioncapabilitiesofthesystem.Agroupof nodesfistformaclusterusingapotentialfieldmethodandthenclusterheadsareusedtoestablishahexagonalstructurethaemploysahigherlevelpotentialfield.,命令如下所示。執(zhí)行上述命令后,將出現(xiàn)如圖2-3所示的框界面。該框需圖2- gdialog命令創(chuàng)建yes/no例如,創(chuàng)建一個30×60的mesgbox框,框標(biāo)題為Network nodesinaregionofinterestisacriticalissueinbuildingasensornetworkbecauseisaffectscostanddetectioncapabilitiesofthesystem.Agroupof nodesfistformaclusterusingapotentialfieldmethodandthenclusterheadsareusedtoestablishahexagonalstructurethaemploysahigherlevelpotentialfield.,命令如下所示。圖2- gdialog命令創(chuàng)建msgbox例如,創(chuàng)建一個30×60的inputbox框,框標(biāo)題為Network nodesinaregionofinterestisacriticalissueinbuildingasensornetworkbecauseisaffectscostanddetectioncapabilitiesofthesystem.Agroupof nodesfistformaclusterusingapotentialfieldmethodandthenclusterheadsareusedtoestablishahexagonalstructurethaemploysahigherlevelpotentialfield.,命令如下所示。執(zhí)上命后將現(xiàn)圖-所的ux,該框asac鍵heoksveyperet確定出框退時所入文將標(biāo)錯設(shè)輸。圖2- gdialog命令創(chuàng)建inputbox圖2- gdialog命令創(chuàng)建textbox例如,創(chuàng)建一個20×60的 ID,背景標(biāo)題為Dialog,框內(nèi)顯示的內(nèi)容為“—學(xué)號”列表,顯表2- memu框的“—學(xué)號”列 圖2- gdialog命令創(chuàng) 例如,創(chuàng)建一個20×60的checklist框,框標(biāo)題為Name ID,背景標(biāo)題為Dialog,框內(nèi)顯示的內(nèi)容為“—學(xué)號”列表,顯表2- checklist框的“—學(xué)號”列圖2- gdialog命令創(chuàng)建checklist例如,創(chuàng)建一個20×60的radiolist框,框標(biāo)題為Name ID,背景標(biāo)題為Dialog,框內(nèi)顯示的內(nèi)容為“—學(xué)號”列表,顯表2- radiolist框的“—學(xué)號”列的“—學(xué)號”列表超出了顯示范圍,可以使用Up/Down鍵上下滾動菜圖2- gdialog命令創(chuàng)建radiolistyes命令:字符串的連續(xù)輸表2- yes命令的選項說 oeveryone!IamS,直到按下Ctrl+C組利用yes命令可以讓一些交互問題自動得到應(yīng)答。例如,使用rm*命第2篇與管第3章常用的系統(tǒng)管理在RedHatLinux9中,常用的系統(tǒng)管理命令大約有40多個。通過這作為一名優(yōu)秀的服務(wù)器管理員或者編程者,都需要掌握怎么使用常用的系統(tǒng)管理在RedHatLinux9中,常用的系統(tǒng)管理命令大約有40多個。通過這apm命令:BIOS電源管表3- apm命令的選項說apmsleep命令:低功耗工Clock,實時時鐘)將計算機(jī)從低功耗的掛起狀態(tài)(到表3- apmsleep命令的選項說open命令:開啟虛擬表3- open命令的選項說vlock命令:鎖定終要輸入用戶才能取消鎖定。該命令的語法格式如下所示。表3- vlock命令的選項說sudo命令:用戶命令時,必然首先輸入,然后才能獲得相應(yīng)的,有效時間為5表3- sudo命令的選項說rsh命令:用戶設(shè)置登錄表3- rsh命令的選項說例如,通過命令rsh-lli24/bin/ls,以賬號li登錄到chsh命令:切換系統(tǒng)登錄時 表3- chsh命令的選項說clear命令:清除終端屏圖3- clear命令清屏后光標(biāo)回到左上rlogin命令:智能化遠(yuǎn)端登用標(biāo)準(zhǔn)的Berkeleyrhosts認(rèn)證機(jī)制。該命令的語法格式如下所示。表3- rlogin命令的選項說進(jìn)程任務(wù)管apmd命令:高級電源管理守護(hù)進(jìn) 或待機(jī)請求時,apmd激活相應(yīng)令并對、數(shù)據(jù)記錄日志,最后表3- apmd命令的選項說fg命令:任務(wù)放前其中,選項job_spec用于指定放臺執(zhí)行的任務(wù)。如果job_spec為空,fg命令將當(dāng)前默認(rèn)的作業(yè)轉(zhuǎn)到前臺執(zhí)行。例如,下面令依次將作業(yè)vi及cat放到前臺執(zhí)行。kill命令:結(jié)束進(jìn)表3- kill命令的選項說killall命令:殺死同名進(jìn)表3- killall命令的選項說nice命令:進(jìn)程優(yōu)先級切會有地獲得使用CPU的機(jī)會,其大部分時間都會處于運行態(tài),總的因此總的執(zhí)行時間就會較長。在RedHatLinux中提供了nice命令,可以表3- nice命令使用范例及說pgrep命令:查找符合條件的進(jìn)表3- pgrep命令的選項說pidof命令:查看正在運行程序的進(jìn)程表3- pidof命令的選項說renice命令:設(shè)定進(jìn)程優(yōu)先pkill命令:強(qiáng)制殺死表3- pkill命令的選項說設(shè)置系統(tǒng)的各種ntsysv命令:圖形化設(shè)置系統(tǒng)的各種服表3- ntsysv命令的選項說圖3- ntsysv命令窗圖3- 具有“返回”按鈕的ntsysv命令窗symlinks命令:管理和符號工 接的工具。symlinks命令能夠識別的符號類型如表3-17所示。表3- symlinks命令能夠識別的符號類表3- symlinks命令的選項說 mtools:軟盤操作工具在dHtux9ts工具。o工集一以母開頭令成其絕多命OO命令SOso括令下示。表3- mtools工具集中令說 gcov命令:coverage測試工優(yōu)化代碼。gcov命令可以給出以下幾方面的。表3- gcov命令的選項說screen命令:視窗程序管理工表3- screen命令的選項說圖3- 創(chuàng)建的圖3- 創(chuàng)建的--logrotate命令:管理log文 表3- logrotate命令的選項說pwck命令:檢查文表3- pwck命令的選項說exec命令:交出控exec命令用來在執(zhí)行完指定令后,交出控制權(quán)。由于控制權(quán)不&命令:執(zhí)行任&命令指定程序在執(zhí)行,即在執(zhí)行令后加上符號&,可以使得該進(jìn)程轉(zhuǎn)到執(zhí)行。有時用戶需要執(zhí)行的程序要花很多時間(如從輸出),如果臺運行,用戶將無法進(jìn)行其他工作。為此利用&命令將程序放到運行。init命令:進(jìn)程的父進(jìn)表3- init命令的選項說計算機(jī)令也是調(diào)用init命令來執(zhí)行的。執(zhí)行命令如下所示。注意:init命令還有一個命令init 任務(wù)管bg命令:執(zhí)行程放在執(zhí)行,執(zhí)行命令如下所示。wait命令:等待程序返回depmod命令:顯示模塊依賴關(guān)表3- depmod命令的選項說rmmod命令:刪除模表3- rmmod命令的選項說 命令:進(jìn)程間機(jī)制管表3- 命令的選項說 watch命令:重復(fù)執(zhí)行命表3- watch命令的選項說fc命令:修改執(zhí)行用文本編輯器對選擇令進(jìn)行編輯,并最終以批處理的形式執(zhí)行。fc表3- fc命令的選項說例如,修改并執(zhí)行已經(jīng)執(zhí)行過令pwd以及cd 添加一行命令echo"ha,ha!Itworks.",如下所示。nohup命令:退出登錄執(zhí)行命表3- nohup命令的選項說器(27)上文件(/home/teacher/ suspend命令:暫停執(zhí)行sleep命令:系統(tǒng)休表3- sleep命令的選項說第4 命為了清除系統(tǒng)運行中發(fā)生的故障和錯誤,軟、硬件人員要對系出的需要,也要對原系統(tǒng)做些局部的更新,這些工作稱為。系統(tǒng)的任務(wù)是改正軟件系統(tǒng)在使用過程中發(fā)現(xiàn)的隱含錯誤,擴(kuò)充在使用過程中用戶新的功能及性能要求,其目的是軟件系統(tǒng)常用的命bind命令:設(shè)置按鍵表4- bind命令的選項說enable命令 內(nèi)置命表4- enable命令的選項說aumix命令:音效裝置設(shè)表4- aumix命令的選項說圖4- aumix命令的圖形設(shè)置方配置系統(tǒng)的認(rèn)證表4- authconfig命令的選項說圖4- 用戶信息配置界 要輸入、KDC、管理服務(wù)器地址;如果選項使用SMB驗證,則需圖4- 驗證配置界export命令:設(shè)置環(huán)境變表4- export命令的選項說 MYENVIRON,如上所示,declare-xMYENVIRON。下面令給自定義環(huán)境變量MYENVIRON賦值為Ubuntu hostid命令:主機(jī)數(shù)字標(biāo)表4- hostid命令的選項說alias命令:設(shè)置命令的別alias命令為已經(jīng)存在令設(shè)置別名。設(shè)置別名之后,用戶可以運表4- alisa命令選項說設(shè)置令別名的列表,如下所示。可以看到,依據(jù)當(dāng)前系統(tǒng)下別名的設(shè)置,命令ll相當(dāng)于命令lsl,命 chkconfig命令:管理系統(tǒng) 進(jìn)行的簡單方式,避免了采用復(fù)雜的符號鏈表4- chkconfig命令的選項說例如,開啟net例如,顯示net例如,關(guān)閉neteval命令:多個命令同時dircolors命令:配置ls命令顯示顏表4- dircolors命令的選項說set命令:設(shè)置 執(zhí)行方表4- set命令的選項設(shè) init命令:設(shè)置系統(tǒng)的運行等表4- init命令的選項說系統(tǒng)的日常配declare命令 變表4- declare命令的選項說fbset命令:幀緩存設(shè)備設(shè) 頻模式數(shù)據(jù)庫(通常為/etc/fb.modes),可以在該數(shù)據(jù)庫中定義模表4- fbset命令的選項說 insmod命令:加載模指定搜索的路徑,則insmod命令會在默認(rèn)的公共中進(jìn)行搜索。如果指定了環(huán)境變量MODPATH,默認(rèn)的搜索將被重載。如果模塊配置表4- insmod命令的選項說lilo命令:安裝啟動裝載程l命安一啟裝程,次動會行單執(zhí)行會據(jù)ec locn配文安l。命的法式下所示。表4- lilo命令的選項說modprobe命令:自動安裝依賴模pbe表4- modprobe命令的選項說注意:modprobe命令并不會對模塊本身產(chǎn)生任何影mkraid命令:raid磁盤陣表4- mkraid命令的選項說注意:初始化raid設(shè)備陣列時將毀壞所有l(wèi)osetup命令:設(shè)置和控制循環(huán)設(shè)表4- losetup命令的選項說rpm命令:RPM包管表4- rpm命令的選項說例如,安裝軟件Realy10的RPM軟件包Real ldd命令:共享庫文件的相互依賴關(guān)表4- ldd命令的選項說ldconfig命令:配置動態(tài)綁表4- ldconfig命令的選項說 up2date命令:升級RedHatLinux系表4- up2date命令的選項說其他常用命false命令:false返回true命令:true返回ulimit命令:控制 及進(jìn)程的資表4- ulimit命令的選項說注意:資源限制一般可以是指定的數(shù)值,也可以使用hard(硬限制)soft(軟限制)和unlimited()3種mouseconfig命令:設(shè)置鼠標(biāo)相關(guān)參 表4- mouseconfig命令的選項說表4- mouseconfig命令支持的鼠標(biāo)類圖4- 以文本界面方式運行圖4- 指定端口為setup命令:系統(tǒng)公用程序設(shè)setup命令用來設(shè)置認(rèn)證、、鼠標(biāo)、網(wǎng)絡(luò)配置、配置、圖4- 配置工具選擇菜圖4- 是否進(jìn)行網(wǎng)絡(luò)配圖4- 網(wǎng)絡(luò)配置界圖4- 對網(wǎng)絡(luò)進(jìn)行配圖4- 返回初始的配置界圖4- 配置工具選擇菜圖4- 選擇啟動的服圖4- s的幫助信swapoff命令:卸載交換區(qū)(swap表4- swapoff命令的選項說swapon命令:加載交換區(qū)(swap表4- swapon命令的選項說resize命令:調(diào)整終端視表4- resize命令的選項說setserial命令:串口設(shè)備設(shè)表4- setserial命令的選項說unalias命令:刪除指定的別表4- unalias命令的選項說unset命令:刪除變量或函表4- unset命令的選項說自動作業(yè)處在RedHatLinux9系統(tǒng)中可以使用自動作業(yè)程序來設(shè)置系統(tǒng)在某個時間執(zhí)行特定令和進(jìn)程。自動作業(yè)程序可以幫助系統(tǒng)管理員自動地執(zhí)行數(shù)據(jù)備份、掃描、檢查郵箱。刪除不必要的文件等工作。通過定期執(zhí)行設(shè)定的任務(wù),系統(tǒng)可以實現(xiàn)自動更新和。實現(xiàn)自動作業(yè)處理令包括crontab、anacron、at和batch等。anacron命令:調(diào)度守護(hù)進(jìn)程任用下面令。行/etc/cron.daily下的程序,如果未能按時執(zhí)行,則間隔65分鐘后繼續(xù)嘗試;第7行表示每隔7天執(zhí)行/etc/cron.weekly下的程序,如果未行/etc/cron.monthly下的程序,如果未能按時執(zhí)行,則間隔75分鐘后at命令:多任務(wù)執(zhí)行排隊處表4- at命令的選項說 在入at5命并回鍵,一個符a,入要行之按tD合退出,t提任執(zhí)>tl時間的設(shè)定可以采用多種格式,例如,8:50p.mMay07、11:00pm+10days、tomorrow、now、noon、midnight等。例如,設(shè)置任務(wù),要求 所有已被執(zhí)行的任務(wù)都被在/var/spool/cron/atjobs 如果只需要很少一部分用戶,而允許其他用戶,可以使用at.deny文注意:at.allow和at.deny文件中,每行只能輸入一個用戶atd命令:執(zhí)行已經(jīng)排隊的任表4- atd命令的選項說atq命令:顯示排隊的任表4- atq命令的選項說atrm命令:刪除已經(jīng)排隊的任表4- atrm命令的選項說atrun命令:執(zhí)行排好隊的任 表4- atrun命令的選項說crontab命令:定時執(zhí)行程表4- crontab命令的選項說注意:每一個用戶可以擁有自己的crontab文件 其,包9記,行示行務(wù)使的2行表執(zhí)任時統(tǒng)搜路;3表將行果郵發(fā)給rt第行定主 為;是釋每行示小的分鐘以r執(zhí)/t/r.uy的有行件第行示天的0分以t/t/cndy的有行件8表示每日42以o執(zhí)ecrnwey的有行件第9表每日42以o執(zhí)/t/rnn所行文。表4- crontab文件各字段說在時間域中,可以使用-符號代表一段時間,例如,在小時域中輸入62,表示每小時 分鐘;可以使用*表示全部時間,例如,在日期字段輸入,則表示每一個月的每一天都執(zhí)行該命;使用示特的間,,在份字輸入則表隔 ac crond服務(wù)程序被經(jīng)常用來幫助系統(tǒng)管理員定期清除文件。例實現(xiàn)每周一早上2:00自動刪除所有一周以來沒有過的core文件。注意:上面命令中}與\之間要有空格。batch命令:批處表4- batch命令的選項說 bthbt.)ubttiae文日志是實現(xiàn)Linux系統(tǒng)安全的重要,利用日志可以審計和監(jiān)測系統(tǒng)出現(xiàn)的錯誤,偵察和追蹤,協(xié)助系統(tǒng)的恢復(fù)和排障。Red Linux9具有自動記錄日志功能,通常使用syslog和klog來完成。syslog記 syslogd命令:啟動syslog日志進(jìn)syslog日志守護(hù)進(jìn)程使用令如下。syslog.conf:系統(tǒng)日志配表4- syslog常用消息來表4- syslog常用消息級表4- syslog可用動作及說件、組、本地安全認(rèn)證、守護(hù)進(jìn)程、crond程序所產(chǎn)生的信息,配例如,將與相關(guān)的到s logger命令:測試?yán)纾瑴y試syslog.conf中的mail.*/var/log/maillogecho會產(chǎn)生不可預(yù)測的。但可以利用echo命令清空日志,而不必停止日第5章正則表達(dá)正則表達(dá)式(regularexpression)適合完成一些復(fù)雜的模式匹配。正則表達(dá)式介經(jīng)生理學(xué)家WarrenMcCulloch和WalterPitts曾研究出用一種數(shù)學(xué)方式來 McCulloch和Pitts研究成果的基礎(chǔ)上,了一篇標(biāo)題為“神經(jīng)網(wǎng)的 元字元字符的定表5- 正則表達(dá)式中常用的元字符及說注意:正則表達(dá)式中的元字符不會被識別為正常字符。如果希望將元字符在正則表達(dá)式中當(dāng)作正常字符使用,必須使用一個反斜杠來轉(zhuǎn)義。例如要表示一個普通字符$,則在正則表達(dá)式中應(yīng)寫為$,要表示一個普通字符.,在正則表達(dá)式中應(yīng)寫為\.。元字符的應(yīng)用示圖5- 使用正則表達(dá)式查找指定的字符圖5- 使用正則表達(dá)式執(zhí)行替換操字符集和字符集和類的定[^a-z]:表示匹配任意一個除小寫字母之外的字[^0-9]:表示匹配任意一個除數(shù)字之外的字符表5- 正則表達(dá)式中內(nèi)置的字符注意:中括號僅表示匹配指定字符集中的一個字元字集和類的應(yīng)用示[0-9]代表數(shù)字,命令如下所示重重復(fù)的定 重復(fù)的應(yīng)用示 子表達(dá)式的定 good”、“veryveryverygood”等字符串。 high”、“veryveryveryveryhigh”。子表達(dá)式的應(yīng)用定位字符串的開始和末開始和末尾的定在被匹配字符串的開始位置;符號$用于匹配字符串的尾部,表示 定位字符串的開始和末尾的應(yīng)用示分分支的定 分支的應(yīng)用示匹配特殊字表示法(即用單引號將正則表達(dá)式包括起來),如果使引號字符串表示法(即引號將正則表達(dá)式包括起來),在一些特殊應(yīng)用環(huán)境中規(guī)則進(jìn)行解析,將2個反斜杠解析為1個反斜杠。對于符號$也是如第3篇vi編輯器與emacs第6章vi(vim)編輯文本編輯器之一,可以在任何S中使用。vi是“visualeditor(可視編輯器)”的縮寫,發(fā)音為/veeeye/??梢哉f,vi在類UNIX編程界有著廣泛vi(vim)編輯器概vi(vim)編輯器的發(fā)展注意:緩沖區(qū)只是文件在內(nèi)存中的臨時存放處,啟動vi的時候,vi將要編輯的文件從磁盤讀入緩沖區(qū)。在會話過程中,vi將所做的修改保存在緩沖區(qū)中而不實時修改磁盤上的文件,直到將緩沖區(qū)內(nèi)容寫回到磁盤。在結(jié)束會話,即退出vi時,緩沖區(qū)將被清除,因此在退出vi前如果不保存文件,對文件所做的修改將不復(fù)存在,所以在修改文件后一定要注意存盤后再退出。BSD/OS、BSD、NetBSD等都可以找到vi。vi還有幾個具有擴(kuò)展功 )、vile 啟動當(dāng)按下回車鍵后,命令行,出現(xiàn)如圖6-1所示的編輯界面。屏 圖6- 啟動mi62hpiq圖6- 啟動vim時未指定文件表6- 啟動vi的方注意:如果只希望瀏覽文件的內(nèi)容而不對文件進(jìn)行編輯,可以使用view。例如,瀏覽文件filename,命令如下所示圖6- 打開一個已經(jīng)鎖定的文作該文件的用戶在存盤時可能存在。文件引起,選擇該項可以恢復(fù)修改內(nèi)容。退出存為可使用下面令。以及如、粘貼、退出等操作。命令一經(jīng)輸入就被立即執(zhí)行,不需要己執(zhí)行令。通過輸入如表6-2所示令,可將vi(vim)由命令模式切換到插表6- 切換到插入模式注意:由于vi(vim)大小寫敏感,所以在輸入命令時,應(yīng)注意區(qū)分大小vi(vim)會將字母相同但大小寫不同的兩個命令認(rèn)為是不同令例如,在末行模式下,輸入命令setnumber并按回車鍵后,使得文圖6- 在文本前添加行vi(vim)中的常用插入文本命附加文本命(“a)光標(biāo)移動命圖6- 光標(biāo)前后位置的約表6- 光標(biāo)移動命字符與塊刪除命除從當(dāng)前光標(biāo)開始到本行末尾一段字符。命令d還需要配合其令組表6- 刪除命令及說添加新行命修改文本命需要配合其令組合來確定刪除文本塊的大小,并切換到插入模式。表6- 修改命令說明及示行合并命文本替換命表6- 替換命令及說“Ikenx“Iienx。撤銷修改命注意:撤銷命令也可以被撤文本命命令實際是把指定的文本內(nèi)容到通用緩沖區(qū)。命令包命令yy前指定行數(shù),例如下面令當(dāng)前行開始的3行文本。命令Y與命令yy類似,可以將當(dāng)前行到通用緩沖區(qū)。如果需要多行,可以在命令Y前指定行數(shù),例如下面令當(dāng)前行開始粘貼文本命重復(fù)執(zhí)行命組合鍵Ctrl+R,也可以在末行模式下輸入命令:redo并按回車鍵,vivi(vim)中的字符與文件查找指定字符命普通與增量查在末行模式下,使用命令:setnoincsearch和:setincsearch可以設(shè)置普替換指定字符表6- address應(yīng)用示區(qū),表6-8中列出了一些查找與替換令及說明。表6- 查找與替換命令說更改大小寫命文件讀入命的文件并不覆蓋緩沖區(qū)中的原文件內(nèi)容,而是入到指定的位置之注意:如果在使用:r命令時沒有指定讀入的文件名,默認(rèn)再次讀入當(dāng)前文文件寫入命定位到指定行命注意:在末行模式下,輸入命令setnumber并按回車鍵后,可以在緩沖區(qū)中顯顯示狀態(tài)信息命圖6- 文件bubbleSort.c的狀態(tài)信保存和退出命令ZZ是在命令模式下使用外,其令都是應(yīng)用在末行模式下的,即表6- 保存與退出命令說窗口操作的快捷窗口垂直拆圖6- 使用vsplit命令將窗口垂直拆圖6- 使用vsplit命令打開一個新窗窗口水平拆圖6- 使用split命令將窗口水平拆圖6- 使用split命令打開一個新窗的顯示效果,可能導(dǎo)致屏幕、變形,甚至出現(xiàn)亂碼。這時只需按表6- 常用的滾動命注意:vi(vim)在退出時不保存標(biāo)交互式在vi(vim)中執(zhí)行 圖6- 在vi(vim)中執(zhí)行 命例如,將S命令ls-al的執(zhí)行結(jié)果插入到當(dāng)前編輯文件的當(dāng)前光標(biāo)執(zhí)行完畢后,如圖6-12所示。可以看到ls-al命令的執(zhí)行結(jié)果入圖6- 將 命令結(jié)果插入到文件圖6- vi(vim)幫助信息主界找的詞包括:insert(插入)、delete(刪除)、opening- (打開窗口)等。例如輸入命令:helpdoc-file-list可以查看幫助文件的列 圖6- 關(guān)于刪除命令的幫助信如61的cie-rgs這示單是個動將光移到些動按t+組可對的。按tl注意:vim是一個自由軟件,但程序的開發(fā)者建議用戶能在使用這些自由軟件的過程中,為烏干達(dá)的孩子們捐一點款,通過輸入命令:hepugnda可以看到有關(guān)捐助的詳細(xì)信息。第7章emacs編輯emacs(editingmacros),即宏編輯器,是在20世紀(jì)60年代的文本編輯器TECO(TextEditorandCorrector)的基礎(chǔ)上發(fā)展起來,并擴(kuò)展了XWindow系統(tǒng)和鼠標(biāo),支持世界上的主要語言。如今emacs正不斷朝著所見即所得(whatyouseeiswhatyouget)字處理程序的方向發(fā)展,致力于為初學(xué)者提供更便捷的服務(wù),已經(jīng)完全了最初的TECO。以及非常完備的文檔,可以在emacs的默認(rèn)啟動屏幕中調(diào)出。emacs概所以emacs被稱為無模式編輯器。emacs令通常需要配合Ctrl鍵或者展令集合,而且這一命令集合可以根據(jù)需要隨時修改和定制,甚至綁定鍵都是當(dāng)前GNUemacs版本下標(biāo)準(zhǔn)的綁定鍵。該版本還可以支持許重寫原來令。Stallman稱此功能為聯(lián)機(jī)擴(kuò)展,但是只有熟練掌握emacs發(fā)展9MJnMCaypihadamn和ytleTp5easpasa 圖7- emacs中文網(wǎng)主啟動和退面令,使用標(biāo)準(zhǔn)的emacs配置來編輯文件example。 圖7- 使用標(biāo)準(zhǔn)配置啟動窗口底部反白顯示的文本條,稱為模式行(modeline)。模式行顯 圖7- 退出將出現(xiàn)一個新文件消息(即Newfile)。如果在啟動emacs時沒有提供文件名,emacs就在幫助模式中打開。例如在X環(huán)境下(RedHatLinux9圖圖7- emacs幫助模圖7- emacs文本模慣,以免在出現(xiàn)系統(tǒng)等情況時造成重大損失?,F(xiàn)如圖7-6所示的框,要求用戶對所做的修改進(jìn)行處理。其中Yes表 ThisBufferNoMore表示保存緩沖區(qū)并退出;SaveAllBuffer表示保存有緩沖區(qū);ViewThisBuffer表示顯示當(dāng)前緩沖區(qū)內(nèi)容圖7- 退出前提示保存修圖7- 確認(rèn)放棄修常用命令表7- emacs鍵示光標(biāo)的移U5Ctrl+F將光標(biāo)向右移動5個字符。它原來所在字的第一個不屬于該字的字符上。命令Ctrl+U4Alt+F將光+U命令,可以定位光標(biāo)的位置。例如命令Ctl+U0Alt+R將把光標(biāo)移文本的輸圖7- emacs的自動換文本的刪字符的查找和替圖7- 查找操圖7- 查找及替緩沖區(qū)和窗水平與垂直拆分Xb,并輸出緩沖區(qū)名稱,可以切換到指定的緩沖區(qū)。與Word中的窗口注意:緩沖區(qū)可以在沒有打開窗口的情況拆分窗口可以使用命令Ctrl+X2,或在X環(huán)境下選擇File菜單中的圖7- 窗口的水平拆使用命令Ctrl+X3可將當(dāng)前窗口拆分成兩個并排的窗口。例如,圖圖7- 窗口的垂直拆圖7- 窗口的水平及垂直拆多個緩沖區(qū)同時進(jìn)行工中也可以使用File菜單中的OpenFile命令。emacs將提示用戶輸入新文件 圖7- 同時編輯多個文圖7- 緩沖區(qū)列緩沖區(qū)中內(nèi)容的上向下移動緩沖區(qū)的內(nèi)容,以使用戶感的部分顯示在窗口中。向后emacs的擴(kuò)展工圖7- Tool菜單中的菜單在emacs的Tool菜單中,選擇DisyCalendar命令可以在當(dāng)前窗口圖7- 在emacs中顯示日執(zhí)行 命在emacs的Tool菜單中,選擇SCommand…命令,然后在回顯區(qū)圖7- 在emacs中執(zhí)行 命圖7- 在emacs中運行游第4篇grep命令、gawk與sed,其第8章grep命grep是一個最初用于UNIX操作系統(tǒng)令行工具。在給出文件列 Expressionand Printouttheline(全面搜索正則表達(dá)式并把行打印出來),它是一種強(qiáng)大的文本搜索工具,是Linux/UNIX中使用最廣泛grep介Xgrp包gr、grpfre。grpfrpgr基本grpgpLxgrpE、使用ge和grp鏡像 中,穩(wěn)定版本的GNUgrepgrep的功能介在這個例子中,grep會返回“.txt”中所有包含seef的文本行。需grep的工作原上例中,grep在test.cpp文件中,搜索模式root。搜索成功后,文件grep與正則表達(dá)grep正則表達(dá)式的元字符表8- grep的正則表達(dá)式元字符基本集及說“ grepgrep的常用參數(shù)選grep命令可以通過一些選定義搜索或搜索結(jié)果的顯示方式。不表8- 常用grep選項及功能說注意:匹配的結(jié)果是包含字符模式的行數(shù),而非字符模式出現(xiàn)的次數(shù)test.c文件中,總共有13行包含msg,而msg總共在該文件中出現(xiàn)了13次gringrep與管道的配合grep命令除了作為其令的輸入,也可以作為一些命令(如ls、grep的退出狀 注意:在TC和CS 中的變量status,以及Bourne和KornS egrep與 egrep處理復(fù)雜字符egr使正表式字的展,夠索復(fù)的則表達(dá)。grp與U grpE項同都夠用表式字的展。表-所為gr使的則達(dá)元符展及說表8- grep的正則表達(dá)式元字符擴(kuò)展集及說為了在不同國家的字符編碼中保持一致,POSIX(ThePortableOperatingSystemInterface)增加了特殊的字符類,如[[:alnum:]]表示小以下幾個例子,grep、egrep和grep-E都將搜索單括號)后緊跟一個 fgrep處理簡單字符使用快速的壓縮算法。$,*|,(,)和\等字符串被fgrep命令按字面意思解釋。一個插入符號就表示插入符號,一個符號就表示符號 第9章gawk與個或者多個文件,或者其令的輸出。awk可用于命令行的簡單操作,也可以寫入大的應(yīng)用程序。因為awk可以數(shù)據(jù),所以它是S 過濾器gawk發(fā)展AlfredVAho、PeterJWeinberger和BrianWKernighan。在l985年的升級使得awk可以處理大型程序。awk有多個版本,包括舊版awk、nawk(newawk,新版本)、gawk(GNU版本)以及POSIXawk等。 awk擴(kuò)展和一些GNU的擴(kuò)展。使用gawk的-version選項可以顯示版hatLinux9中,awk命令實質(zhì)是gawk命令的。文件。在example文件中,從左至右依次為每名學(xué)生的、出生年份、、課程、分?jǐn)?shù)。該文件中的所有空白字符都由單個Tab組成在student文件中,從左至右依次為每名學(xué)生的、學(xué)號、出生日注意:awk(gawk的基礎(chǔ))的作者(AlfredVAho、PeterJWeinberger和BrianWKernighan)為了將awk設(shè)計得易于使用,部分犧牲了awk的執(zhí)行速度。gawk的程序處理模(包括RedHatLinux9)將/bin/awk至/bin/gawk,這樣用戶就可以使用兩者之中的任何一個來運行程序。關(guān)系如下所示。gawk的語法格gawk程序,而不用創(chuàng)建單獨的program-file文件。為了S將gawk表9- gawk常用選項說指定的gawk程序文件。例如,以下是gawk程序文件,用于輸出標(biāo)獨立程序。獨立文件需要具備讀權(quán)限和執(zhí)行權(quán)限,且在程序首行添加#!/bin/gawk-f。該行代碼告訴S使用/bin/gawk-f運行該。gawk注盡管不需要在使用gawk變量之前變量,但用戶可以選擇向這些 序變量(programvariable)。在gawk程序的模式部分和動作部分中均可表9- 變模式的使處理完畢之后要執(zhí)行令。在處理所有輸出之前,gawk執(zhí)行BEGIN逗號akgkgka 注意:通過用分號將多個動作隔開,可以在同一行上包含多個動使用重定向輸字段分隔符輸記錄與字段的介gawk的編程設(shè)函表9- gawk中的函tlth()gko格式化輸出命表9- 數(shù)值轉(zhuǎn)關(guān)系運算表9- 關(guān)系運算 算術(shù)運算表9- gawk的算術(shù)運算流程控制語 nameisnotZhangsan。由于僅有一個命令,同樣沒有必要使用大括號,getline:控制輸注意:當(dāng)給程序gline的數(shù)據(jù)多于一行時,其仍僅處理第一行數(shù)據(jù),如示協(xié)進(jìn)本3.1開始就可以通過協(xié)進(jìn)程方式直接與某個進(jìn)程進(jìn)行信息交換。過網(wǎng)絡(luò)與系統(tǒng)交換數(shù)據(jù)。gawk通過在程序名稱前面添加雙向管道運算符|&來標(biāo)識在運行程的連接,可以從協(xié)進(jìn)程中或?qū)懭霐?shù)據(jù)。網(wǎng)絡(luò)數(shù)據(jù)交置為0。remote-host為主機(jī)的IP地址或。remote-host表示遠(yuǎn)端主機(jī)的地址,remote-port表示遠(yuǎn)端端,可以指定為http或者ftp地址。 文件ample。文件exampl保存在 的/glxt/student中。程序代碼如下gawk的應(yīng)用示第1列(),執(zhí)行結(jié)果如下所示。及出生年份、,執(zhí)行結(jié)果如下所示。流編輯器strem etr)ss如dsed結(jié)束。通過每一行在臨時緩沖區(qū),然后在緩沖區(qū)中操作該行,sed編輯器介從命令行中的program或命令文件program-file中第一條指sed的基本語命令的執(zhí)行結(jié)果。sed是非破壞性的,在使用重定向操作輸出以表9- sed命令的選項說除在令使s命的-選用d序,可編獨立序獨立文需具讀限執(zhí)權(quán),在序行添#nd-f該代告S 使bsd-運該例編寫立序e5除件xpe第行5(碼e5地址的作個地址選擇后續(xù)與之匹配的下一行,該行就是第l組的;如果沒有指令的作表9- sed的常用指本的。ppts注意:除非指定選項-n,否則sed將在標(biāo)準(zhǔn)輸出上輸出所有的行,而無論其是否被選定。當(dāng)在命令行中使用-n選項時,sd僅僅在標(biāo)準(zhǔn)輸出上輸出選定的行,例如那些被p指令選定的行。是”替換為“Thisis”,代碼如下所示(代碼substitutes)。 下一條指文件寫入指文件讀入指sed的控制結(jié)表9- sed的控制結(jié)Pattern區(qū)和Holdsed中有兩個緩沖區(qū),Pattern區(qū)和Hold區(qū)。所有令都是工作在表9- Pattern區(qū)和Hold區(qū)的指指令2,$G不處理輸入的第l行,因為其地址使得指令G只處理第 指令2,$G將Hold區(qū)中的內(nèi)容“這是第五行。\n第三行。\n這是第sed的應(yīng)用示第5篇 編程及編程實第10 其他常用的文本編輯命除了vi(vim)、emacs等功能強(qiáng)大的文本編輯工具外,RedHatLinux9還提供了一些具有針對性的文本處理工具,如wc命令可以計算文本編輯常用命文本的刪除、粘貼、文本的統(tǒng)計、文本屬性間的比較等,這些都離cat命令:標(biāo)準(zhǔn)輸出設(shè)備顯示文本內(nèi)內(nèi)容外,cat還具有由鍵盤數(shù)據(jù)、將多個文件合并的功能。cat命令表10- cat選項說 注意:使用選項-n會對所有行加上行號,即使空行也不例ed命令:行文本編輯表10- 常用的ed命令選

表10- 常用的ed命令選注意:red是更為嚴(yán)格的ed。red只能在當(dāng) 中編輯文件,不支持 令fmt命令:重排文本文表10- 常用的fmt命令選項說gedit命令:圖形化文本編輯表10- 常用的gedit命令選圖10- gedit主窗圖10- gedit首選ed命令:行文本編輯表10- 常用的ed命令選表10- 常用的ed命令選注意:red是更為嚴(yán)格的ed。red只能在當(dāng) 中編輯文件,不支持 令jed命令:jed編輯文本文表10- jed命令的選項說圖10- jed命令主界圖10- jed窗口被拆cut命令:文件剪表10- cut命令的選項說colrm命令:刪除指定表10- 常用的colrm命令選例如,通過命令colrm25,刪除指定的第2列至第5列,當(dāng)從標(biāo)準(zhǔn)輸例如,首先使用命令cattxt,顯示文件的內(nèi)容:第一行為IamaLinuxlearner.,第二行為IamfromHangzhou.。通過命令colrm5<abc,刪除文件的每一行第5列之后的內(nèi)容,輸出的結(jié)果:第一行為Iam,第二行為Iam。通過命令colrm58<abc,刪除文件從第5列到第7列之間的內(nèi)容,輸出的結(jié)果:第一行為IamLinuxlearner.,第二行為Iamomcomm命令:對已排序文件逐行進(jìn)行比表10- comm命令的選項說od命令:格式化輸出文件內(nèi)表10- od命令的選項說joe命令:ASCII文本編輯表10- joe命令的模擬工作環(huán)表10- joe命令的選項說表10- 常用的joe快捷鍵定圖10- joe命令的主界圖10- 定位到文件指定圖10- 顯示幫助快捷信可以看到,該文件以只讀方式打開(Readonly)。圖10- 以只讀方式打開文aspell命令:檢查文件的拼寫錯表10- aspell命令的選項說圖10- aspell命令的執(zhí)行結(jié) 換)、Receall(替換全部)、Add(添加)、Exit(退出)等命令。注意:aspell命令還有一個兼容命令ispell,功能及用法與aspell相似,但不包含-m、-n、-P、-S、-wARG以及-TARG選項col命令:過濾控制字表10- col命令的選項說view命令:只讀方式查看文件內(nèi)表10- view命令的選項說圖10- 使用view命令打開文more命令:分屏顯示文本內(nèi)表10- more命令的選項說表10- 常用的more操作命令及說head命令:部分顯示文本內(nèi)表10- head命令的選項說其他常用的文本命令與技cmp命令:文件屬性比表10- cmp命令的選項說diff命令:文件內(nèi)容比表10- diff命令的選項說 下的同名文件,如果同時指定-r選項,那么兩個 表10- diff命令的輸出結(jié)果說diffstat命令:diff結(jié)果的統(tǒng)計信表10- diffstat命令的選項說patch命令:文件打補(bǔ)表10- patch命令的選項說csplit命令:按指定行數(shù)分割文表10- csplit命令的選項說uniq命令:顯示文件中重復(fù)出現(xiàn)的表10- uniq命令的選項說 pr命令:編排文件格表10- pr命令的選項說r2436apico命令:編輯文字文表10- pico命令的選項說表10- pico命令的快捷鍵定圖10- 使用pico編輯文圖10- 關(guān)閉底部主菜單的編輯窗tail命令:文件的末尾部tail命令與head命令類似,用于文件的內(nèi)容,只是tail命令將讀文件開始部分。如果不給tail命令指定的文件,默認(rèn)將把標(biāo)準(zhǔn)表10- tail命令的選項說tail命令還可以配合其令完成一些更為復(fù)雜的操作,例如對網(wǎng)文件mynet.log是始終更新的,通過tail命令的選項-f,tail會不斷文tac命令:反序顯示文本內(nèi)表10- tac命令的選項說less命令:前后翻閱文本內(nèi)表10- less命令的選項說表10- less常用的操作命 sort命令:文件排表10- sort命令的選項說 indent命令:調(diào)整c代碼文件格表10- indent命令的選項說tr命令:轉(zhuǎn)換文本指定字符表10- tr命令的選項說join命令:連接兩個相同字段文表10- join命令的選項說spell命令:檢查文本拼寫tee命令:標(biāo)準(zhǔn)輸入到標(biāo)準(zhǔn)輸出或文表10- tee命令的選項說wc命令:統(tǒng)計文本信表10- wc命令的選項說第11 變量及相關(guān)操名、設(shè)備或其他類型的數(shù)據(jù),變量為用戶提供了一種、檢索和操作 變量類 環(huán)境變 cd與cd$HOME等價。 ,找到的第一個匹配令或S 但輸入令未結(jié)束時,將顯示輔助提示符。用戶可以在輔助提示符下 注意:用env或set命令可以顯示當(dāng)前環(huán)境變量的名和它們的值,也可用envset命令來設(shè)置環(huán)境用S程序令行中,參數(shù)的位置定義如下所示。 預(yù)定義的特殊變 用戶自定義的變表11-1列出了一些合法和的變量名。表11- 變量名示注意:為了使變量名與命令名相區(qū)別,建議所有的變量名用大寫字母示變量的操創(chuàng)建和設(shè)置變加符號$,格式如下所示。其中等號=前后不可有空格。在S中不需要用顯式的語法來變量(有些高級語言,如C,要求變量必須先再使用)。變量在第進(jìn)行了,用戶可以在任何需要的時候,直接讓S建立一個新變對于包含空格的變量,則整個字符串都要引號括起來,例如變量USAGE的值為usage:[-d:Accordingto/homedirectory],定義變量如下所使用變量時,需要在變量名之前加符號$,表示變量的區(qū)分變量可以看到,顯示的結(jié)果并不是Tomis20th,而僅僅是Tomis。因為變量的賦直接給變量賦值時,變量名前不應(yīng)加符號$,且等號前后不可有空格。使用read命令賦 的執(zhí)行。通過使用read命令,可以方便地接受用戶的輸入并將命令行參數(shù)賦命令的輸出結(jié)果量。這需要在賦值語句中使用反引號(“`”)。反引號表示命令的 文件讀入數(shù)據(jù)實現(xiàn)賦將文件中的一行讀入變量,直到到文件的結(jié)尾。例如,下面程序readfile從文件execfile中文件名,通過od命其第行7heoo結(jié),7dneecle表l循從件xecl讀數(shù),red L表每循讀入變量的輸printf命令:格式化輸出變pnfrtpnff1表11- printf命令的格式說明注意:與C語言不同,Linux中的printf命令的參數(shù)之間不需要逗號分echo命令:直接輸出變一個變量可以理解為包含單個值的容器,而數(shù)組好相反,可以包含多個值。數(shù)組是數(shù)據(jù)值的集合,是一個可以一組或一系列數(shù)值一個數(shù)組可以具有許多個元素,每個元素都有一個值。在數(shù)組數(shù)組的定圖11- 數(shù)組示五”、“”和“”??梢酝ㄟ^索引(下標(biāo))0來“”,通過索引1來“”,通過索引2來“”,以此類推。要數(shù)下面的格式一個數(shù)組并為其賦值。了學(xué)生,而score數(shù)組中保存了對應(yīng)的學(xué)生成績。通過for循環(huán),顯單,通過while循環(huán)將數(shù)組中的逐一輸出,代碼如下所示(代碼數(shù)組的空格)當(dāng)成一個元素到新數(shù)組中,生成的新數(shù)組只有一個元素。組student中的全部元素當(dāng)成一個元素到新數(shù)組all中,如下所示。數(shù)組元素的個 數(shù)組元素的長 expr命let命號,但必須將單個的或者帶有空格的表達(dá)式引號引起來。浮點算術(shù)運位小數(shù)。整行命令echo"scale=2;1972/2"|bc被放在反引號里,表示返回 %.3f",x*y,x/y表示按浮點數(shù)輸出變量x與變量y的乘積且保留兩位小數(shù),{x=5.3;y=4printf2f%.3f"x*y,x/y;}'被放在反引號里,表示返回該行 第12章條件測 測試通常配合控制結(jié)構(gòu)使用,可以根據(jù)不同的來控制程序的執(zhí) 的測試命測試文件屬入、可執(zhí)行,文件是否存在,是否是等。常用的文件測試表達(dá)式格表12- 文件屬性測試表達(dá)測試文件存 - E9fhneei-e6oc測試文件存在且可執(zhí)表達(dá)式為testx$FILENAME,該程序的具體代碼如下所示(測試文件存在且測試文件存在并且是使用符號-d。例如編寫S程序filed,測試變量指定的文件是否是。如果是,則將當(dāng)前切換到該目錄,否則顯示$FILENAMEisnotdirectoryfile。測試表達(dá)式為test-d進(jìn)行檢測。如果是則執(zhí)行第6、7行,切換到該,且執(zhí)行pwd命令顯示當(dāng)前。如果不是,則執(zhí)行第9行,顯示提示信息。該程測試文件存在且是字符設(shè)顯示該文件的信息,否則顯示$FILENAMEisnotacharacterdevicefile。 測試文件存在且是塊設(shè)fileb,測試變量指定的文件是否是塊設(shè)備文件。如果是,則到/dev下,否則顯示$FILENAMEisnotablockdevicefile。測試表達(dá)式為-表12- 數(shù)值測試表達(dá)NotEqual。測試表達(dá)式為test$N1-eq$N2,該程序的具體代碼如下所示不相等測Equal,否則顯示Notequal。測試表達(dá)式為test$N1-ne$N2,該程序的具 $N1notlessthan$N2。測試表達(dá)式為test$N1lt$N2,該程序的具體代碼小于等于測測試變量N1是否小于等于N2。如果小于等于,則顯示$N1lessandequalthan$N2,否則顯示$N1notlessandequalthan$N2。測試表達(dá)式為test變量N1是否大于N2。如果大于,則顯示$N1greatthan$N2$N1notgreatthan$N2。測試表達(dá)式為test$N1-ne$N2,該程序的具體代大于等于測greatandequalthan$N2,否則顯示$N1notgreatandequalthan$N2。測 測試字符表12- 字符串測試表達(dá)變量S1和S2是否相等。如果相等,則顯示equal,否則顯示notequal。測 6和2與2不相等測!=Thelengthofstringisnotzero,否則顯示Thelengthofstringiszero。該程長度為0測字串度0試用-。如寫srger,試變量0helthofsrgis0Teehofsigst-z(tgzr)。長度不為0測字串度為測使-。如編寫程tnoer,0helthoftgstzerheehoftgsern$tnozro測試邏輯運算表12- 邏輯運算邏輯與測于等于50。如果是,則顯示10$X50,否則顯示notbetween10and50。測試表達(dá)式為test$X-ge10-a$Xle50,該程序的具體代碼如下所例,寫序y2測量的是是讀普通件如是則oml ad eoy否顯t aden。試達(dá)tst-rE-a-f$該序具代碼下示代a2邏輯或測Chen。如果是,則顯示YourLastnameisZhangorChen,否則顯示YourLastnameisnotZhangorChen。測試表達(dá)式為$NAME=Zhang-o邏輯非測例如,編寫S程序myd,測試變量FILE是否是。如果不是目錄,則顯示NotDirectory,否則顯示Thisisadirectory。測試表達(dá)式為test!-d$FILE,該程序的具體代碼如下所示(代碼myd)。其中代碼第5行,使用!-d對變量FILE是否是進(jìn)行判斷,!表示取于讀者。第13章 的控制結(jié)if結(jié)if結(jié)構(gòu)的語法最單判形就i。f對的進(jìn)并fi、h、s、iff等語i令表。如果“表達(dá)式”的值為假,則執(zhí)行else之后令表。其中“命令 注意:應(yīng)避免過多地使用elif語句,因為過多地使用elif語句會使程序難于理解、調(diào)試和修改。在遇到需要多處使用分支進(jìn)行判斷的情況下,應(yīng)盡量使用cae語句。if…then…fi示圖13- if…then…fi結(jié)構(gòu)示例流程if…then…else…fi示圖13- if…then…else…fi結(jié)構(gòu)示例流程if…then…elif…示 圖13- if…then…elif…示例流程if嵌選擇。例如編寫一個S程序,對程序令行參數(shù)進(jìn)行判斷,當(dāng)命令行參數(shù)為YES或yes時,顯示輸出YourargumentisYes,當(dāng)命令行參數(shù)為NO或no時,顯示輸出YourargumentisNO!!,如果都不是,則輸出Errorargument!!。程序流程如圖13-4所示。圖13- if…then…fi結(jié)構(gòu)嵌套示例流程注意:由于多層嵌套會降低程序的可讀性,建議用縮進(jìn)格式編寫嵌套結(jié)case結(jié)case結(jié)構(gòu)的語法格分支*)是表示面所有可能的匹配都不滿足時的處理方式,圖13- case結(jié)構(gòu)流程case結(jié)構(gòu)示行判斷,當(dāng)參數(shù)為dir或path時,顯示當(dāng)前的工作,當(dāng)參數(shù)為date或示(代碼caample)。時間的獲取采用了命令date%u,其中+%u表示以數(shù)字方式顯示當(dāng)天是case嵌select結(jié)select結(jié)構(gòu)的語法格把該選項賦值給“變量”,并執(zhí)行select結(jié)構(gòu)體中令。do…done之間是注意:select結(jié)構(gòu)是一種循環(huán),需要使用break命令退出循環(huán),也可

溫馨提示

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

評論

0/150

提交評論