Linux程序設(shè)計(jì)技術(shù)技巧與項(xiàng)目實(shí)踐Linux應(yīng)用技術(shù)_第1頁(yè)
Linux程序設(shè)計(jì)技術(shù)技巧與項(xiàng)目實(shí)踐Linux應(yīng)用技術(shù)_第2頁(yè)
Linux程序設(shè)計(jì)技術(shù)技巧與項(xiàng)目實(shí)踐Linux應(yīng)用技術(shù)_第3頁(yè)
Linux程序設(shè)計(jì)技術(shù)技巧與項(xiàng)目實(shí)踐Linux應(yīng)用技術(shù)_第4頁(yè)
Linux程序設(shè)計(jì)技術(shù)技巧與項(xiàng)目實(shí)踐Linux應(yīng)用技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩51頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Linux程序設(shè)計(jì)技術(shù)技巧與項(xiàng)目實(shí)踐Linux應(yīng)用技術(shù)Linux程序設(shè)計(jì)技術(shù)技巧與項(xiàng)目實(shí)踐Linux應(yīng)用技術(shù)3.1系統(tǒng)管理與維護(hù)技術(shù)系統(tǒng)管理類(lèi)命令主要包括系統(tǒng)的登錄、注銷(xiāo)、關(guān)機(jī)與重啟。Linux系統(tǒng)啟動(dòng)后用戶(hù)需要登錄。用戶(hù)不同,權(quán)限各異。系統(tǒng)管理員擁有最高權(quán)限。在啟動(dòng)linux后屏幕最終會(huì)出現(xiàn)如下的提示:login:root↙password:↙(輸入密碼被隱藏,沒(méi)有顯示,輸入完畢回車(chē)即可)當(dāng)計(jì)算機(jī)出現(xiàn)一個(gè)“#”提示符時(shí),表明用戶(hù)登錄成功!屏幕顯示linux提示符:[root@localhostroot]#_這里有很多信息,如“RedHatLinuxrelease9”表示當(dāng)前系統(tǒng)的名稱(chēng)及版本。“”表示linux系統(tǒng)的核心版本編號(hào)?!癷686”表示該臺(tái)電腦使用的CPU的等級(jí)。下面將學(xué)習(xí)系統(tǒng)管理類(lèi)的基本命令。2/6/202333.1.1系統(tǒng)注銷(xiāo)關(guān)機(jī)或重啟命令1.logout命令logout是登錄的相反操作,即退出系統(tǒng),輸入logout回車(chē)回到登錄界面。2.shutdown命令shutdown命令可關(guān)閉所有程序,根據(jù)需要重啟或關(guān)機(jī)。常用參數(shù)如下:[root@localhostroot]#shutdownnow←立刻關(guān)機(jī)[root@localhostroot]#shutdown10:30在10:30時(shí)關(guān)機(jī)-r參數(shù):設(shè)置關(guān)機(jī)后重新啟動(dòng)。[root@localhostroot]#shutdown-rnow 立刻關(guān)機(jī)并重啟[root@localhostroot]#shutdown-r23:59 指定在23:59時(shí)重啟動(dòng)3.reboot命令reboot命令是用來(lái)重新啟動(dòng)系統(tǒng)的。常用的參數(shù)如下:-f參數(shù):不以正常程序運(yùn)行關(guān)機(jī),直接關(guān)閉系統(tǒng)并重啟計(jì)算機(jī)。reboot命令一般單獨(dú)運(yùn)行用來(lái)重啟計(jì)算機(jī)。2/6/202343.1.2顯示登錄用戶(hù)信息命令1.who命令該命令用于查看當(dāng)前在線(xiàn)的用戶(hù)情況,也可用于系統(tǒng)管理員監(jiān)視已登錄用戶(hù)的所作所為。單獨(dú)使用who命令將顯示三項(xiàng)內(nèi)容,即loginname,terminalline和登錄到系統(tǒng)的時(shí)間?!纠?.3查看系統(tǒng)上的所有用戶(hù)。$whoroottty1Mar1713:49foxytty2Mar1713:49bbsttyp0Mar1713:49()【例】3.4查看登錄用戶(hù)的詳細(xì)情況$who-uH2/6/202353.1.3賬號(hào)管理命令1.賬號(hào)類(lèi)型Linux賬號(hào)分系統(tǒng)管理員root與一般用戶(hù)兩類(lèi)。2.創(chuàng)建用戶(hù)賬號(hào)使用useradd命令創(chuàng)建賬號(hào):[root@freeroot]#useraddcindy←創(chuàng)建cindy賬號(hào)[root@freeroot]#passwdcindy←設(shè)置cindy賬號(hào)的口令Changingpasswordforusercindy。Newpassword:←輸入口令Retypenewpassword←再輸入一次Passwd:allauthentication←設(shè)置成功2/6/20236管理員可以根據(jù)用戶(hù)的賬號(hào)創(chuàng)建一份數(shù)據(jù)庫(kù),在新增用戶(hù)時(shí),先查詢(xún)賬號(hào)是否存在。也可以檢查/etc目錄下的passwd文件,其中含有系統(tǒng)所有用戶(hù)的賬號(hào),或者執(zhí)行finger“賬號(hào)”命令,查看該賬號(hào)是否存在。3.管理員賬號(hào)系統(tǒng)默認(rèn)創(chuàng)建的系統(tǒng)管理員是root賬號(hào),其安全非常重要,強(qiáng)烈建議為root賬號(hào)設(shè)置一個(gè)難以破譯的口令來(lái)確保系統(tǒng)安全。系統(tǒng)管理員除設(shè)置口令外,建議先創(chuàng)建一個(gè)一般用戶(hù)賬號(hào)供個(gè)人日常使用,以避免操作失誤影響整個(gè)系統(tǒng)穩(wěn)定性。只在系統(tǒng)維護(hù)時(shí)才用root賬號(hào)登錄。4.只允許root登錄的維護(hù)模式如果希望計(jì)算機(jī)除root賬號(hào)外,其他賬號(hào)都不允許登錄,可在/etc目錄中執(zhí)行touchnologin命令,產(chǎn)生一個(gè)文件名為nologin的文件,當(dāng)其他用戶(hù)請(qǐng)求登錄時(shí),系統(tǒng)只要發(fā)現(xiàn)此文件,就會(huì)禁止其他用戶(hù)登錄。2/6/202375.停用與刪除用戶(hù)賬號(hào)停用賬號(hào)是指暫時(shí)不允許用戶(hù)登錄系統(tǒng),但仍保留其數(shù)據(jù)。通過(guò)編輯/etc/passwd文件,把停止使用的賬號(hào)標(biāo)注起來(lái):cassia:x:502:502::/home/cassia:/bin/bash#tommy:x:600:100::/home/tommy/bin/bash←在賬號(hào)最前面加上“?!眲h除賬號(hào)是指確定用戶(hù)不再使用本系統(tǒng),或拒絕其使用時(shí),將該賬號(hào)完全刪除。方法一是使用userdel命令很方便地將用戶(hù)刪除。[root@freeroot]#userdel-rtommy加上參數(shù)-r在刪除賬號(hào)時(shí),將該賬號(hào)的用戶(hù)目錄及郵件文件都刪除。在linux系統(tǒng)中,用戶(hù)可以自行設(shè)置計(jì)時(shí)器,時(shí)間一到就自動(dòng)執(zhí)行某些命令。這些計(jì)時(shí)器執(zhí)行的命令,會(huì)影響系統(tǒng)的安全與保密,因此必須特別注意用戶(hù)留下來(lái)的計(jì)時(shí)器。2/6/202383.1.4修改密碼的passwd命令passwd(password)命令可讓用戶(hù)變更密碼。【例】3.6[felix@hellofelix]$passwdChangingpasswordforuserfelixChangingpasswordforfelix(current)Linuxpassword:←輸入原密碼Newpassword:←輸入新密碼Retypenewpassword←在此輸入新密碼passwd:allauthenticationtokensupdatedsuccessfully密碼修改成功2/6/202393.1.5顯示與時(shí)間設(shè)置命令date命令可以顯示當(dāng)前日期時(shí)間,CST為中部標(biāo)準(zhǔn)時(shí)間?!纠?.7[felix@hellorony]$date$-9月810:00:00CST2006clock命令也可以顯示出系統(tǒng)當(dāng)前的日期與時(shí)間[root@freeroot]#clock公元2006年9月8日(周五)10時(shí)00分00秒0.112604seconds如果系統(tǒng)時(shí)間不正確想更改,用date命令設(shè)置時(shí)間。用root賬號(hào)操作:[root@freeroot]#date09091200←將時(shí)間設(shè)定為9月9日12點(diǎn)00分當(dāng)用戶(hù)不知道標(biāo)準(zhǔn)時(shí)間時(shí),用校對(duì)服務(wù)器提供的標(biāo)準(zhǔn)時(shí)間,可執(zhí)行ntpdate命令,將系統(tǒng)時(shí)間設(shè)成與校時(shí)服務(wù)器一致:[root@freeroot]#ntpdate←微軟校時(shí)服務(wù)器校時(shí)【例】3.8[root@freeroot]#clock–w2/6/2023103.1.6磁盤(pán)空間管理命令Quota的功能就是限制用戶(hù)的磁盤(pán)空間。在系統(tǒng)尚未設(shè)置磁盤(pán)空間時(shí),可用執(zhí)行quota命令檢查自己的磁盤(pán)使用空間,若出現(xiàn)下列信息,則表示沒(méi)有限制:[lambert@freelambert]$quotaDiskquotasforuserlambert(501):none←無(wú)限制表示lambert可自由使用磁盤(pán)空間,可能造成其他用戶(hù)無(wú)法儲(chǔ)存數(shù)據(jù)。2/6/2023111.查看磁盤(pán)使用情況的du命令du的英文原義為diskusage,含義為顯示磁盤(pán)空間的使用情況?!纠?.9列出/etc目錄所占的磁盤(pán)空間,不列文件所占空間。$du輸出清單中的第一列是以塊為單位計(jì)的磁盤(pán)空間容量,第二列列出目錄中使用這些空間的目錄名稱(chēng)。不帶選項(xiàng)將列出所有目錄容量。若只要總數(shù)時(shí),直接在du命令中加-s選項(xiàng):$du–s/etc699 /etc【例】3.10列出所有文件目錄占用空間且以字節(jié)為單位計(jì)算大小。$du-ab2/6/2023122.編輯fstab文件分配用戶(hù)磁盤(pán)空間用文本編輯程序打開(kāi)/etc/fstab文件,編輯ext3文件系統(tǒng)原始分區(qū)設(shè)置來(lái)創(chuàng)建用戶(hù)與組的磁盤(pán)空間限制:LABEL=//ext3defaults,usrquota,grpquota11←ext3文件系統(tǒng)分區(qū)倘若只要限制用戶(hù)或組的磁盤(pán)空間,則只需要加上usrquota或grpquota其中一項(xiàng),保存退出后重新啟動(dòng)。對(duì)fstab文件中各字段意義執(zhí)行manfstab和manmount查看詳細(xì)信息。修改fstab后,在根目錄下執(zhí)行touchaquota.user與touchaquota.group,自行創(chuàng)建aquota.user及aquota.group,接著執(zhí)行quotacheck命令設(shè)置:[root@freeroot]#quotacheck-ugavmcQuotacheck:Scanning/dec/hda1[/]doneQuotacheck:Checked10064directoriesand202332files用于quotacheck命令的參數(shù)請(qǐng)參考其man手冊(cè)的內(nèi)容。2/6/2023133.執(zhí)行quotaoff要取消磁盤(pán)空間限制,可以執(zhí)行quotaoff-avug命令?!纠?.11[root@freeroot]#quotaoff-avug/dec/hda1[/]:groupquotasturnedoff/dec/hda1[/]:userquotasturnedof4.檢查是否超過(guò)磁盤(pán)限制一般的用戶(hù)執(zhí)行quota-v命令,可知自己是否超過(guò)限制:[lambert@freelambert]#quota–vDiskquotasforuserlambert(501):2/6/2023143.2文件與目錄操作技術(shù)操作系統(tǒng)的執(zhí)行效率、穩(wěn)定性以及可靠度與文件系統(tǒng)的優(yōu)劣息息相關(guān)。1.系統(tǒng)+目錄認(rèn)識(shí)Linux系統(tǒng)有很多默認(rèn)目錄,依照用途不同而放置特定的文件。參見(jiàn)。2.文件屬性Linux文件或目錄屬性主要包括:文件或目錄的節(jié)點(diǎn)、種類(lèi)、權(quán)限模式、鏈接數(shù)量、歸屬的用戶(hù)和用戶(hù)組、最近訪問(wèn)或修改的時(shí)間等內(nèi)容。[root@localhost~]#ls-lih總計(jì)104K2408949-rwxr-xr-x1rootroot704-2112:47lsfile.sh2408830drwxr-xr-x2rootroot2408260drwxr-xr-x2rootroot4.0K04-2122:15mydir上面的一行含有九個(gè)字段很多信息。3.2.1文件系統(tǒng)認(rèn)識(shí)與權(quán)限設(shè)置2/6/202315第一字段inode,第二字段文件種類(lèi)和權(quán)限,第三字段是硬鏈接個(gè)數(shù),第四字段屬主,第五字段歸屬組,第六字段文件或目錄的大小,第七字段和第八字段是最后訪問(wèn)或修改時(shí)間,第九字段是文件名或目錄名。文件有三種不同的用戶(hù)級(jí)別,即文件擁有者u、所屬組g和其他用戶(hù)o。第一個(gè)字符顯示文件類(lèi)型,“-”表示普通文件,“d”表示目錄文件,“l(fā)”表示鏈接文件,“c”表示字符設(shè)備,“b”表示塊設(shè)備,“p”表示命名管道比如FIFO文件,“f”表示堆棧文件,“s”表示系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)。第一個(gè)字符之后的3個(gè)三位字符組分別表示文件擁有者u、文件用戶(hù)組g和其他用戶(hù)o對(duì)該文件的權(quán)限。若顯示“-”字符則表示沒(méi)有權(quán)限。一般權(quán)限是指r(read讀取)、w(write寫(xiě)入)和x(execute執(zhí)行)。特殊權(quán)限是指該用戶(hù)擁有一些特權(quán),因而用戶(hù)若無(wú)特殊需求,不應(yīng)該去打開(kāi)這些權(quán)限,避免安全方面出現(xiàn)嚴(yán)重漏洞,讓黑客入侵。2/6/2023163.用戶(hù)與組的權(quán)限關(guān)系假如用戶(hù)lambert屬于cassia組,其用戶(hù)主目錄權(quán)限設(shè)為rwxr-x--x,表示cassia組用戶(hù)可以讀取和進(jìn)入此目錄,其他用戶(hù)能進(jìn)入但看不到內(nèi)容。因而屬于其他組的用戶(hù)saber,無(wú)法讀取lambert目錄中文件。但若將/etc目錄下的group文件內(nèi)容修改,此時(shí)saber也加入了該組?!璫assia:x:501:lambert,saber←將saber賬號(hào)加入cassia組4.檢查inode編號(hào)鏈接文件實(shí)際上是指向磁盤(pán)中相同數(shù)據(jù),因?yàn)槊總€(gè)文件僅有一個(gè)inode,所以它們的inode編號(hào)一樣。執(zhí)行l(wèi)s–i命令查看文件的inode編號(hào):[lambert@freelambert]$ls–iLambertLink10423LambertLink[lambert@freelambert]$ls–i/tmp/var/ForEveryOne10423/var/tmp/ForEveryOne上面兩文件的inode編號(hào)相同,但復(fù)制的兩個(gè)文件,inode編號(hào)則不同。2/6/2023173.2.2列表與分屏顯示命令1.列表顯示命令lsls(list)命令用于顯示目錄內(nèi)容。使用時(shí)有幾種顏色,藍(lán)色表示目錄,綠色可執(zhí)行文件,紅色壓縮文件,淺藍(lán)色鏈接文件,加粗黑色符號(hào)鏈接,灰色其它格式文件。ls最常使用的是ls-l。【例】3.12顯示當(dāng)前目錄的內(nèi)容。[yuyouming@freefelix]$ls【例】3.13顯示當(dāng)前目錄下所有文件內(nèi)容。[felix@hellofelix]$ls-a【例】3.14顯示文件大小排序。[felix@hellofelix]$ls-s-S2.分屏顯示命令more當(dāng)用ls查看文件列表時(shí),若文件太多則配合more使用,讓畫(huà)面在顯示滿(mǎn)頁(yè)時(shí)暫停,按空格鍵繼續(xù)顯示下一個(gè)畫(huà)面,或按Q鍵停止顯示。【例】3.16[felix@hellobin]$ls–almore單獨(dú)使用more命令時(shí),可用來(lái)顯示文本文件的內(nèi)容。【例】3.17[felix@hellofelix]$moredata.txt2/6/2023183.2.3切換創(chuàng)建與刪除目錄的命令1.切換目錄命令cdcd(changedirectory)讓用戶(hù)切換到當(dāng)前目錄。[felix@hellohome]$cdfelix切換到當(dāng)前目錄下的felix子目錄[felix@hellohome]$cd/←切換到系統(tǒng)根目錄[felix@hellofelix]$cd/usr/bin←切換到/usr/bin目錄2.創(chuàng)建目錄命令mkdir(makedirectory)可創(chuàng)建子目錄[felix@hellofelix]$mkdirtool在目錄創(chuàng)建時(shí)可設(shè)置目錄權(quán)限。參數(shù)-m,創(chuàng)建目錄mydir讓所有人都有讀寫(xiě)執(zhí)行權(quán)rwx,可以使用以下命令:$mkdir-m777mydir【例】3.18$mkdir('C:\MyFolder');//在C盤(pán)根目錄創(chuàng)建MyFolder文件夾。3.刪除目錄命令rmdir(removedirectory)命令刪除“空”的子目錄【例】3.19[felix@hellofelix]$rmdirtool←刪除tool目錄2/6/202319文件復(fù)制刪除與合并命令1.文件復(fù)制命令cpcp(copy)命令將文件從一處復(fù)制到另一處。在使用cp命令時(shí),需要指定原始文件名與目的文件名或目錄?!纠?.20[felix@hellofelix]$cpdata1.txtdata2.txt←將data1.txt復(fù)制成data2.txt[felix@hellofelix]$cpdata3.txt/tmp/data←將data3復(fù)制到/tmp/data下。顯示復(fù)制過(guò)程:加入-v參數(shù)可顯示命令執(zhí)行過(guò)程。[felix@hellofelix]$cp–vzip.txtzip3.txt←以-v顯示復(fù)制過(guò)程遞歸復(fù)制:加入-R可同時(shí)復(fù)制目錄下的所有文件及子目錄。[felix@hellofelix]$cp–v–R*backup←將所有文件(含子目錄文件)復(fù)制到backup目錄。2/6/2023202.文件刪除命令rmrm(remove)命令可以刪除文件或目錄。[felix@hellofelix]$rmmyfile←刪除指定的文件[felix@hellofelix]$rm*←刪除當(dāng)前目錄中的所有文件使用-f參數(shù)時(shí),rm命令會(huì)直接刪除文件不詢(xún)問(wèn),如:[felix@hellofelix]$rm–f*.txt←強(qiáng)制刪除文件遞回刪除-r非常有用,可同時(shí)刪除指定目錄下的所有文件與子目錄?!纠?.22[felix@hellofelix]$rm–r*←刪除所有文件(含當(dāng)前目錄所有文件,所有子目錄和子目錄下的文件)若用-rf參數(shù)將直接刪除該目錄中所有的文件及子目錄,不再詢(xún)問(wèn)。要顯示刪除過(guò)程:使用-v參數(shù)?!纠?.23[felix@hellofelix]$rm–rftmp[felix@hellofelix]$rm–v2/6/2023213.文件連接命令catcat(concatenate)命令可以顯示文件的內(nèi)容,經(jīng)常和more搭配使用,或是將數(shù)個(gè)文件合并成一個(gè)文件?!纠?.24逐頁(yè)顯示文件preface.txt的內(nèi)容:[felix@hellofelix]$catpreface.txtmore將preface.txt附加到outline.txt文件之后:[felix@hellofelix]$catpreface.txt>>outline.txt將new.txt和info.txt合并成readme.txt文件:[felix@hellofelix]$catnew.txtinfo.txt>readme.txt2/6/2023223.2.5文件與目錄的移動(dòng)與更名和路徑顯示命令1.文件(目錄)移動(dòng)或更名的命令mvmv(move)可將文件及目錄移到另一目錄或更換文件及目錄名稱(chēng)?!纠?.25[felix@hellobackup]$mva.txt..將a.txt文件移到上層目錄[felix@hellobackup]$mvz1.txtz3.txt將z1.txt改名成z3.txt[felix@hellobackup]$cd..←切換到上一層目錄[felix@hellofelix]$mvbackup..←backup目錄上移一層若要把文件temp轉(zhuǎn)移到temp.moved,可以把文件temp重命名為temp.moved。$mvtemptemp.moved$mvtempbackups/temp.old下面的命令是強(qiáng)制轉(zhuǎn)移操作,忽略了文件temp.moved的操作權(quán)限。$mv–ftemptemp.moved2/6/202323若要把目錄下的所有文件和子目錄(不包含隱藏文件)轉(zhuǎn)移到目錄dir2下,但dir2不是目錄或不存在,或沒(méi)有寫(xiě)許可和執(zhí)行權(quán)限,這個(gè)命令將會(huì)失敗,顯示屏上會(huì)打印出錯(cuò)信息。$mvdir1/*dir22.顯示當(dāng)前所在目錄的pwd命令pwd(printworkingdirectory)命令可顯示用戶(hù)當(dāng)前所在目錄。[felix@hellofelix]$pwd/home/felix←當(dāng)前所在目錄為“/home/felix”2/6/2023243.2.6重定向與管道命令重定向(redirect)將某命令結(jié)果輸出到文件中,它有兩種形式:“>”和“>>”。前者將結(jié)果輸出到文件,文件原有內(nèi)容被刪除,后者將結(jié)果附加到原文件后面。[felix@hellofelix]$ls–a>dir.txt←將ls-a命令執(zhí)行結(jié)果輸出到dir.txt。[felix@hellofelix]$catdata1.txt>>data2.txt←將data1.txt內(nèi)容附加到data2.txt文件之后。管道(pipe)命令的符號(hào)是“|”,可將某命令的結(jié)果輸出給另一命令?!纠?.27將ls命令的輸出結(jié)果傳給grep命令過(guò)濾。[felix@helloetc]$lsgerpconf←搜索并顯示ls命令運(yùn)行結(jié)果中包含有“conf”字符串??梢杂脃es命令重復(fù)輸出“y”字符特性,將結(jié)果傳給rm,避免重復(fù)輸入“y”:[felix@hellofelix]$yesrm-rmydir2/6/2023253.2.7改變文件訪問(wèn)權(quán)限與歸屬的命令1.改變文件訪問(wèn)權(quán)限命令chmodchmod改變文件屬性。只有文件屬主或超級(jí)用戶(hù)才能使用。語(yǔ)法格式為:chmod[-cfRv][--help][--version][數(shù)字代號(hào)][文件或目錄...]多數(shù)用3位八進(jìn)制數(shù)字形式表示權(quán)限,第1位指定屬主權(quán)限,第2位指定組權(quán)限,第3位指定其他用戶(hù)權(quán)限,每位通過(guò)4(讀)、2(寫(xiě))、1(執(zhí)行)三種數(shù)值的和來(lái)確定權(quán)限。如6(4+2)代表讀寫(xiě)權(quán),7(4+2+1)讀寫(xiě)執(zhí)行權(quán)。還可以設(shè)置第4位,它位于3位權(quán)限序列之前,取值為4,2,1,其中4是執(zhí)行時(shí)設(shè)置用戶(hù)ID,用于授權(quán)給基于文件屬主的進(jìn)程,而非創(chuàng)建此進(jìn)程的用戶(hù)。2是設(shè)置用戶(hù)組ID,授權(quán)基于文件所在組的進(jìn)程,而非創(chuàng)建此進(jìn)程的用戶(hù)。1是設(shè)置粘著位。$chmodu+xfile//給file的屬主增加執(zhí)行權(quán)限$chmod751file//給file的屬主分配讀、寫(xiě)、執(zhí)行(7)權(quán)限,給file的所在組分配讀、執(zhí)行(5)的權(quán)限,給其他用戶(hù)分配執(zhí)行(1)的權(quán)限。$chmod444file//同上例$chmoda-wx,a+r//同上例$chmod-Ru+rdirectory//遞歸給directory目錄下所有文件和子目錄屬主分配讀權(quán)限2/6/2023262.改變文件歸屬的chown命令利用chown可改變文件的所有者,只有系統(tǒng)管理者root使用,一般用戶(hù)沒(méi)有權(quán)限改變別人的文件所有者,也無(wú)權(quán)把自己的文件所有者改為別人。常用參數(shù)選擇如下:-c,--changes:只輸出被改變文件的信息-R,--recursive:遞歸遍歷子目錄,把修改用到目錄下所有文件和目錄--reference=filename:把屬主改變成filename文件的屬主-v,--verbose:輸出詳細(xì)信息【例】3.29$chownroottest//把test文件的屬主改進(jìn)root$chown-Rroottest_directory//把test_directory下文件屬主改成root$chown--dereferenceroottest_link//把test_link原文件屬主改成root$chown--no-dereferenceroottest_link//把test_link的鏈接文件屬主改成root,原文件屬主不變2/6/2023273.2.8文件定位搜索與查找命令1.文件定位的命令locatelocate命令可用來(lái)搜索包含指定條件字符串的文件或目錄。如:[felix@hellofelix]$locatezh_CN列出所有含zh_CN串的文件和目錄。由于locate命令是從系統(tǒng)中保存文件及目錄名稱(chēng)的數(shù)據(jù)庫(kù)中搜索文件,有時(shí)要用root身份運(yùn)行updatedb命令更新數(shù)據(jù)庫(kù)后再查找。2.文件查找命令findfind命令用于在目錄中搜索文件并執(zhí)行指定的操作。find命令的GNU版本功能非常強(qiáng)大靈活。find命令的基本格式是:$findstartdirectoryoptionsmatchcriteria[actionoptions]如果知道文件名或文件名一部分,但不知道它的位置,可以直接查找:$find.-name'test*'./test./jdevhome/mywork/EmpWS/EmpBC4J/test2/6/202328Linux中不需要在末尾添加-print操作。目錄起始位置的點(diǎn)(.)使find在當(dāng)前目錄中搜索。兩個(gè)點(diǎn)(..)則在父目錄中開(kāi)始搜索。可以使用通配符,但要用單引號(hào)括起來(lái)。$find.-name'test*'-print./test.out./test2.out顯示擁有.out擴(kuò)展名的一系列文件:$find/home-name'*.out'不是超級(jí)用戶(hù)運(yùn)行此命令,會(huì)顯示許多“permissiondenied”錯(cuò)誤。將當(dāng)前目錄及其子目錄下所有文件名類(lèi)型是c文件的列出來(lái)。#find.-name"*.c"http://將當(dāng)前目錄及其子目錄中所有一般文件列出。#find.-ftypef將當(dāng)前目錄及其子目錄下所有最近20分鐘內(nèi)更新過(guò)的文件列出#find.-ctime-20find.-name"*"-execgrepxxx{}-print|more其中xxx為要找的字符串2/6/202329【例】3.31find命令常見(jiàn)的使用方法查找名為conf的目錄#find/目錄-typed-nameconf查找文件權(quán)限為755的文件#find/目錄-perm755-print查找文件屬主為kt的文件#find/目錄-userkt-print查找group為kt的文件#find/目錄-groupkt-print查找名為file的文件#find/目錄-namefile查找大小為0的文件#find/目錄-size0查找屬主帳戶(hù)已經(jīng)被刪除的文件:#find/目錄-nouser-print按更改時(shí)間查找文件#find/目錄-mtime-5-print單位5,查找更改時(shí)間5日內(nèi)文件查找更改時(shí)間在3日以?xún)?nèi)的文件#find/目錄-mtime+3-print不僅查詢(xún)根目錄,而且查詢(xún)子目錄#find/目錄-namefile-depth-print根據(jù)inode號(hào)來(lái)取得硬鏈接#find/目錄-inuminode號(hào)2/6/2023303.搜索字符串命令grepgrep是globalsearchregularexpression(RE)andprintouttheline的縮寫(xiě),即全面搜索正則表達(dá)式與打印行,是一個(gè)強(qiáng)大的文本搜索工具,能使用正則表達(dá)式搜索文本,并打印出所有匹配的行。語(yǔ)法:grep[-abcEFGhHilLnqrsvVwxy][-A<顯示列數(shù)>][-B<顯示列數(shù)>][-C<顯示列數(shù)>][-d<進(jìn)行動(dòng)作>][-e<范本樣式>][-f<范本文件>][--help][范本樣式][文件或目錄...]grep的工作方式是在一個(gè)或多個(gè)文件中搜索字符串模板。[felix@helloetc]$greptext*.conf←搜索當(dāng)前目錄中擴(kuò)展名為.conf且包含“text”字符串的文件。grep:amd.conf:←拒絕不符權(quán)限的操作grep:diskcheck.conf:←拒絕不符權(quán)限的操作grep:grub.conf←拒絕不符權(quán)限的操作若使用一般用戶(hù)權(quán)限運(yùn)行,上例的輸出結(jié)果會(huì)包含很多拒絕不符權(quán)限的操作之類(lèi)的錯(cuò)誤信息,可使用-s參數(shù)消除。[felix@helloetc]$grep-stext*.conf2/6/2023313.3前后臺(tái)程序的運(yùn)行與狀態(tài)切換將程序放到后臺(tái)運(yùn)行的最簡(jiǎn)單方法就是在命令的最后加上“&”。如:[felix@helloroot]#updatedb&←在后臺(tái)執(zhí)行l(wèi)ocate數(shù)據(jù)庫(kù)的更新。[felix@helloroot]#bg←將更新操作放到后臺(tái)運(yùn)行。當(dāng)用戶(hù)已有程序在后臺(tái)運(yùn)行時(shí),用fg命令將它從后臺(tái)移到前臺(tái)運(yùn)行:[felix@helloroot]#fg←放到前臺(tái)執(zhí)行的命令會(huì)顯示出來(lái)在退出后讓程序繼續(xù)運(yùn)行的nohup命令:[felix@hellorony]$nohupmyserver&此時(shí)用戶(hù)可退出,當(dāng)再次登錄時(shí)用ps-aux可看到程序仍在后臺(tái)運(yùn)行。2/6/2023323.4任務(wù)調(diào)度技術(shù)計(jì)算機(jī)系統(tǒng)需要定期進(jìn)行自身的維護(hù),如磁盤(pán)清理、系統(tǒng)數(shù)據(jù)備份、檢查遠(yuǎn)程服務(wù)器郵件等。對(duì)于重復(fù)性的工作,不需要每次都要用戶(hù)親自運(yùn)行維護(hù)程序,可以利用任務(wù)調(diào)度命令,指定系統(tǒng)定期運(yùn)行維護(hù)程序,輕松完成自我調(diào)整和診斷的任務(wù)。3.4.1系統(tǒng)工作調(diào)度/etc/crontab/文件是linux系統(tǒng)任務(wù)調(diào)度設(shè)置文件,默認(rèn)內(nèi)容如下:SHELL=/bin/bash←指定執(zhí)行任務(wù)調(diào)度工作時(shí)使用的shellPATH=/shin:/bin:/usr/sbin:/usr/bin←指定命令搜索的路徑MAILTO=root←指定將輸出結(jié)果給root用戶(hù)HOME=/←指定根目錄2/6/2023333.4.2用戶(hù)工作任務(wù)調(diào)度與刪除crond是定期執(zhí)行程序命令,每分鐘定期檢查,有任務(wù)則自動(dòng)執(zhí)行。MinuteHourDayMonthDayOfWeekCommand其中的Command每次必須指定,其它字段根據(jù)需要決定有無(wú)。一般用戶(hù)用crintab命令自行設(shè)置定期執(zhí)行的工作。每個(gè)用戶(hù)還可以執(zhí)行crontab–e來(lái)編輯任務(wù)調(diào)度設(shè)置文件,加入定期執(zhí)行的工作。【例】3.34為felix用戶(hù)的任務(wù)調(diào)度設(shè)置文件。[felix@hellotony]$crontab–e執(zhí)行上述命令后,即會(huì)進(jìn)入vi編輯器編輯任務(wù)調(diào)度的工作?!纠?.35如果不想再定期執(zhí)行任務(wù)調(diào)動(dòng)中的工作,則執(zhí)行crontab-r命令刪除所有任務(wù)調(diào)度工作。[felix@hellorony]$crontab–r←刪除任務(wù)調(diào)度中的工作[felix@hellorony]$crontab-1←再查看一次任務(wù)調(diào)度中的工作nocrontabforfelix←已經(jīng)沒(méi)有任何任務(wù)調(diào)度工作2/6/2023343.5文件的打包與壓縮解壓縮tar命令位于/bin目錄,能將用戶(hù)指定文件或目錄打包,但不壓縮。常用壓縮方式是用tar將許多文件打包,再以gzip等壓縮文件。tar的常用參數(shù)有:-c創(chuàng)建新tar文件;-v顯示運(yùn)作信息;-f指定文件名;-z調(diào)用gzip壓縮;-j調(diào)用bzip2壓縮命令壓縮;-t參看壓縮文件內(nèi)容;-x解開(kāi)tar文件。[felix@hellodata]#tarcvfdata.tar*←將目錄下所有文件打包成data.tar[felix@hellodata]#tarcvf*←將文件打包成再壓縮[felix@hellodata]#tartvfdata.tar*←查看data.tar中包括了哪些文件[felix@hellodata]#tarxvfdata.tar*←將data.tar解開(kāi)tar本身不壓縮,但生成tar后可用其它命令壓縮。如-z參數(shù)可解.tar.gz文件:[felix@hellodata]#tarzxvf←將文件解開(kāi)至當(dāng)前目錄下。使用-j參數(shù)解開(kāi)tar.bz2壓縮文件:[felix@hellodata]#tar-jxvfLinux-2.4.20tar.bz2←文件解開(kāi)至當(dāng)前目錄使用-Z參數(shù)指定以compress命令壓縮。[felix@hellodata]#tar–cZvf*.tif←將該目錄下所有后綴為.tif文件打包并壓縮成.tar.Z文件。2/6/2023353.6進(jìn)程管理技術(shù)ps命令是最基本也是功能非常強(qiáng)大的進(jìn)程查看命令。通過(guò)ps可以獲取進(jìn)程的大部分信息,可以確定進(jìn)程是否結(jié)束、僵死和占用過(guò)多資源等等。ps命令最常用的用于監(jiān)控后臺(tái)進(jìn)程工作情況,因?yàn)楹笈_(tái)進(jìn)程不和屏幕鍵盤(pán)設(shè)備通信,如果需要檢測(cè)其情況,只能使用ps命令。ps命令選項(xiàng)有:-e顯示所有進(jìn)程;-f全格式;-h不顯示標(biāo)題;-l長(zhǎng)格式;-w寬輸出;a顯示終端上的所有進(jìn)程,包括其他用戶(hù)的進(jìn)程;r只顯示正在運(yùn)行的進(jìn)程;x顯示沒(méi)有控制終端的進(jìn)程。一般用戶(hù)只要掌握u、a、x三個(gè)最常用的參數(shù)?!纠?.37以root身份登錄系統(tǒng),查看當(dāng)前進(jìn)程狀況$psPIDTTYTIMECOMMAND5800ttyp000:00:00bash5835ttyp000:00:00ps可以看到,顯示項(xiàng)目共有四項(xiàng),依次為進(jìn)程ID:PID、終端名稱(chēng)TTY、進(jìn)程執(zhí)行時(shí)間TIME、命令行輸入COMMAND。3.6.1命令ps用法2/6/202336使用u選項(xiàng)來(lái)查看進(jìn)程所有者及其它詳細(xì)信息,如下所示:$psuUSERPID%CPU%MEMUSZRSSTTYSTATSTARTTIMECOMMANDtest58000.00.418921040ttyp0SNov270:00-bashtest58360.00.32528856ttyp0RNov270:00psu在bash進(jìn)程前面有條橫線(xiàn),意味著該進(jìn)程是用戶(hù)的登錄shell。還可以看到%CPU、%MEM兩個(gè)選項(xiàng)。前者指該進(jìn)程占用的CPU時(shí)間和總時(shí)間的百分比;后者指該進(jìn)程占用的內(nèi)存和總內(nèi)存的百分比。在這種情況下看到了所有控制終端的進(jìn)程;但對(duì)于沒(méi)有控制終端的進(jìn)程是觀察不到的,需要用x選項(xiàng)來(lái)觀察所有進(jìn)程的情況。2/6/202337【例】3.38用x選項(xiàng)觀察所有進(jìn)程的情況$psxPIDTTYSTATTIMECOMMAND5800ttyp0S0:00-bash5813ttyp1S0:00-bash5921ttyp0S0:00manps5922ttyp0S0:00sh-c/usr/bin/gunzip-c/var/catman/cat1/ps.1.gz|/5923ttyp0S0:00/usr/bin/gunzip5924ttyp0S0:00/usr/bin/less-is5941ttyp1R0:00psx此時(shí)我們發(fā)現(xiàn)多了很多進(jìn)程。這些后來(lái)者就是沒(méi)有控制終端的進(jìn)程。前面看到的所有進(jìn)程都是用戶(hù)使用的進(jìn)程,還有許多其他用戶(hù)的進(jìn)程。用a選項(xiàng)查看當(dāng)前系統(tǒng),可以觀察所有用戶(hù)的所有進(jìn)程。經(jīng)常使用的是aux組合選項(xiàng),將顯示最詳細(xì)的系統(tǒng)里的所有進(jìn)程情況。2/6/202338【例】3.39用aux組合顯示所有進(jìn)程如圖3.1所示$psaux圖3.1用aux組合查看所有進(jìn)程情況最前面的是其他用戶(hù)的進(jìn)程,還能看到root、daemon等用戶(hù)進(jìn)程。2/6/2023393.6.2命令top的用法top命令除了ps命令的基本作用外,會(huì)動(dòng)態(tài)顯示刷新的當(dāng)前狀態(tài)。如果在前臺(tái)執(zhí)行該命令,它將獨(dú)占前臺(tái),直到用戶(hù)終止該程序?yàn)橹埂op命令提供了對(duì)系統(tǒng)處理器狀態(tài)的實(shí)時(shí)監(jiān)視,將CPU最敏感的任務(wù)列表顯示。該命令可以按CPU、內(nèi)存和執(zhí)行時(shí)間對(duì)任務(wù)進(jìn)行排序。它的很多特性都可以通過(guò)交互式命令或者在個(gè)人定制文件中設(shè)定。該命令的語(yǔ)法格式為:top[-][ddelay][q][c][s][S][i]d指定屏幕刷新的時(shí)間間隔,可用s交互命令來(lái)改變。q將實(shí)時(shí)動(dòng)態(tài)進(jìn)行刷新。對(duì)于root用戶(hù)top將以高優(yōu)先級(jí)運(yùn)行。c顯示整個(gè)命令行而不僅僅顯示命令名其它選項(xiàng)含義請(qǐng)參考手冊(cè)的說(shuō)明。top顯示的項(xiàng)目很多,默認(rèn)每5秒更新一次,但可以自己設(shè)置。顯示項(xiàng)目為:uptime:顯示系統(tǒng)啟動(dòng)時(shí)間、運(yùn)行時(shí)間和第1、5、15秒的平均負(fù)載值。processes:自最近一次刷新以來(lái)的運(yùn)行進(jìn)程總數(shù)。這些進(jìn)程被分為正在運(yùn)行、休眠、停止等種類(lèi)。進(jìn)程和狀態(tài)顯示可以通過(guò)交互命令t來(lái)實(shí)現(xiàn)。范例如下:2/6/202340【例】3.40鍵入top命令查看系統(tǒng)狀況如圖3.2所示第1行依次是當(dāng)前時(shí)間、系統(tǒng)啟動(dòng)時(shí)間、當(dāng)前系統(tǒng)登錄用戶(hù)數(shù)、平均負(fù)載。第2行依次是進(jìn)程總數(shù)、休眠數(shù)、運(yùn)行數(shù)、僵死數(shù)和終止進(jìn)程數(shù)。第3行是CPU狀態(tài),依次為用戶(hù)占用率、系統(tǒng)占用率、優(yōu)先進(jìn)程占用和閑置進(jìn)程占用率。第4行是內(nèi)存狀態(tài),依次為平均可用內(nèi)存、已用內(nèi)存、空閑內(nèi)存、共享內(nèi)存、緩存使用內(nèi)存。第5行為交換狀態(tài),依次為平均可用交換容量、已用容量、閑置容量、高速緩存容量。后面的內(nèi)容和ps命令顯示的進(jìn)程情況相似。雖然top功能強(qiáng)于ps但占用前臺(tái),使用時(shí)應(yīng)有所取舍。2/6/2023413.6.3殺死進(jìn)程命令kill所有用戶(hù)均可以使用,方式如下:kill[-ssignal|-p][-a]pid...kill發(fā)出一個(gè)特定信號(hào)signal給進(jìn)程id為pid的進(jìn)程,根據(jù)該信號(hào)作出特定的動(dòng)作,若沒(méi)指定就是發(fā)出終止TERM的信號(hào)。其參數(shù)解析如下:-s(signal):可用信號(hào)有HUP(1),KILL(9),TERM(15),分別代表重啟、殺死和結(jié)束。-p:顯示pid,并不發(fā)出信號(hào)。-l(signal):列出所有可用信號(hào)名稱(chēng)?!纠?.41將pid為323的進(jìn)程殺死。$kill-9323將pid為456的進(jìn)程重啟(restart):$kill-HUP4562/6/2023423.7控制提示符與命令組合普通用戶(hù)成功登錄,系統(tǒng)將執(zhí)行shell程序,提供命令行提示符“$”,對(duì)超級(jí)用戶(hù)root則用“#”作為提示符。用戶(hù)鍵入logout命令、exit命令或文件結(jié)束符“ctrl+d”,將結(jié)束登錄。多條命令可以在一行中出現(xiàn),按從左到右順序執(zhí)行。各條命令間以分號(hào)(;)隔開(kāi),如:pwd;who|wc-l;cd/usr/bin相鄰命令間可以有邏輯關(guān)系“與”和“或”。邏輯與操作符“&&”把兩個(gè)命令聯(lián)在一起,形式為:“命令1&&命令2”。其功能是先執(zhí)行命令1,執(zhí)行成功后,再執(zhí)行命令2;否則,若命令1執(zhí)行不成功,則不執(zhí)行命令2。邏輯或操作符“||”可把兩個(gè)命令聯(lián)起來(lái),形式為:“命令1||命令2”。其功能是先執(zhí)行命令1,如果執(zhí)行不成功,則執(zhí)行命令2;否則,若命令1執(zhí)行成功,則不執(zhí)行命令2。在Shell中可以用花括號(hào){}或圓括號(hào)()將若干命令括起來(lái),在邏輯上形成一條命令。2/6/202343以花括號(hào)括起來(lái)的全部命令視為語(yǔ)法上的一條命令,出現(xiàn)在管道符的一邊。執(zhí)行順序以位置的先后次序由左至右執(zhí)行。在管道線(xiàn)中,成組命令把各命令的執(zhí)行結(jié)果匯集在一起,形成一個(gè)輸出流,作為該管道線(xiàn)中下一個(gè)命令的輸入?!纠?.42{echo"UserReportfor`date`.";who;}|pr注意左括號(hào)“{”后應(yīng)有空格,右括號(hào)“}”前應(yīng)有分號(hào)(;)?!纠?.43成組命令用圓括號(hào)括起來(lái)。(echo"Currentdirectoryis`pwd`."cd/home/mengqc;ls-l;cpm1em1&&rmm1catem1)|pr用圓括號(hào)括起成組命令,左括號(hào)后不用空格,右括號(hào)前不要分號(hào)。二者執(zhí)行過(guò)程相同,區(qū)別是:用花括號(hào)括起來(lái)的成組命令只在本Shell內(nèi)執(zhí)行命令表,不產(chǎn)生新進(jìn)程;圓括號(hào)括起來(lái)的成組命令是在新子Shell內(nèi)執(zhí)行,建立了新子進(jìn)程。因此,圓括號(hào)內(nèi)的命令不改變父Shell變量值及工作目錄等。2/6/2023443.8編輯器vi的應(yīng)用技術(shù)Vi是Linux的重要編輯工具,當(dāng)前版本是vim,本節(jié)里,vim和vi一律以vi表示。在編寫(xiě)系統(tǒng)腳本時(shí),可不退出vi獲得系統(tǒng)信息、直接執(zhí)行命令,然后回到vi繼續(xù)編輯。如執(zhí)行:!ls/tmp查看內(nèi)容,回車(chē)后可繼續(xù)編輯,非常方便。3.8.1vi的三種執(zhí)行模式vi是linux系統(tǒng)里的全屏文本編輯器,原意是VisualInterface。學(xué)習(xí)vi的基本操作很有好處,用戶(hù)可以在不同的機(jī)器上得心應(yīng)手。vim原意是viImproved,是一個(gè)所見(jiàn)所得的編輯程序,方便快捷。另有Emacs也同樣是非常優(yōu)秀的文本編輯器。vi追求的是快捷啟動(dòng)、編輯高效、功能專(zhuān)注,而Emacs的追求是功能豐富,可以發(fā)郵件、上新聞組、聽(tīng)mp3、瀏覽網(wǎng)頁(yè)和玩游戲等。vi有三種模式,即命令模式、輸入模式和編輯模式。啟動(dòng)vi后在任何模式下按Esc鍵進(jìn)入普通模式。普通模式下輸入冒號(hào)“:”進(jìn)入命令行模式,此時(shí)vi窗口最下面一行是“:”行,在后面輸入命令回車(chē)就能執(zhí)行。如果要運(yùn)用shell命令,只要在輸入“!”后接著輸入shell命令回車(chē)即可。例如在vi中執(zhí)行l(wèi)s命令,則在命令行模式下輸入“!ls”。命令執(zhí)行完成后回車(chē)則立即返回vi編輯狀態(tài)。2/6/2023453.8.2基本操作1.進(jìn)入vi的基本方式vifilename:打開(kāi)或新建文件將光標(biāo)置行首,vinfilename打開(kāi)文件將光標(biāo)置于第n行首,vi/patternfilename:打開(kāi)文件光標(biāo)置于pattern串匹配處vifilename....filename:打開(kāi)多個(gè)文件,依次進(jìn)行編輯2.主要的插入命令i在光標(biāo)前插入,I在當(dāng)前行首插入,a在光標(biāo)后插入,A在當(dāng)前行尾插入,o在當(dāng)前行之下新開(kāi)一行,r替換當(dāng)前字符,R替換當(dāng)前字符及其后的字符,直至按ESC鍵。s是從當(dāng)前光標(biāo)處開(kāi)始,以輸入文本替代指定數(shù)目的字符。S刪除指定數(shù)目的行,并以所輸入文本代替之,ncw是修改指定數(shù)目的字,nCC是修改指定數(shù)目的行。3.光標(biāo)移動(dòng)操作在文本輸入模式下,可直接使用鍵盤(pán)上的四個(gè)方向鍵移動(dòng)光標(biāo)。在命令模式下,可以用方向鍵移動(dòng)光標(biāo),也可以用h、j、k、l這代替方向鍵移動(dòng)光標(biāo),熟練后可以手不離鍵盤(pán)位置完成所有操作,提高了工作效率。在屏幕上移動(dòng)光標(biāo)的組合命令列表主要有:CTRL+F向前滾動(dòng)一屏;z[Enter]把當(dāng)前行移動(dòng)到屏幕頂部并滾動(dòng);[Enter] 移動(dòng)到下一行的首字符;n| 移動(dòng)到當(dāng)前行的第n列;nG移動(dòng)到第n行;G移動(dòng)到文件尾部;CTRL+G顯示當(dāng)前行號(hào)、文件總行數(shù)、當(dāng)前行的百分比。2/6/2023464.編輯另一文件和插入文件的方法:eFile→編輯指定文件:rFile→通過(guò)當(dāng)前行下添新行將文件讀取到編輯緩沖區(qū):r!Command→通過(guò)在當(dāng)前光標(biāo)位置下面添加新行:taTag→從標(biāo)記位置開(kāi)始,編輯包含Tag標(biāo)記符的文件Ctrl-A→編輯備用文件aText→在光標(biāo)后插入由Text指定的文本o→在當(dāng)前行的下面添加一個(gè)空行O→在當(dāng)前行的上面添加一個(gè)空行5,復(fù)制和移動(dòng)文本在vi編輯器中的整行或多行復(fù)制與粘貼有時(shí)是非常有用的。單行復(fù)制:在命令模式下,將光標(biāo)移到將復(fù)制行處,按“yy”復(fù)制;多行復(fù)制:在命令模式下,將光標(biāo)移動(dòng)到將要復(fù)制的首行處,按“nyy”復(fù)制n行;其中n為1、2、3...粘貼:命令模式下,將光標(biāo)移到需要粘貼處,按“p”粘貼。2/6/2023475.調(diào)整屏幕與輸入外殼程序命令:!Command 運(yùn)行指定的命令然后返回到vi編輯器。:sh 進(jìn)入外殼程序以便能運(yùn)行多條命令。:!! 重復(fù)最近一次的:!Command命令。Ctrl-L 清除和重繪屏幕。Ctrl-R 重繪屏幕和消除標(biāo)有@(位于符號(hào))的空行。Number!!Command運(yùn)行指定命令并輸出替代由Number指定的行。6.刷新屏幕與縮進(jìn)和添加行號(hào)命令模式下ctrl+l(ell)或ctrl+rctrl+T,ctrl+D,輸入模式下,縮進(jìn)與倒退縮進(jìn)。setnumber或setnu給每行加行號(hào),調(diào)試時(shí)很直觀,但行號(hào)不是程序。2/6/2023487.編輯多個(gè)文件和多個(gè)緩沖區(qū)args,顯示編輯文件的列表next,prev,first,last,efilename,enew,新建一個(gè)文件buffers,ls,顯示緩沖區(qū)列表bn,轉(zhuǎn)到第n個(gè)緩沖區(qū);bnext(bn),bprev(bp),bfirst(bf),blast(bl),new新建一個(gè)buffer;bdeletebuffernumber,刪除一個(gè)buffer,bwipe,真正刪除一個(gè)buffer。2/6/2023498.自動(dòng)完成與多行注釋vi在Insertmode下輸入一個(gè)單詞的前幾個(gè)字符,然后用Ctrl-p或者Ctrl-n就可以列出這個(gè)文件中以這些字符開(kāi)頭的單詞,特別在配置了ctags后也能列出頭文件中的符號(hào),特別方便。此外vi還有行自動(dòng)完成、文件名自動(dòng)完成等。如果要給多行程序加注釋?zhuān)粋€(gè)辦法就是插入#,再用j跳到下一行用“.”命令重復(fù)上一個(gè)命令。如果要注釋幾百行,辦法是::.,+499s/^/#/g。 這里所指的程序是針對(duì)shell程序而言的,如果讀者使用vi編寫(xiě)c語(yǔ)言程序,則注釋只能使用“/**/”,或者“//”來(lái)對(duì)所寫(xiě)的代碼行進(jìn)行注釋?zhuān)駝t肯定會(huì)出錯(cuò)。如果在第60行有這樣的語(yǔ)句:if(server_pid!=0)#創(chuàng)建進(jìn)程失敗處理則在編譯時(shí)就會(huì)出現(xiàn)這樣的錯(cuò)誤提示:ping.c:60:syntaxerrorat'#'token這時(shí),只要將程序中的“#”改為“//”就可以了。2/6/2023509.縮寫(xiě)功能vi支持用縮寫(xiě)字符串代替長(zhǎng)字符串,如在命令行執(zhí)行abhwhelloworld后,在Insertmode下輸入hw回車(chē),則vi就自動(dòng)替換成了“helloworld”。10.退出vi

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論