Linux程序設計技術技巧與項目實踐Linux應用技術_第1頁
Linux程序設計技術技巧與項目實踐Linux應用技術_第2頁
Linux程序設計技術技巧與項目實踐Linux應用技術_第3頁
Linux程序設計技術技巧與項目實踐Linux應用技術_第4頁
Linux程序設計技術技巧與項目實踐Linux應用技術_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論