Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 7 Linux 檔案與目錄管理 VBird 2005/08/04

Similar presentations


Presentation on theme: "Chapter 7 Linux 檔案與目錄管理 VBird 2005/08/04"— Presentation transcript:

1 Chapter 7 Linux 檔案與目錄管理 VBird 2005/08/04
Linux基礎-- Linux 檔案與目錄管理

2 Linux基礎-- Linux 檔案與目錄管理
課程目標 Linux 檔案的移動、複製、刪除與更名 Linux 目錄的建立、更名、移動與複製 Linux 檔案內容的檢視 Linux 特殊權限簡介 檔案搜尋技巧 VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

3 Linux基礎-- Linux 檔案與目錄管理
內容 目錄與路徑的意義 目錄與檔案管理 檔案內容的查閱 檔案時間的修訂:touch 檔案與目錄的預設權限 檔案的隱藏屬性 檔案與目錄的特殊權限 檔案的搜尋 VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

4 Linux基礎-- Linux 檔案與目錄管理
目錄與路徑的意義 相對路徑與絕對路徑: 相對路徑: 相對於目前工作目錄的路徑寫法,一定不會由根目錄開始寫 絕對路徑: 由根目錄 (/) 開始寫起的路徑表示法,用於程式中的正確性高 範例:想由 /usr/share/doc/samba* 進入 /usr/share/doc/cups* 可以如何進入? cd /usr/share/doc/cups* cd ../cups* 執行檔的路徑變數: PATH 透過 PATH 這個變數,我們可在任何目錄下執行指令; echo $PATH PATH=/bin:/sbin:/usr/bin:/usr/sbin VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

5 Linux基礎-- Linux 檔案與目錄管理
目錄與路徑的意義(續) 一些常見的特殊目錄: . 本工作目錄 .. 上層工作目錄 - 前一個工作目錄 ~ 目前這個使用者的家目錄 ~account 有一個帳號名稱為 account 的家目錄 變換工作目錄: cd cd [相對路徑/絕對路徑] cd /var/spool/ cd ../cache cd /usr/<tab><tab> (按下兩次 <tab> 會跑出什麼?) cd - VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

6 Linux基礎-- Linux 檔案與目錄管理
目錄與路徑的意義(續) 顯示目前所在目錄:pwd [-p] -p:顯示實體目錄(若有連結的話) pwd cd /var/mail pwd -p ls -al /var 建立目錄:mkdir [-pm] -p:自動建立上層目錄(若上層不存在時) -m :主動加入權限資料 mkdir /tmp/chap07 mkdir /tmp/chap07_1/test1 mkdir -p /tmp/chap07_1/test1 mkdir -m 777 /tmp/chap07_2 ls -al /tmp/chap07* VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

7 Linux基礎-- Linux 檔案與目錄管理
目錄與路徑的意義(續) 刪除『空目錄』: rmdir [-p] 注意:rmdir 僅能刪除『空』的目錄; -p :持續刪除上層『空』的目錄 cd /tmp rmdir chap07 rmdir chap07_1 rmdir -p chap07_1 刪除目錄:rm -r 若目錄下有其他檔案或目錄存在,則不能以 rmdir 刪除目錄,此時,可用 rm -r 刪除之! 搬移與更名:mv mv chap07_2 chap07 VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

8 Linux基礎-- Linux 檔案與目錄管理
目錄與路徑的意義(續) 練習: 建立一個目錄為 /tmp/chap7/dir/test mkdir -p /tmp/chap7/dir/test 建立一個目錄為 /tmp/chap7/dir2/test 請前往 /tmp/chap7/dir/test cd /tmp/chap7/dir/test 寫出兩種前往 /tmp/chap7/dir2/test 的方法 cd /tmp/chap7/dir2/test cd ../../dir2/test 回到上次使用的目錄中 cd - 刪除剛剛建立的兩個目錄 rmdir -p /tmp/chap7/dir/test /tmp/chap7/dir2/test VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

9 Linux基礎-- Linux 檔案與目錄管理
目錄與檔案管理 ls:檢視檔案目錄資訊 使用方式:ls [option...] [file/directory....] 常用參數: -l ) use long format to display -a ) incluing hidden file and directory (beginning with .) -A ) incluing hidden file and directory (exclude . and ..) -d ) list directory entries instead of contents -R ) list subdirectories recursively -F ) append indicator (one of to entries(判別符號) -h ) print sizes in human readable format (e.g., 1K 234M 2G) -S ) sort by file size -i ) display inode information --color={none,auto,always} ) specify color display --full-time ) with full time format to display -f ) do not sort result -r ) reverse order while sorting VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

10 Linux基礎-- Linux 檔案與目錄管理
目錄與檔案管理(續) 範例: 列出家目錄下的所有檔案資訊; ls -al ~ 不顯示顏色,但在檔名結尾顯示檔案類型 ls --color=never -alF ~ 顯示檔案的完整時間(包含年月日時分等) ls --full-time -al ~ 將家目錄底下的檔案以檔案容量大小排序列出 ls -alS ~ 呈上題,如果檔案大小由小到大排列? ls -alSr ~ VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

11 Linux基礎-- Linux 檔案與目錄管理
目錄與檔案管理(續) 複製檔案與目錄: cp source destination -i:動作前詢問(覆蓋與否!) -r:遞回複製,連同子目錄一起複製 -a:-dpr -d:複製連結檔的屬性,而不是目標檔案 -p:相關屬性均不變 -s:將檔案複製成為連結檔 -u:僅移動新檔案 因為複製若不加任何參數,會導致檔案的屬性改變: 考慮複製時是否完整保留完整來源資訊 考慮複製時來源是否為 symlink 檔案 考慮複製時來源是否為特殊的檔案 考慮複製時來源是否為目錄 VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

12 Linux基礎-- Linux 檔案與目錄管理
目錄與檔案管理(續) 練習: 將家目錄底下的 .bashrc 複製成 /tmp/basrhc cp ~/.bashrc /tmp/bashrc; cp -i ~/.bashrc /tmp/bashrc 移動到 /tmp 底下後,如何將 /etc/crontab 複製到『目前』工作目錄 cd /tmp; cp /etc/crontab . FC4 中,/etc/redhat-release 為連結檔。請問,將他複製到 /tmp 後,變成什麼? 使用 cp /etc/redhat-release /tmp 變成一般檔案! 將 /var/log/wtmp 複製到 /tmp 底下,查閱兩個檔案之間的屬性? cp /var/log/wtmp /tmp; ls /var/log/wtmp /tmp/wtmp 如何將多個檔案一次複製到 /tmp 底下? 將 /etc/ 整個目錄移動到工作目錄中 cp -r /etc/ . VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

13 Linux基礎-- Linux 檔案與目錄管理
目錄與檔案管理(續) 刪除檔案與目錄:rm -i ) interactive mode. prompt before any removal -f ) force. ignore nonexistent files, never prompt -r ) recursive. remove the contents of directories recursively -v ) verbose mode 一般只能夠刪除檔案,搭配 -r 參數可以支援刪除目錄 一般使用刪除檔案時不會詢問,除非補上 -i 參數 遇到特殊的一些情況 rm 程式才會發出詢問,這時候可以搭配使用 -f 參數不詢問直接處理 為什麼 rm -rf / 是危險的?? VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

14 Linux基礎-- Linux 檔案與目錄管理
目錄與檔案管理(續) 練習: 將/tmp/bashrc 做成一個名為 linkbashrc 的連結檔 cp -s /tmp/bashrc linkbashrc 若我要將 ~/.bashrc 複製給 lccuser 該如何做? cp ~/.bashrc ~lccuser/; chown lccuser ~lccuser/.bashrc 若刪除 /tmp/bashrc 後, linkbashrc 是否能開啟? 不能!因為原始檔案已經不見了! 若要保留 /etc/ 的權限並複製成為 /tmp/etc2 ? cp -a /etc/ /tmp/etc2 將剛剛的檔案全部刪除! rm -rf ………. VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

15 Linux基礎-- Linux 檔案與目錄管理
目錄與檔案管理(續) 檔案與目錄的移動及更名: mv -i:動作前詢問(覆蓋與否!) -u:僅移動新檔案 練習: 建立一個目錄 /tmp/chap7/dir3 工作目錄移動到該目錄 將 /etc/passwd, /etc/shadow, /etc/group 複製到此 將 /tmp/chap7/dir3 底下的東西均複製到 /tmp/chap7 將 dir7 更名成 testpass 將剛剛的三個檔案複製到 testpass 目錄裡面 將目錄 /tmp/chap7/testpass 刪除 VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

16 Linux基礎-- Linux 檔案與目錄管理
目錄與檔案管理(續) 擷取目前所在的目錄或檔名 basename dirname VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

17 Linux基礎-- Linux 檔案與目錄管理
檔案內容的查閱 cat [-AEnTv] 參數: -A :相當於 -vET 的整合參數,可列出一些特殊字符~ -E :將結尾的斷行字元 $ 顯示出來; -n :列印出行號; -T :將 [tab] 按鍵以 ^I 顯示出來; -v :列出一些看不出來的特殊字符 範例: 列出 /etc/issue 檔案內容 列出 /etc/passwd 的內容,連同行號 列出 /etc/xinetd.conf 這個檔案的所有內容(含特殊字符) 列出 /etc/man.config 的檔案內容 使用 tac 時?? VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

18 Linux基礎-- Linux 檔案與目錄管理
檔案內容的查閱(續) nl [-bnw] 檔案 參數: -b :指定行號指定的方式,主要有兩種: -b a :表示不論是否為空行,也同樣列出行號; -b t :如果有空行,空的那一行不要列出行號; 範例: 用兩種方式,將 /etc/issue 列出行號(空行要不要有行號?) VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

19 Linux基礎-- Linux 檔案與目錄管理
檔案內容的查閱(續) 可翻頁指令: more more /etc/man.config 空白鍵 (space):代表向下翻一頁; Enter :代表向下翻『一行』; /字串 :代表在這個顯示的內容當中,向下搜尋『字串』; :f : 立刻顯示出檔名以及目前顯示的行數; q : 代表立刻離開 more ,不再顯示該檔案內容。 VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

20 Linux基礎-- Linux 檔案與目錄管理
檔案內容的查閱(續) 可翻頁指令: less less /etc/man.config 空白鍵 :向下翻動一頁; [pagedown]:向下翻動一頁; [pageup] :向上翻動一頁; /字串 :向下搜尋『字串』的功能; ?字串 :向上搜尋『字串』的功能; n :重複前一個搜尋 (與 / 或 ? 有關!) N :反向的重複前一個搜尋 (與 / 或 ? 有關!) q :離開 less 這個程式; VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

21 Linux基礎-- Linux 檔案與目錄管理
檔案內容的查閱(續) 擷取檔案前面幾行: head head -n [number] filename 範例: head /etc/man.config head -n 20 /etc/man.config 擷取檔案後面幾行: tail tail -n [number] filename tail /etc/man.config tail -n 20 /etc/man.config 萬一,我想要列出 11 到 20 行? head -n 20 /etc/man.config | tail -n 10 VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

22 Linux基礎-- Linux 檔案與目錄管理
檔案內容的查閱(續) od [-t TYPE] 檔案 參數: -t :後面可以接各種『類型 (TYPE)』的輸出,例如: a :利用預設的字元來輸出; c :使用 ASCII 字元來輸出 d[size] :利用十進位(decimal)來輸出資料,每個整數佔用 size bytes ; f[size] :利用浮點數值(floating)來輸出資料,每個數佔用 size bytes ; o[size] :利用八進位(octal)來輸出資料,每個整數佔用 size bytes ; x[size] :利用十六進位(hexadecimal)來輸出資料,每個整數佔用 size bytes ; 範例: 將 /usr/bin/passwd 檔案內容取出查閱! od -t c /usr/bin/passwd cat /usr/bin/passwd VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

23 Linux基礎-- Linux 檔案與目錄管理
檔案時間的修訂 一個檔案所記錄的時間資訊: modification time (mtime): 當該檔案的『內容資料』變更時,就會更新這個時間! status time (ctime): 當該檔案的『狀態 (status)』改變時,就會更新這個時間 access time (atime): 當『該檔案的內容被取用』時,就會更新這個讀取時間 (access)。 分別查閱 /etc/issue 這個檔案的三種時間 ls -l /etc/issue ls -l --time=atime /etc/issue ls -l --time=ctime /etc/issue VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

24 Linux基礎-- Linux 檔案與目錄管理
檔案時間的修訂(續) touch [-acdmt] 檔案 參數: -a :僅修訂 access time; -c :僅修改時間,而不建立檔案; -d :後面可以接日期,也可以使用 --date="日期或時間" -m :僅修改 mtime ; -t :後面可以接時間,格式為[YYMMDDhhmm] 範例: 將 /etc/man.config 複製到 /tmp 底下; 查閱 /tmp/man.config 的三種時間; 修訂該檔案的 mtime 成為 2005/01/01 0:00 在 /tmp 底下建立一個空的檔案,檔名為 chap07_touch VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

25 Linux基礎-- Linux 檔案與目錄管理
檔案與目錄的預設權限 新建檔案與目錄時,預設的最大權限: file: -rw-rw-rw- dir: drwxrwxrwx 因為檔案不希望具有可執行的權限!!目錄則必須有 x ! 為了要讓系統更安全,可以取消上述的某個權限,那就是 umask 新建檔案/目錄的預設取消的權限: umask 查閱的方法: umask ; umask -S umask 可得到四個數字,分別是代表: 特殊權限 user (owner) group others 設定方法: umask [0-7][0-7][0-7][0-7] VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

26 Linux基礎-- Linux 檔案與目錄管理
檔案與目錄的預設權限(續) umask 預設奪取的權限,假設 umask 為 002 則: other 被奪取了 w 的權限,因此: file : (-rw-rw-rw-) - ( w-) = -rw-rw-r-- dir : (drwxrwxrwx) - ( w-) = drwxrwxr-x 練習: 請先找出目前的 umask 值 umask 建立一個檔案並觀察屬性 touch 建立一個目錄並觀察屬性 mkdir /tmp/testdir 將 umask 設定為 033 ,請問建立的檔案與目錄屬性為何? umask 033, -rw-r- -r- -, drwx-r- -r- - 若我要讓同一個 group 可以修改他們建立的檔案,但其他人連看都不行看,應如何設定 umask ? -rw-rw , umask 007 VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

27 Linux基礎-- Linux 檔案與目錄管理
檔案的隱藏屬性 lsattr [-aR] 檔案或目錄 參數: -a :將隱藏檔的屬性也秀出來; -R :連同子目錄的資料也一併列出來! lsattr /etc/man.config chattr [+-=][ASacdistu] 檔案或目錄名稱 + :增加某一個特殊參數,其他原本存在參數則不動。 - :移除某一個特殊參數,其他原本存在參數則不動。 = :設定一定,且僅有後面接的參數 a :當設定 a 之後,這個檔案將只能增加資料,而不能刪除(only for root ) i :可以讓一個檔案『不能被刪除、改名、設定連結也無法寫入或新增資料!』 s :當檔案設定了 s 參數時,他將會被完全的移除出這個硬碟空間。 u :與 s 相反的,當使用 u 來設定檔案時,則資料內容其實還存在磁碟中,可以使用來 undeletion. VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

28 Linux基礎-- Linux 檔案與目錄管理
檔案的隱藏屬性(續) 範例: 將 /etc/man.config 複製到 /tmp 底下,並且增加 -i 的隱藏參數,讓該檔案無法被刪除; 嘗試以 root 刪除該檔案,結果? VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

29 Linux基礎-- Linux 檔案與目錄管理
檔案與目錄的特殊權限 系統中的檔案:用 file 指令檢查 ls -ld /tmp ; ls -l /usr/bin/passwd file /usr/bin/passwd SUID (Set UID) 讓一般使用者在執行某些程式的時候, 能夠暫時的具有該程式 擁有者 的權限。 一般使用者可以 /usr/bin/passwd 可修改 /etc/shadow ,但 /etc/shadow 的權限? SUID 僅可用在『二進位制檔案(binary file)』上 SUID 對目錄無效。 VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

30 Linux基礎-- Linux 檔案與目錄管理
檔案與目錄的特殊權限(續) SGID (Set GID) 檔案: 如果 SGID 是設定在 binary file 上面,則不論使用者是誰,在執行該程式的時候, 他的有效群組 (effective group) 將會變成該程式的群組所有人 (group id)。 目錄: 如果 SGID 是設定在 A 目錄上面,則在該 A 目錄內所建立的檔案或目錄的 group ,將會是 此 A 目錄的 group ! VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

31 Linux基礎-- Linux 檔案與目錄管理
檔案與目錄的特殊權限(續) Sticky Bit (SBIT) 只對目錄有效; 當使用者在該目錄下具有 x 與 w 的權限時; 他在該目錄下所建立的檔案僅有自己與 root 可以刪除。 系統中的 /tmp 目錄! SUID/SGID/SBIT 的權限設定: SUID = 4 SGID = 2 SBIT = 1 SUID: chown 4755 /tmp/man.config SGID: chown 2755 /tmp/man.config VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

32 Linux基礎-- Linux 檔案與目錄管理
檔案的搜尋 搜尋指令: which (與環境變數 PATH 有關) 參數: -a :將所有可以找到的指令均列出,而不止第一個 範例: which traceroute which -a traceroute 從資料庫內搜尋檔案名稱: locate locate filename 資料庫所在: FC4: /var/lib/slocate SuSE server 9 : /var/lib/locatedb (findutils-locate) 更新資料庫: /usr/bin/updatedb /etc/updatedb.conf VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

33 Linux基礎-- Linux 檔案與目錄管理
檔案的搜尋(續) whereis [-bm] 同樣是搜尋資料庫 /var/lib/locatedb 參數: -b :只找 binary 的檔案 -m :只找在說明檔 manual 路徑下的檔案 -s :只找 source 來源檔案 -u :沒有說明檔的檔案! 範例: whereis passwd whereis -b passwd whereis -m passwd VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

34 Linux基礎-- Linux 檔案與目錄管理
檔案的搜尋(續) find 搜尋檔案: find path [option] [action] 與時間有關的參數: -atime n:在 n 天之前的一天內被 access 即存取過的 -ctime n:在 n 天之前的一天內被 changed 即改變、新增 -mtime n:在 n 天之前的一天內被 modified 即修改 -newer file:比 file 還要新的檔案就列出來! 與使用者或群組有關的: -gid n:尋找 群組 ID 為 n 的檔案 -group name :尋找群組名稱為 name 的檔案 -uid n:尋找擁有者 ID 為 n 的檔案 -user name :尋找使用者名稱為 name 的檔案 -nouser :搜尋沒有『user』的檔案(該 UID 不在 /etc/passwd 內) -nogroup: 搜尋沒有群組名的檔案(GID 不在 /etc/group 內) VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

35 Linux基礎-- Linux 檔案與目錄管理
檔案的搜尋(續) find 搜尋檔案: find path [option] [action](續) 檔案權限與檔名: -name file :尋找檔名為 file 的檔案名稱 -size [+-]SIZE : 單位可以是 50k 或 50c (bytes), + 是大於, - 是小於。 -type type :尋找檔案屬性為 type 的檔案,type 包含了 b, c, d, p, l, s, 這些與前一章的屬性相同!例如 l 為 Link 而 d 為路徑之意! -perm [+- ]mode:搜尋檔案權限為: -perm +mode 包含任一 mode 的屬性; -perm -mode 包含所有 mode 的屬性 -perm mode 等於 mode 的屬性。 VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

36 Linux基礎-- Linux 檔案與目錄管理
檔案的搜尋(續) find 搜尋檔案: find path [option] [action](續) 進行額外指令動作: -print -exec command \; 將 find 找到的內容以 command 來處理。 在 -exec 到 \; 中間,可以 {} 代表 find 的搜尋結果! 以 find 練習: 在 / 中搜尋檔案檔名為 crontab 的檔案所在地; find / -name crontab 在 /tmp 當中搜尋比 /etc/crontab 還要新的檔案; find /tmp -newer /etc/crontab 在 /etc 當中,搜尋一天內被讀取過的檔案 find -atime 0 VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理

37 Linux基礎-- Linux 檔案與目錄管理
檔案的搜尋(續) 練習:find 搜尋檔案 尋找系統中,屬於 lp 這個群組的檔案 find / -group lp 尋找 /etc 底下,大於 50 Kbytes 的檔案: find /etc -size +50k 尋找有任何 SUID/SGID/SBIT 的檔案 find / -perm 呈上題,如果要將資料以長資料列出? find / -perm exec ls -l {} \; 尋找 /var 底下含有 fifo 特性的檔案 find /var -type p VBird (2005/08/04) Linux基礎-- Linux 檔案與目錄管理


Download ppt "Chapter 7 Linux 檔案與目錄管理 VBird 2005/08/04"

Similar presentations


Ads by Google