1. Hard Disk Driver硬碟
    1. 硬碟結構
      1. Head磁頭
      2. Track磁軌
      3. Cylinder磁柱:硬碟分割區的最小單位
      4. Sector磁區:硬碟記錄資料的最小單位(512Bytes)
      5. Block磁塊:系統儲存資料的最小單位
      6. 總容量C*H*S
    2. 設備種類
      1. IDE/ATA:Integrated Device Electronics
        1. 最多連接四個設備
        2. 匯流排16bits
        3. 傳輸速率:66,100,133MB/sec
      2. SCSI:Small Computer System Interface
        1. 可連接八個以上的設備
        2. 傳輸速率:160,320,640MB/sec
      3. SATA:Serial ATA
        1. 可連接八個以上的設備
        2. 需啟動AHCI(Advanced Host Controller Interface)
        3. 支援熱插拔(Hotplug)
        4. 傳輸速率:1.5(I), 3.0(II), 6.0(III)Gb/sec
      4. SAS:Serial Attached SCSI
        1. 可連接四個設備
        2. 支援熱插拔(Hotplug)
        3. 傳輸速率:3.0, 6.0Gb/sec
    3. 裝置代號
      1. IDE/ATA
        1. Primary
          1. Master:/dev/hda
          2. Slave:/dev/hdb
        2. Secondary
          1. Master:/dev/hdc
          2. Slave:/dev/hdd
      2. SCSI, SATA, USB
        1. /dev/sd[a-z]
    4. 分割種類
      1. MBR(Master Boot Record)
        1. 64 Bytes Partition Table
        2. 4 Partition * 16Bytes
        3. 1 Sector=512Bytes
      2. Primary Partition主要分割區
        1. 最多只能有四個 hda[1-4]
      3. Extended Partition延伸分割區
        1. 主要分割的一種,最多只有一個 hda[1-4]
      4. Logic Partition邏輯分割區
        1. 存在於延伸分割區,可以有多個 hda[5-n]
  2. 目錄與檔案
    1. 目錄
      1. 概念
        1. 絕對路徑
        2. 相對路徑
        3. 所有目錄下都會有兩個目錄 "." 與 ".."
        4. 根目錄上層目錄 ".." 與 "." 是同一個目錄
      2. 符號
        1. . :當前目錄
        2. .. :上一層目錄
        3. - :前一個工作目錄
        4. ~ :目前使用者家目錄
    2. 檔案
      1. 檔案屬性
        1. 權限、連結數、擁有者、群組、檔案容量、修改日期、檔名
      2. 檔案種類
        1. d:目錄(directory)
        2. -:檔案(regular file)
          1. 純文字檔(ASCII)
          2. 二進位檔(binary)
          3. 資料格式檔(data)
        3. l:link file
        4. 設備與裝置檔(device)
          1. b(block):可供儲存的周邊設備
          2. c(character):序列設備(鍵盤滑鼠)
        5. s:資料接口檔(sockets)../var/run
        6. p:資料輸送檔(FIFO,pipe),解決多個程序同時存取一個檔案
    3. 連結
      1. ln -s oldFile newFile(symbolic link)
        1. 可跨檔案系統
        2. 可建立目錄
        3. 產生新的inode
        4. 搜尋效率較差
      2. ln oldFile newFile(hard link)
        1. 不可跨檔案系統
        2. 不可建立目錄
        3. 不產生inode,不佔容量
        4. 執行效率較快
  3. 檔案系統
    1. / 根目錄
      1. 家目錄
        1. /root
        2. /home
      2. 開機目錄
        1. /boot:開機使用檔案,Linux核心檔案以及開機選單、vmlinuz
        2. /etc:系統主要設定檔
          1. /etc/init.d/
          2. /etc/xinetd.d/
          3. /etc/X11/
          4. /etc/init.d(啟動腳本)
        3. /sbin(system binary):重要的系統執行檔,開機、修復、還原系統所須指令
        4. /bin(binary):系統執行檔,單人維護模式下還能夠被操作的指令
        5. /lib(library):開機時與/bin、/sbin目錄執行檔所用到的函式庫
        6. /dev(device):任何裝置與周邊設備都以檔案的型態存在於此
      3. 掛載目錄
        1. /media:軟碟、光碟裝置掛載於此,就是可移除的裝置
        2. /mnt(monut):額外的裝置可掛載於此,常為暫時掛載用
      4. 軟體目錄
        1. /usr(Unix software resource):Unix作業系統軟體資源
          1. /usr
          2. /usr/include(C++ header與include檔案放置於此)
          3. /usr/src(一般原始碼放置於此)
          4. /usr/lib(應用程式的函式庫與object file)
          5. /usr/local(系統管理員在本機自行安裝的軟體)
          6. /usr/sbin(非系統正常運作所需的系統指令)
          7. /usr/bin(與開機過程無關的使用者指令)
          8. /usr/share(共享文件)
          9. /usr/X11R6(X Window System重要資料所放置的目錄)
          10. 系統安裝完畢時,此目錄會佔用最多硬碟容量
        2. /opt(option):第三方協力軟體放置的目錄(/usr/local)
      5. 暫存紀錄
        1. /var(variable):常態性變動檔案
          1. /var
          2. /var/cache(程式執行過程中所產生的暫存檔)
          3. /var/lib(程式執行過程中,需要使用的資料檔案)
          4. /var/lock(某些裝置或檔案資源只能被一個應用程式使用,需將該裝置上鎖)
          5. /var/log(重要!登錄檔放置目錄,紀錄登入者資訊)
          6. /var/mail(個人電子郵件信箱目錄,常與/var/spool/mail目錄互連)
          7. /var/run(某些程式或服務啟動後,會將PID放置在此)
          8. /var/spool(放置佇列資料,就是排隊等待其他程式使用的資料)
          9. 系統運作後,才會漸漸佔用硬碟容量
          10. 包含 cache、log、軟體運作所產生的檔案
        2. /srv(service):一些網路服務啟動之後,所需取用的資料
        3. /tmp(temp):正在執行的程序暫時放置檔案的地方,建議定期清理
      6. 行程
        1. /proc:process
    2. Filesystem Hierarchy Standard(FHS)
      1. 四種型態
        1. 可分享(shareable)
        2. 不可分享(unshareable)
        3. 不可變(static)
        4. 可變動(variable)
      2. 三個目錄
        1. /(root,根目錄):與開機系統有關
        2. /usr(unix software resource):與軟體安裝/執行有關
        3. /var(variable):與系統運作過程有關
    3. Network File System(NFS)
  4. 說明文件
    1. man(manual)
      1. 九大分類
        1. 1.General Command一般指令
        2. 2.System Calls系統呼叫
        3. 3.Subroutines函式庫
        4. 4.Special Files特殊檔案
        5. 5.File Formats檔案格式
        6. 6.Games遊戲相關
        7. 7.Macros and Conventions巨集和習慣
        8. 8.Maintenence Commands維護指令
        9. 9.Kernel Interface核心介面
      2. 鍵盤指令
        1. 空白鍵:向下翻一頁
        2. PageDown:向下翻一頁
        3. PageUp:向上翻一頁
        4. Home:到第一頁
        5. End:到最後一頁
        6. /string:往下搜尋
        7. ?string:往上搜尋
        8. n:同向持續搜尋
        9. N:反向持續搜尋
        10. q:離開
      3. 檔案路徑
        1. 文件資料:/usr/share/man/
        2. 軟體文件:/usr/share/doc/
        3. 路徑設定:/etc/man.config/
      4. 選項
        1. -f:相同於whatis(完整比對;whatis資料庫)
        2. -k:相同於apropos(模糊比對;whatis資料庫)
        3. -K:搜尋man page所有內容
    2. info
    3. whatis
      1. makewhatis:/usr/sbin/make/makewhatis(索引man的NAME標題)
      2. whatis:系統指令的文件查詢(完整比對;whatis資料庫)
      3. apropos:系統指令的文件查詢(模糊比對;whatis資料庫)
  5. 時間類型
    1. modification time(mtime):當檔案的內容被改變時更新(ls)
    2. status time(ctime):當檔案的狀態改變時更新(無法任意指定)
    3. access time(atime):當檔案的內容被讀取時更新(cat)
  6. 標準輸入、輸出、錯誤
    1. 訊息標準
      1. 標準輸入STDIN:0(Standard Input)
      2. 標準輸出STDOUT:1(Standard Output)
      3. 標準錯誤STDERR:2(Standard Error)
    2. terminal終端機
      1. STDERR
      2. STDOUT
    3. 訊息導向
      1. 重新導向(Redirection)
      2. 附加重新導向(Append Redirection)
      3. 多重重新導向(Multiple Redirection)
      4. 重新導向合併(Redirection Merge)
      5. 防止重新導向覆蓋檔案(No Clobber)
  7. 常用指令
    1. Command Line指令列
      1. Command指令+Option選項+Argument引數
      2. Prompt指令提示字元
        1. $:一般使用者
        2. #:系統管理員
    2. 常用選項
      1. -f:force
      2. -i:interactive
      3. -v:verbose
      4. -R:recursive
    3. 目錄專用
      1. cd(change directory)變更目前工作目錄
      2. pwd(print working directory)顯示目前工作目錄
        1. -P:顯示確實路徑,而非link
      3. mkdir(make directory)
        1. -m(mode):建立目錄同時指定權限
          1. mkdir -m 711 test
        2. -p(parents):建立有階層式目錄
      4. rmdir(remove directory)
        1. 僅能刪除空目錄喔!
        2. -p(parents):刪除有階層的目錄
    4. 檔案目錄
      1. ls(list directory content)
        1. -a:顯示含隱藏檔(.開頭)
        2. -l:顯示詳細資訊
        3. -d:檢視目錄資訊
        4. -F:檔案名稱後加上類型符號
          1. *:執行檔
          2. /:目錄
          3. @:Symbolic link
          4. =:IPC(Socket pipe)
        5. -R:連同子目錄內容一起列出
        6. -S:以檔案大小排序(File size)
        7. -h:將檔案容量以人類易讀方式列出
        8. -i:列出 inode號碼
        9. -n:列出UID與GID而非使用者與群組
        10. -r:排序結果反轉riviver
        11. -t:以修改時間排序
        12. -s:列出檔案大小(block size)
        13. -x:用一橫行列出檔案
        14. --color=never:設定顯示顏色
        15. --full-time:顯示完整時間
        16. --time={atime,ctime}:變換時間屬性
      2. touch(修改檔案時間)
        1. -a(atime):改變存取時間
        2. -m(mtime):改變修改時間
        3. -c:存在的檔案改變其建立時間,不存在的檔案不要建立
        4. -d:指定時間(atime/mtime)
        5. -t:修改時間的格式[[CC]YY]MMDDhhmm[.ss](atime/mtime)
        6. -r:reference,atime,mtime
        7. 預設會改變atime/ctime/mtime,ctime無法指定時間
      3. file(觀察檔案類型)
        1. 可以知道檔案是ASCII或data或binary
      4. 三大指令
        1. cp(copy)
          1. 選項
          2. -f:不做警告提示
          3. -i:提示確認
          4. -r(R):遞迴複製
          5. -a:等於使用-dpR
          6. -d:若為link file,則複製link file而非檔案本身
          7. -p:保留原有檔案屬性
          8. -u:只複製目的不存在與取代時間較舊的檔案(update)
          9. 建立連結
          10. -l:複製成為hard link(ln)
          11. -s:複製成為symbolic link(ln -s)
          12. 無任何選項時,cp是複製連結檔的原始檔,而非連結檔
        2. mv(move)
          1. -f:不做警告提示
          2. -i:提示確認
          3. -u:update
        3. rm(remove)
          1. -f:不做警告提示
          2. -i:提示確認
          3. -r(R):遞迴刪除
    5. 搜尋檔案
      1. whereis:找出指令、原始碼、man page所在路徑
      2. which:找出指令所在路徑
      3. locate:根據updatedb的資料庫找出檔案
      4. updatedb:建立或更新指令locate所需資料庫
        1. (root權限)
        2. /etc/updatedb.conf
          1. PRUNE:刪除、削減
          2. PRUNEFS:不需要的FS Type
          3. PRUNEPATHS:不需要的目錄
        3. 系統預設每日會執行一次updatedb
        4. -e:排除不作索引的目錄 ex. updatedb -e /root,/tmp
      5. find:即時搜尋系統上的檔案
        1. find_目錄_表示法_處理法
          1. 目錄可以指定一個或多個,預設為目前目錄
          2. 表示法(參考檔案屬性)
          3. -name檔案名稱:尋找檔案名稱
          4. -type檔案類型:尋找檔案類型
          5. b,c,d,p,f,l,s
          6. -user使用者名稱:尋找屬於使用者的檔案
          7. -group群組名稱:尋找屬於群組的檔案
          8. -perm權限:尋找符合權限的檔案
          9. -inum inode編號:尋找屬於該inode的檔案
          10. -atime N:找N天內被存取過的檔案
          11. 處理法
          12. -print:將找到的檔案顯示出來(預設)
          13. -exec cmd {} ... \;:將找到的檔案以指令處理
          14. -ok 指令{} ... \;:作用與-exec相同,差別只有會詢問是否處理
          15. {}表示所找到的檔案,大括號中間不能有空格!
  8. 過濾指令(Filter Command)
    1. 檢視檔案
      1. 直接檢視
        1. cat(concatenate):
          1. 檢視內容
          2. -A:等於 -vET
          3. -v:顯示看不出來的特殊符號(F1..)
          4. -E(Ends):標示結尾字元$
          5. -T(Tabs):顯示TAB字元為^I
          6. 標示行號
          7. -b:標示非空行行號
          8. -n:標示所有行號
          9. -s(squeeze):把相鄰空行轉成一個空行(blank lines)
          10. 將標準輸入或檔案內容導到標準輸出,無標準錯誤!
        2. tac:將cat輸出的順序反過來顯示
        3. nl(Number Lines):標示行號
          1. -b a:標示所有含空行行號(cat -n類似)
          2. -b t:標示非空行行號(預設)(cat -b類似)
          3. -n:指定行號表示法
          4. -w:行號欄位佔用的位元數
      2. 翻頁檢視
        1. more:
          1. Enter:下一行
          2. 空白鍵:下一頁
          3. ^b:上一頁
          4. /字串:往下搜尋字串
          5. :f:顯示檔名與目前行數
          6. q:離開
        2. less:
          1. more加強版,具有與vi的部份功能
          2. Enter、j:下一行
          3. k:上一行
          4. 空白鍵、f、PgDn:下一頁
          5. b、PaUp:上一頁
          6. q:離開
          7. v:進入vi模式
          8. /字串:往下搜尋字串
          9. ?字串:往上搜尋字串
          10. n:繼續上次搜尋
          11. N:反向繼續上次搜尋
          12. [n]G:到第n列
      3. 資料擷取
        1. head:檢視前幾行
          1. -n X:指定顯示前X行
          2. -n -X:指定倒數X行不顯示
          3. 預設顯示前10行
        2. tail:檢視後幾行
          1. -n X:指定顯示後X行
          2. -n +X:指定顯示第X行到最後一行
          3. -f:使檔案保持開啟狀態(^c結束)
          4. 預設顯示後10行
    2. 行列處理
      1. cut:欄位分隔
        1. 預設分隔字元為TAB
        2. -d:定義區隔字元
        3. -f(field):指定取出第幾個欄位(領域)
        4. -b:列出指定byte(ex.ls -l /dev/ | cut -b1-10)
        5. -c:跟-b很像,國際化字元會有差異
      2. uniq:把相同且相鄰的列變成一列
        1. -c:相鄰重複的列數有多少
      3. sort:以欄位排序
        1. 預設是以ASCII順序排序,以英文小寫優先
        2. -n:以數字排序,預設以文字排序
        3. -u:若有相鄰相同的行列,則顯示一行列表示;如同uniq
        4. -r:將排序結果反轉
        5. -o <檔案>:將排序結果輸出(STDOUT)到檔案
        6. -b:忽略空白字元
        7. -t:指定區隔字元
        8. -k POS1[,POS2]:指定排序領域
      4. wc(word count):統計字數
        1. -l:列出檔案有多少列(預設)
        2. -w:列出檔案有多少個字(預設),空白鍵分開的
        3. -c:列出檔案有多少個位元組(預設),含空白與換行
        4. -L:最長行的總字元數
    3. 處理檔案
      1. tr(translate):字元轉換
      2. grep
      3. sed
      4. od:非純文字檔案
        1. -t Type
          1. a:預設字元輸出
          2. c:使用ASCII字元輸出
          3. d[size]:使用十進位輸出
          4. f[size]:使用浮點數輸出
          5. o[size]:使用八進位輸出
          6. x[size]:使用十六進位輸出
      5. strigns
      6. hexdump
      7. join
      8. split
      9. paste
      10. expand
      11. unexpand
    4. tee
    5. xargs
    6. 能接受STDIN資料與輸出到STDOUT/STDERR的指令
    7. |(pipeline):只能輸出STDOUT,STDERR會被濾掉
  9. 權限指令
    1. -rwxrwxrwx(檔案類型、擁有者、群組、其他人)
    2. 檔案權限
      1. r(read):可讀取檔案內容的權限
      2. w(write):可新增、編輯、修改檔案內容(不含刪除)的權限
      3. x(execute):可執行檔案的權限
    3. 目錄權限
      1. r(read contents in directory):有讀取目錄結構清單的權限(只有檔案名稱列表)
      2. w(modify contents of directory):異動該目錄結構清單的權限
        1. 建立新的檔案與目錄
        2. 刪除已存在的檔案與目錄(不論該檔權限為何)
        3. 更名已存在的檔案與目錄
        4. 搬移已存在的檔案與目錄
      3. x(access directory):能否進入該目錄成為工作目錄(才能取得檔案屬性)
    4. 相關指令
      1. chgrp改變檔案所屬群組
        1. chgrp [-R] grpname dirname/filename
      2. chown改變檔案擁有者
        1. chown [-R] user:grp dirname/filename
      3. chmod改變檔案權限
        1. 數字
          1. chmod [-R] rwxrwxrwx dirname/filename
          2. r=4; w=2; x=1; SUID=4; SGID=2; SBIT=1
        2. 符號
          1. chmod [-R] [u,g,o,a][+,-,=][r,w,x] dirname/filename
        3. 數字與符號可以用逗號隔開複數設定
        4. Change permission Mode
        5. 指有擁有者與root可以更改檔案權限
      4. chattr設定隱藏屬性
      5. lsattr顯示隱藏屬性
      6. umask預設權限
        1. 檔案的預設權限-rw-rw-rw-:666
        2. 目錄的預設權限drwxrwxrwx:777
        3. root
          1. 預設umask:0022
          2. 檔案權限-rw-r--r--
          3. 目錄權限drwxr-xr-x
        4. 使用者
          1. 預設umask:0002
          2. 檔案權限-rw-rw-r--
          3. 目錄權限drwxrwxr-x
        5. User file creation mode MASK(bitwise NOT)
    5. 特殊權限
      1. SUID(SetUID):4
        1. SUID只對二進位程式有效(shellscript不行)
        2. 執行者對該程式需有x可執行權限
        3. 僅在該程式run-time中有效
        4. 執行者將具有該程式擁有者的權限
      2. SGID(SetGID):2
        1. 檔案
          1. SGID只對二進位程式有效
          2. 執行者對該程式需有x可執行權限
          3. 執行者將具有該程式的群組權限
        2. 目錄
          1. 該目錄下建立的檔案,擁有群組皆為該目錄的群組
      3. SBIT(Sticky Bit):1
        1. 只對目錄有效果(others才可用)
        2. 目錄下其他使用者不能刪除與更名不屬於自己的檔案
  10. CentOS
    1. uname -r
    2. lsb_release -a
    3. basename:取得路徑的檔案名稱
    4. dirname:取得路徑的目錄名稱
    5. ctrl+c:中斷或停止程序
    6. ctrl+d:停止輸入EOF
  11. 磁碟與檔案系統
    1. 磁碟檔名
      1. /dev/sd[a-p][1-15]:為SCSI, SATA, USB, Flash隨身碟等介面的磁碟檔名
      2. /dev/hd[a-d][1-63]:為 IDE 介面的磁碟檔名
      3. 主要分割與延伸分割最多可以有四筆(硬碟的限制)
      4. 延伸分割最多只能有一個(作業系統的限制)
      5. 邏輯分割是由延伸分割持續切割出來的分割槽
      6. 主要分割與邏輯分割才能夠被格式化
      7. 邏輯分割的數量依作業系統而不同
    2. 檔案系統
      1. Linux ext2,3
        1. Sector磁區
          1. 第一個磁區
          2. 主要開機區(Master boot record, MBR), MBR 佔有 446 bytes。
          3. 分割表(partition table),partition table 則佔有 64 bytes。
        2. superblock
          1. 記錄此FS的整體資訊,包括inode/block的總量、使用量、剩餘量, 以及檔案系統的格式與相關資訊等
        3. inode
          1. 記錄檔案的屬性,一個檔案佔用一個inode,同時記錄此檔案的資料所在的 block 號碼
        4. block
          1. 實際記錄檔案的內容,若檔案太大時,會佔用多個 block
        5. block group
          1. Ext2 檔案系統在格式化是區分為多個區塊群組 (block group)
          2. data block (資料區塊)
          3. Ext2 檔案系統中所支援的 block 大小有 1K, 2K 及 4K 三種而已
          4. block bitmap (區塊對照表)
          5. inode table (inode 表格)
          6. 每個 inode 大小均固定為 128 bytes
          7. 記錄檔案的屬性以及該檔案實際資料是放置在哪幾號 block 內
          8. 每個檔案都僅會佔用一個 inode 而已
          9. inode 記錄一個 block 號碼要花掉 4byte
          10. 定義為12個直接,一個間接, 一個雙間接與一個三間接記錄區
          11. inode bitmap (inode 對照表)
          12. Superblock (超級區塊)
          13. superblock 的大小為 1024bytes
          14. block 與 inode 的總量
          15. 未使用與已使用的 inode / block 數量
          16. block 與 inode 的大小 (block 為 1, 2, 4K,inode 為 128 bytes)
          17. FileSystem掛載時間、最近一次寫入時間、最近一次檢驗磁碟 (fsck) 的時間
          18. 檔案系統已被掛載,則 valid bit 為 0 ,若未被掛載,則 valid bit 為 1
          19. 一個檔案系統應該僅有一個 superblock 而已
          20. Filesystem Description (檔案系統描述說明)
        6. 每個區塊群組都有獨立的 inode/block/superblock 系統
    3. 掛載設備
      1. mkfs
        1. -t:製作檔案系統ext3,gfs,gfs2,msdos,vfat,cramfs,預設為ext2。
      2. mke2fs
        1. 製作ext2,ext3專屬檔案系統
        2. mke2fs [-j][-b 區塊大小][-L 標籤名稱] <設備名稱>
          1. -j:指定journal成為ext3
          2. -b:區塊大小1k, 2k, 4k
          3. -L:標籤名稱e2label
          4. -T:指定檔案系統的參數型式,一個inode多大
          5. -M:決定最後掛載的目錄
          6. -m:保留區塊百分比,預設5%給root
          7. -N:指定inode數量,根據bytes/inode的比例
          8. -n:不實際建立檔案系統,先測試參數內容
          9. -i:指定bytes/inode的比例大小,檔案系統產生後inode就不能再增加
      3. mount
        1. mount [-a] [-t 檔案系統] [-o 選項] <設備> <掛載點>
          1. 無參數:列出/etc/mtab紀錄正在掛載的檔案系統
          2. -a(auto):參考/etc/fstab內容掛載檔案系統
          3. -t:檔案系統類型,預設為ext2或ext3
          4. -o 選項:
          5. auto:執行-a時,自動掛載
          6. noauto:執行-a時,不自動掛載
          7. user:可讓一般使用者掛載該檔案系統
          8. nouser:所有一般使用者皆不能掛載該檔案系統
          9. rw:掛載該檔案系統可讀寫
          10. ro:掛載該檔案系統是唯讀
          11. remount:無須卸載,直接重新掛載檔案系統
          12. loop:掛載loopback設備專用
          13. defaults:包含rw,suid,dev,exec,auto,nouser,async
          14. -n:掛載後不將訊息寫入/etc/mtab
        2. 檔案系統掛載後,會改變原本掛載點的屬性、權限
      4. umount
        1. umount [-a] [-fl] <設備名稱|掛載點>
          1. -a(all):參考/etc/mtab內容卸載所有檔案系統
          2. -f(force):強迫卸載
          3. -l(lazy):等檔案系統忙完後在卸載
        2. 卸載前提:檔案系統必須不在busy狀態
      5. 掛載順序:已格式化設備→ 建立掛載點→ 掛載,什麼類型的,檔案系統到,掛載點→ 卸載,什麼掛載點
    4. 設備工具
      1. du(Disk Usage):檔案或目錄的使用狀況
        1. du -sh /*
      2. df(Disk Free):檔案系統的使用狀況
        1. df -haTi
      3. fsck(Filesystem Check):檢查檔案系統
        1. 只有root可以執行
        2. 必須先卸載該檔案系統或在ro狀態下
        3. fsck [-t 檔案系統類型] [選項] <設備名稱>
          1. 選項
          2. -t type:指定檔案系統格式(msdos, vfat, ext2, ext3...)
          3. -p(repair):自動修復損壞的檔案系統
          4. -y(yes):詢問都以yes回覆
          5. -c(check):檢查壞軌後放到壞軌黑名單
          6. -A:依據/etc/fstab內容掃描
      4. e2fsck:專門檢查ext2/ext3檔案系統
        1. 與fsck相同
      5. dumpe2fs:顯示ext2/ext3檔案系統詳細資訊
      6. tune2fs:ext2/ext3檔案系統微調指令
        1. tune2fs [選項] <設備名稱>
        2. -l:列出目前設備的參數狀況
        3. -L 名稱:指定檔案系統的標籤名稱
        4. -j:將ext2轉成ext3
          1. 注意:ext2/ext3 inode數量無法變更
        5. -O has_journal:增加journal的功能
        6. -O ^has_journal:移除journal的功能
        7. -m n:設定保留給root的block百分比,預設為5%
        8. -r n:直接設定保留給root的block數量
        9. -c n:設定最大掛載的次數
      7. e2label:ext2/ext3檔案系統標籤指令
  12. 虛擬記憶體Swap
    1. 通常為實體記憶體的1.5 ~ 2倍大小
    2. mkswap <設備名稱>:把設備格式化為swap
    3. swapon <設備名稱>:把該swap加入系統中
    4. swapoff <設備名稱>:把該swap從系統移除
    5. free:顯示實體記憶體與虛擬記憶體使用狀況
  13. 磁碟配額Quota
    1. 必須核心與檔案系統同時提供配額功能
    2. 能限制使用者或群組,對檔案系統的磁碟空間(block)與檔案數量(inode)作配額限制
    3. mount -o usrquota,grpquota <設備名稱> <掛載點>
    4. quota:一般使用者顯示其配額資訊
      1. quota [-ug] [使用者|群組]
    5. quotacheck:建立與更新配額所需資料庫
      1. aquota.user, aquota.group
      2. -augv(只搜尋/etc/mtab已掛載有配額選項的檔案系統)
    6. quotaon:啟動配額功能
      1. quotaon -augv [裝置或掛載點]
    7. quotaoff:關閉配額功能
      1. quotaoff -augv [裝置或掛載點]
    8. edquota:編輯使用者或群組的配額
      1. edquota [選項] <使用者|群組>
      2. -u:編輯使用者配額
      3. -g:編輯群組配額
      4. -f:指定某個檔案系統(預設為所有quota檔案系統)
      5. -t:指定gracefull time,單位可以為秒分時天
      6. -p:指定某個使用者為樣板做複製
    9. repquota:顯示所有配額資訊
      1. repquota -augv
      2. Block limits:使用的磁碟空間,單位1KB
      3. File limits:使用的檔案數量
      4. Soft limit:使用者或群組的配額限制(會開始警告)
      5. Hard limit:使用者或群組的最大配額上限
      6. Graceful time:容許使用者或群組超過配額的時間(超過Soft limit幾天:7)