linux 的檔案編輯

36
著著著著著 © 著著著著著著著著著著 1 Linux 著著著著著

Upload: tejana

Post on 14-Jan-2016

108 views

Category:

Documents


0 download

DESCRIPTION

Linux 的檔案編輯. 文字編輯器 vim. 所有 UNIX 與 Linux 都內建的文字編輯器 只要學好 vim ,在任何 Linux 都能夠利用它來編輯文字檔案. 文字編輯器 vim. 一般模式( Common mode ) 可以使用具有特殊意義的按鍵 在文件內容中移動、刪除、複製、貼上等功能 在一般模式中,按下 i 、 o 或 a 鍵可以進入編輯模式 按下 冒號「 : 」 則會進入命令模式 編輯模式( Insert mode ) 按下內容會新增在文件游標所在處 像打字一樣,按鍵不再具有特殊意義 按下 [ESC] 鍵 可回到一般模式. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Linux  的檔案編輯

著作權所有 © 旗標出版股份有限公司 1

Linux 的檔案編輯

Page 2: Linux  的檔案編輯

2

‣ 所有 UNIX與 Linux 都內建的文字編輯器 ‣ 只要學好 vim ,在任何 Linux 都能夠利用它來編輯文字檔案

文字編輯器 vim

Page 3: Linux  的檔案編輯

3

‣ 一般模式( Common mode )‣ 可以使用具有特殊意義的按鍵 ‣ 在文件內容中移動、刪除、複製、貼上等功能 ‣ 在一般模式中,按下 i、 o或 a 鍵可以進入編輯模式 ‣ 按下冒號「 : 」則會進入命令模式

‣ 編輯模式( Insert mode )‣ 按下內容會新增在文件游標所在處 ‣ 像打字一樣,按鍵不再具有特殊意義 ‣ 按下 [ESC] 鍵可回到一般模式

文字編輯器 vim

Page 4: Linux  的檔案編輯

4

‣ 命令模式功能‣ :w filename ( 存入指定檔案 )‣ :wq ( 寫入並離開 vi )‣ :q! ( 強迫離開並放棄編輯的檔案 )‣ :r [ 檔案 ] ( 讀入檔案,並將內容插入目前游標之後一行 )‣ :L1,L2d ( 刪除自行 L1 至行 L2 的文字 )‣ :L1,L2s/pattern1/pattern2/g ( 將行 L1 至行 L2 的文字中, pattern1 的字串改為 pattern2 的字串,若無 g 則僅更換每一行所匹配的第一個字串,如有 g 則將每一個字串均做更換、例 1,$s/root/adm/g)

‣ :set nu ( 列出行號 ) :set nonu ( 不列出行號 )

文字編輯器 vim

Page 5: Linux  的檔案編輯

5

‣ 命令模式功能‣ :L1 ( 跳至第 L1 行 )‣ /pattern ( 往下尋找 pattern 字串 ) ,按“ n” 找下一個符合字串 ,按“ N” 找上一個符合字串

‣ ?pattern ( 往上尋找 pattern 字串 ) ,按“ n” 找上一個符合字串 ,按“ N” 找下一個符合字串

‣ :f ( 顯示編輯狀態 )‣ :! 指令 ( 執行指令 )

文字編輯器 vim

Page 6: Linux  的檔案編輯

6

‣ 命令模式( Command line mode )‣ 可以儲存、開啟檔案、結束 vi 、取代特定文字等檔案處理功能

‣ 按下 ESC 鍵可回到一般模式 ‣ 觀察左下方是否出現「 : 」冒號

文字編輯器 vim

Page 7: Linux  的檔案編輯

7

‣ 一般模式下的功能按鍵‣ 瀏覽文件‣ 利用以下按鍵,我們可以在 vi 內瀏覽文件內容:‣ h :游標向左移,與 [ 左鍵 ] 的功能相同。‣ j :游標向下移,與 [ 下鍵 ] 的功能相同。‣ k :游標向上移,與 [ 上鍵 ] 的功能相同。‣ l :游標向右移,與 [ 右鍵 ] 的功能相同。‣ PageUp :游標向上一頁‣ PageDown :游標向下一頁‣ G :游標移到文件最後一行。 (:$)‣ gg :游標移到文件第一行。 (:1)

文字編輯器 vim

Page 8: Linux  的檔案編輯

8

‣ 一般模式下的功能按鍵‣ Ctrl+g :顯示游標目前位置的資訊,包括第幾行,第幾個字元,位於文件中的百分比。

‣ yy: 複製游標所在該行‣ p :將先前複製的內容,貼在游標所在下行,原文字會往下移

‣ dd :刪除游標所在行,原該行下方資料往上移。‣ u :復原上次做的更動‣ . :重覆上一個動作

文字編輯器 vim

Page 9: Linux  的檔案編輯

9

‣ 一般模式下的刪除功能‣ x : 刪除游標所在後面 1 個字元、 X : 刪除游標所在前面 1 個字元

‣ #x : 例如 5x 表刪除 5 個字元 、 #X : 例如 5X 表刪除游標所在前面 5 個字元

‣ dd : 刪除游標所在之行‣ #dd : 例 5dd 表刪除自游標算起 5 行‣ dw : 刪除游標所在之單字 ( 定義為連續的文數字或符號 )

文字編輯器 vim

Page 10: Linux  的檔案編輯

10

‣ 一般模式下的更改 (change) 功能‣ cw : 更改游標處之單字 ( 定義為連續的文數字或符號 )到此一單字之字尾處

‣ c#w : 例 c3w 表更改 3 個字‣ #r : 例 3r取代游標處之 3個字元‣ R : 進入編輯取代模式,並 取代字元直到按 ESC 為止‣ #s : 以字元為單位置換, 進入編輯模式,並插入字元直

到按 ESC 為止

文字編輯器 vim

Page 11: Linux  的檔案編輯

11

‣ 一般模式下的複製 (yank) 貼上 (put) 功能‣ #y : 複製游標處之字元到緩衝區‣ #yw : 複製游標處之單字 ( 定義為連續的文數字或符號 )到此一單字之字尾處到緩衝區

‣ #yy : 複製游標處所在行內容到緩衝區‣ p : 貼上緩衝區的內容到游標處

文字編輯器 vim

Page 12: Linux  的檔案編輯

12

‣ 常用指令‣ 輸入 a、 i、 o‣ 複製 yy、 yw、 p‣ 刪除 x 、 dd‣ 取代 R‣ 置換 s、 cw‣ 其他 u、‧、 ~ 、 :$、 :1、

CTRL+G、 :L1,L2s/pattern1/pattern2/g

文字編輯器 vim

Page 13: Linux  的檔案編輯

13

‣ 輸出設備一般有螢幕、印表機、檔案等 ‣ 輸入設備有鍵盤、讀卡機、掃描器與檔案等 ‣ 「標準輸入」、「標準輸出」與「標準錯誤訊息輸出」

指令的輸出入

Page 14: Linux  的檔案編輯

14

‣ 重導輸出 (redirect)‣ 將原本會輸出到螢幕上的文字( stdout 或

stderr ),改為輸出到檔案成為文字檔 ‣ 使用 > (大於符號,重導) ‣將 df 指令的結果,重導至 myfile 檔案

‣df > myfile ‣ ls /abcde 2> myerror (將錯誤訊息

(2>) 輸出至檔案儲存)

指令的輸出入

Page 15: Linux  的檔案編輯

15

‣ 遇到某個檔案或指令輸出內容很多時‣ 需要篩選符合特定資料的結果 ‣ 只顯示我們想要的資料 ‣ grep -E 正規表示法 檔案 ( 對象 )

‣ grep ^bin install.log‣ grep bin$ *

篩選內容

Page 16: Linux  的檔案編輯

16

‣ 管線‣ 單一指令無法做到想要完成的工作 ‣ 可以使用 Linux 的管線功能「 | 」 ‣ 結合二個以上的指令,處理較複雜的工作 ‣ ls -l 指令輸出很多頁內容, more 指令又可以將輸入的資料分頁輸出,結合 ls -l 的輸出與 more指令功能的指令如下: ‣ls -l /usr/lib/ |more ‣dmesg | grep unknown

指令的輸出入

Page 17: Linux  的檔案編輯

17

‣ 管線‣ 「接收左邊指令的輸出,將資料接至右邊指令,成為其輸入來源」

指令的輸出入

Page 18: Linux  的檔案編輯

18

‣ 需要篩選特定欄位資料的內容 ‣ cut -d 欄位分隔字元 -f 欄位編號 檔案路徑

‣ cut∆–d:∆-f1∆/etc/passwd‣ cut∆–d:∆-f1,3∆/etc/passwd

篩選內容

Page 19: Linux  的檔案編輯

19

‣ which‣ which 來搜尋環境變數 PATH( 可用 env 指令查詢 ) 裏的所有目錄中是否有特定執行檔

‣ 只會搜尋 PATH 變數的目錄 ‣知道要搜尋檔案的完整檔名,則用 whereis 搜尋

搜尋檔案

Page 20: Linux  的檔案編輯

20

‣ 查詢部份檔名 locate ‣ 用 locate 檔名來查詢檔案位置 ‣ locate 向系統內建的資料庫去查詢而得到結果 ‣ 以 updatedb 指令更新資料庫

目錄與檔案

updatedb資料庫

locate

搜尋檔案

Page 21: Linux  的檔案編輯

21

‣ 搜尋特定檔案 find ‣直接在檔案系統內搜尋特定檔案 ‣ find 的用法是在指令後面空白後加上搜尋的起始目錄,再加上想要查詢的條件

‣ 想要從 /home 以下的子目錄,搜尋檔名為install 的檔案 ‣find∆/home∆-name∆install‣find∆/∆-name∆pass*

搜尋檔案

Page 22: Linux  的檔案編輯

22

‣ Cent OS 6 的檔案系統使用的是最新的「 Ext4 」檔案‣ CentOS 5.3/Fedora 11首先引進最新的「 Ext4檔案系統」

‣以 ext3 為基礎再加上許多提昇檔案效能的新技術 ‣相容於 Ext3‣突破檔案系統的大小限制 1EB=109GB

(1TB=103GB)‣ext4 使用了「 Extent file writing 」範圍性寫入檔案的新技術,減少檔案在寫入磁碟時的游離區塊的程度

Linux 的檔案系統

Page 23: Linux  的檔案編輯

23

‣ 檔案與目錄名稱的大小寫不同‣如 /usr/local/與 /usr/Local 不同 ‣ /tmp/testfile與 /tmp/TestFile 指的是不同的檔案

‣ 指令為 LANG=C ,要避免打成 lang=c

Linux 的檔案系統

Page 24: Linux  的檔案編輯

24

‣ 遵循「檔案系統樹狀標準 FHS(Filesystem Hierarchy Standard) 」的統一規範

‣ Linux/UNIX 的目錄結構的共同標準 ‣ 使用 ls∆/bin 可列出 /bin 目錄的內容

Linux 的主要目錄

Page 25: Linux  的檔案編輯

25

‣ 單一樹狀結構 ‣ 只有一個最高的節點-根目錄 / ‣ 所有檔案或目錄都是由根目錄往下延伸

Linux 的檔案系統

Page 26: Linux  的檔案編輯

26

‣ /dev ‣系統設備目錄 ‣ 所有裝置與設備 (device)在 Linux 中,都以檔案或目錄方式存在於 /dev/ 目錄

‣ 如軟碟機 /dev/fd0 、印表機 /dev/lp0、 SCSI硬碟 /dev/sd1 、光碟機為 /dev/cdrom

‣ /tmp‣暫時存放檔案目錄

Linux 的主要目錄

Page 27: Linux  的檔案編輯

27

‣ /bin‣ bin→binary (0/1) 代表機器碼 ,執行檔‣ 只要檔案的屬性為可執行,這個檔案即為可執行檔

‣ /sbin ‣系統管理指令或工具 ‣系統管理者專用的執行檔 ‣ 只提供管理者執行 ‣ 如格式化硬碟分割區指令 mke2fs

Linux 的主要目錄

Page 28: Linux  的檔案編輯

28

‣ /usr‣ 套件軟體 (packages)安裝目錄‣ 通常占很大比例的系統磁碟空間

‣ /usr/bin ‣ 一般執行檔,提供給一般使用者的工具或指令

‣ /home‣ 一般使用者的家目錄 (home directory) ‣ 使用者成功登入後,會直接在該目錄中

‣ /root ‣ 系統管理者 (超級使用者 , super user) root 的家目錄

Linux 的主要目錄

Page 29: Linux  的檔案編輯

29

‣ /etc ‣ Linux系統最重要的目錄之一 ‣ 放置所有系統設定檔,大都是純文字檔 ‣ 只有系統管理員可以修改這些檔案 ‣如 inittab、 resolv.conf、 fstab、 rc.d 目錄等 ‣ 需要定期備份

‣ /boot‣核心檔案目錄 ‣ 放置系統開機必須使用的核心檔案

Linux 的主要目錄

Page 30: Linux  的檔案編輯

30

‣ /lib‣系統的共用函式庫檔案 (.o, .so)

‣ /var‣ 變動性與系統等待排隊處理的檔案 ‣記錄檔 (log) 放置於 /var/log/ 目錄‣ Email 等待送出目錄 /var/spool/mail‣ MySQL 資料庫目錄 /var/db/mysql

Linux 的主要目錄

Page 31: Linux  的檔案編輯

31

‣ 檔案資訊記錄檔 inode ‣記載著這個檔案的所有資訊 ‣ 包括檔名、更動時間、權限與檔案儲存的區塊位置等資料

‣ 每個 inode 都有唯一的編號 ‣ ls∆-i 可以列出檔案的 inode 編號

‣[root@proj ch5]# touch∆file1∆file2‣[root@proj ch5]# ls∆-i

Linux 的檔案系統

Page 32: Linux  的檔案編輯

32

‣ 連結 Link‣允許多個檔案參考到一個檔案 ‣ 連結是一種指向另一個檔案的特別檔案,如

Windows 的捷徑 ‣ 連結「指向」真實存在的檔案或目錄 ‣ 連結的用途:

‣不需要多複製一份檔案至其他位置,節省空間。‣保持連結指向檔案都是最近資料。

檔案系統

Page 33: Linux  的檔案編輯

33

‣ 建立符號連結 (Symbolic Link)‣ 利用 ln 指令加上選項 -s 可建立符號連結 ‣語法: ln∆-s∆目標對象∆連結名稱‣ -rw-r--r-- 1 root root 6 12月 28 16:06

data‣ lrwxrwxrwx 1 root root 4 12月 28

16:07 slink -> data

檔案系統

Page 34: Linux  的檔案編輯

34

‣ 建立硬連結‣硬連結 (hard link) 建立的方法也是使用 ln 指令,不需加選項

‣語法: ln∆目標對象∆連結名稱‣ 與符號連結不一樣的是,當真實檔案被刪除或移至其他目錄時,硬連結仍可正常得到檔案的內容,不會變成無效連結

‣ 建立硬連結時的限制‣ 不可跨越分割區 ‣ 不可使用於目錄

檔案系統

Page 35: Linux  的檔案編輯

35

‣ df 指令

‣ 加入選項 -h讓顯示的單位以 KB、MB、 GB 來表示

硬碟空間使用情形

Page 36: Linux  的檔案編輯

36

‣ du 指令 ‣ 想知道目前目錄下(含子目錄)已用空間

硬碟空間使用情形