《unix操作系統(tǒng)教學》第7章 unix文件、目錄和檔案的操作_第1頁
《unix操作系統(tǒng)教學》第7章 unix文件、目錄和檔案的操作_第2頁
《unix操作系統(tǒng)教學》第7章 unix文件、目錄和檔案的操作_第3頁
《unix操作系統(tǒng)教學》第7章 unix文件、目錄和檔案的操作_第4頁
《unix操作系統(tǒng)教學》第7章 unix文件、目錄和檔案的操作_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

第7章UNIX文件、目錄和檔案的操作使用文件和目錄是工作中不可回避的環(huán)節(jié)。通過前面的章節(jié),讀者已經(jīng)積累了一些文件和目錄的操作經(jīng)驗。本章將進一步介紹如何使用Shell管理文件和目錄。在正式講解相關(guān)命令之前,有必要介紹一下UNIX目錄結(jié)構(gòu)的組織形式。

第7章UNIX文件、目錄和檔案的操作7.1

理解UNIX中的文件類型7.2

文件操作7.3

目錄操作7.4

文件和目錄權(quán)限7.5

搜索文件7.6

文件壓縮與歸檔7.7

文件處理相關(guān)命令7.8

vi文本編輯器7.9

常見問題7.10

小結(jié)

2023/4/137.1

理解UNIX中的文件類型

7.1.1

什么是文件

7.1.2

文件類型

7.1.3

目錄和子目錄

7.1.4

鏈接文件

7.1.5

設(shè)備文件

7.1.6

命名管道

7.1.7

proc文件

2023/4/137.1.1

什么是文件一切皆文件目的:可從任意的輸入源讀取數(shù)據(jù)可向任意的輸出源寫入數(shù)據(jù)2023/4/137.1.2

文件類型普通文件:文本文件、二進制文件(可執(zhí)行文件、圖像文件、數(shù)據(jù)庫文件、音視頻文件、office文檔等)目錄文件:可包含目錄和文件,可嵌套。文件本身只存儲文件的內(nèi)容,也不包括文件名;文件名和文件的其他屬性只存在于目錄中;偽文件:設(shè)備文件,存在于目錄樹中2023/4/13file,文本文件可閱讀##Simpleprofileplaces/usr/binatfront,followedby/usr/sbin.##Useless(1)ormore(1)asthedefaultpagerfortheman(1)command.#exportPATH=/usr/bin:/usr/sbinif[-f/usr/bin/less];thenexportPAGER="/usr/bin/less-ins"elif[-f/usr/bin/more];thenexportPAGER="/usr/bin/more-s"fi2023/4/13file,文本文件可閱讀##Definedefaultpromptto<username>@<hostname>:<path><"($|#)">#andprint'#'foruser"root"and'$'fornormalusers.##Currentlythisisonlydoneforbash/pfbash(1).#case${SHELL}in*bash)typeset+xPS1="\u@\h:\w\\$";;esac2023/4/13二進制文件,不可直接閱讀和理解。ls命令就是二進制文件2023/4/137.1.2

文件類型—目錄文件2023/4/13UNIX常見的目錄和文件

(1)名字長度。<=255個字符(2)取名的合法字符。除斜線外的所有字符都是命名的合法字符,空格、星號甚至不可打印字符也可以做文件名。不可作為文件名的有:47是斜線“

/”的ASCII碼null用作C語言的字符串結(jié)束標志一般不建議用“-”、“;”、“><”“|”、“!”等特殊字符當作文件或目錄的名字(3)大小寫字母有區(qū)別。例如:makefile,Makefile,MAKEFILE是三個不同的文件名。

4.2文件和目錄的命名

7.2文件操作創(chuàng)建文件(touch,cat)touch[-acm][-rref_file|-ttime|-ddata_time]file…-a:改變訪問時間-c:如目標文件不存在,則不創(chuàng)建該文件-m:改變修改時間-r:指定參考文件。touch會依據(jù)該文件的時間屬性來修改目標文件的時間屬性-t:指定時間屬性[[YYYY]MMDDhhmm[.SS]]-d:指定日期和時間屬性。[[YYYY]MMDDhhmm[.SS]]file:指定要修改的目標文件2023/4/13stat命令使用長列表方式從文件的索引節(jié)點獲取信息。touchtestfile,date,stattestfile2023/4/132023/4/13touchfile1file2file3touch可同時創(chuàng)建多個空白文件,文件名之間用空格隔開2023/4/13“cat>”創(chuàng)建空白文件輸入:cat>newfile后回車輸入newfile的內(nèi)容(根據(jù)自己的需要)按ctrl+D鍵保存退出(虛擬機按右側(cè)的ctrl)2023/4/137.2.3在當前目錄中復制文件cp[options]source_filetarget_fileOptions選項有:-i:如存在target_file名字的文件,是否覆蓋;-p:不僅保存源文件的內(nèi)容,還保持源文件的訪問權(quán)限、最后訪問時間、修改時間等屬性。如省略-p,則cp將target_file的最后訪問時間、修改時間設(shè)定為系統(tǒng)時間,其屬組和屬主改為cp命令執(zhí)行者及其屬組。2023/4/137.2.4將文件復制到目錄中cp[options]filelistdirectoryfilelist:要復制的源文件列表directory:要復制到的目標目錄laodong@solaris:~$pwd/export/home/laodonglaodong@solaris:~$ls-Fawork/test1test2test3test42023/4/136.4.2復制文件和目錄:cp$cptest.cpptest/##將覆蓋同名文件$cp–itest.cpptest/##詢問是否覆蓋$cp-btest.cpptest/##有同名則重命名$cp-rtest/桌面/##將目錄test拷貝到桌面,去掉“-r”,不成功$cp/etc/passwd/root$cp長與“.”(當前目錄),“~”(當前用戶的主目錄)一起使用cp/etc/passwd.//拷貝/etc/passwd到當前目錄cp/etc/passwd~//拷貝/etc/passwd到當前用戶的主目錄顯示文件類型filefile_name2023/4/13移動和重命名:mvmv命令:move的縮寫用來移動文件:$mvdaybin/,當bin目錄中有同名文件時,將被覆蓋;

$mv–idaybin/解決;$mv–f

daybin/

強制覆蓋同名文件,-f是默認選項$mvdayday_bak##將day重命名為day_bak如day_bak文件存在,

除day文件被重命名為day_bak外,day_bak內(nèi)容替換成day的內(nèi)容;如不存在,則day文件被重命名為day_bak.用來移動目錄:$mvphotos/桌面6.4.3刪除目錄和文件:rmdir和rm1.rmdir命令:刪除空文件夾$rmdirtest##只能刪除空文件夾2.rm命令:刪除文件或文件夾$rmtest/*.php##刪除test/下的所有php文件,無提示$rm–itest/hello##刪除文件hello前,提示確認(y,n)$rm–fhello_bak##自動回答是$rm–rtest/##遞歸的刪除目錄test下的所有文件和文件夾Toremoveafilewhosenamestartswitha'-',forexample'-foo',useoneofthesecommands:rm---foorm./-foo2023/4/13目錄“.”當前目錄“..”父目錄“~”當前用戶的主目錄2023/4/13當前在/scores

則./information指的是/scores/information當前在/scores/information/computer,則../electronic指的是/scores/information/electronicls–l~/docs//顯示當前用戶目錄下的docs文件夾的內(nèi)容2023/4/13建立目錄:mkdirmkdir可以一次創(chuàng)建一到多個目錄。$cd~##進入用戶主目錄$mkdirdocpicture##新建doc和picture兩個文件夾(目錄)也可以使用絕對路徑來新建目錄$mkdir~/picture/tmp##在主目錄下(的picture下)創(chuàng)建tmp目錄,因為主目錄下有picture,正確$mkdir~/tempx/green##錯誤。因為主目錄下沒有tempx這個目錄@mkdir-p~/tempx/green##加上“-p”,如果有”/tempx”這個目錄,就直接在其下創(chuàng)建green目錄;否則,先創(chuàng)建“/tempx”,然后再在其下創(chuàng)建green目錄;列出當前目錄下的目錄樹

find.-typed-print|sed-e's;[^/]*/;|_;g;s;_|;|;g'文件和目錄的權(quán)限很難想象沒有權(quán)限的世界會變成什么樣子。隨便哪個用戶都可以大搖大擺地“溜”進別人的目錄,然后對里面的文件亂改一氣。當然,他自己的文件也可能正經(jīng)歷著同樣的命運。UNIX是一個多用戶的操作系統(tǒng),正確地設(shè)置文件權(quán)限非常重要,就像讀者在“快速上手”環(huán)節(jié)中做的那樣。6.5.1權(quán)限設(shè)置針對的用戶享有文件或目錄權(quán)限的三種人文件屬主:文件所有者,文件創(chuàng)建者自動為文件屬主文件屬組用戶:文件總屬于一個組。默認屬于創(chuàng)建者的組。其他人:非上兩種人,也非root的用戶注:root用戶擁有所有的權(quán)限文件所有權(quán)(房產(chǎn))可以轉(zhuǎn)讓,但必須由root(政府)辦理。6.5.2需要設(shè)置哪些權(quán)限文件或目錄權(quán)限:r(讀)、w(寫入)、x(執(zhí)行)關(guān)于目錄的權(quán)限說明r:能否列出該目錄的內(nèi)容x:說明能否進入該目錄w:說明能否在該目錄中創(chuàng)建、刪除、重命名文件;6.5.3查看文件和目錄的屬性ls命令$ls–lday##查看當前目錄下的文件day的屬性說明:-rw-rw-r--:第一個“-”,說明是普通文件第一個“rw-”,屬主的權(quán)限是rw;第二個“rw-”,屬組的權(quán)限是rw;“r--”,其他人的權(quán)限只讀$ls–ldtest/##查看目錄test的屬性6.5.4改變文件所有權(quán):chown和chgrp1.chown:改變文件的所有權(quán)

$chowntianjun:dongdays##修改days的所有權(quán)為文件屬主tianjun,文件屬組:dong$chownguestdays##只更改文件屬主$chown:nogroupdays##只更改文件屬組,不能省略“:”$chown–Raitiantest/##遞歸的將目錄test下的所有文件、子文件夾的屬主更改為aitian2.chgrp:改變文件的屬組$chgrpnogroupdays##將文件days的屬主改為nogroup$chgrp-Rroottest/##遞歸的將目錄test下的所有文件和子文件夾的屬組更改為root組。6.5.5改變文件權(quán)限:chmod1.chmod命令:改變文件權(quán)限用戶組+/-權(quán)限用戶組:u(文件屬主),g(文件屬組),o(其他人),a(所有人)權(quán)限:r,w,x$chmodu+xdays##給days的文件屬主增加x的權(quán)限$chmoda-xdays“用戶組=權(quán)限”,直接設(shè)置權(quán)限$chmodug=rx,o=rdays;##設(shè)置文件屬主、組為rx.其他為r“用戶組1=用戶組2”##將用戶組2的權(quán)限賦值給用戶組1$chmodo=udays##將文件屬主的權(quán)限賦值給其他人和你的團隊共享文件##新建一個名為workg的用戶組$groupaddworkg##新建用戶,并歸入workg$useradd-Gworkg張三$passwd張三$useradd-Gworkg李四$passwd李四$useradd-Gworkg王五$passwd王五

和你的團隊共享文件建一個/work的目錄(文件夾),作為創(chuàng)建的小組workg的工作目錄(需要root權(quán)限)$mkdirwork##任何用戶(包括除workg外的用戶)都可以訪問“/work”,這顯然不合適。應(yīng)該只允許root和workg工作組的用戶訪問。$chgrpworkgwrok/##將work的所有權(quán)交給workg組$chmodg+rwxwork/##增加workg組對work目錄的讀、寫、執(zhí)行權(quán)限;$chmod0-rwxwork/##撤銷其他用戶對work目錄的讀、寫、執(zhí)行權(quán)限。$chown李四work/##將work目錄的所有者改為李四6.2快速上手:和你的團隊共享文件此時,所有workg組的用戶都對work目錄擁有讀寫執(zhí)行的權(quán)限了。其他用戶(除root外),都不能訪問work了。$su李四##切換到用戶李四$cd/home/work/$touchtest##在work目錄中新建空文件test$su王五##切換到用戶王五$cd/home/work/$rmtest##刪除空文件test7.1.4鏈接文件2023/4/13建立鏈接:lnln命令:需加“-s”,軟鏈接。用于文件$ln–sdaysmy_days##給文件days創(chuàng)建一個鏈接my_days(快捷方式)$ls–lmy_days用于目錄$ln–s/usr/local/share/local_share##給/usr/local/share/創(chuàng)建一個快捷方式

建立鏈接:lnln命令:不加“-s”,硬鏈接。$lndayshard_days##創(chuàng)建一個鏈接到文件days的新文件hard_days,兩者的內(nèi)容完全一致$geditdays##打開days,修改后保存退出$catdays$cathard_days

輸入輸出重定向和管道重定向和管道是Shell的一種高級特性,這種特性允許用戶人為地改變程序獲取輸入和產(chǎn)生輸出的位置。這個有趣的功能并不是UNIX的專利,幾乎所有的操作系統(tǒng)(包括Windows)都能支持這樣的操作。輸出重定向默認的標準輸出指向顯示器;輸出重

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論