linux基礎篇讀書筆記

linux的檔案權限和文件系統

  • chgrp:改變檔案所屬羣組(change group的縮寫)
  • chown:改變檔案擁有者(change owner的縮寫)
  • chmod:改變檔案的權限,SUID,SGID,SBIT等

檔案的一般權限rwx

權限的設定有兩種方式,可以使用數字或者符號來改變權限。在linux中檔案權限分爲基本的read讀(4),write寫(2),execute執行權限(1),分別對應於rwx,使用ls -l可以查看文件權限,屬主user(1),羣組group(2),其他others(3),就可以用u、g、o來代表三種身份的權限。

檔案的特殊權限:SUID(4),SGID(2),SBIT(1)

Set UID
當s這個標誌出現在檔案擁有者的x權限上時,如(-rwsr-xr-x),此時就被稱爲Set UID,簡稱爲SUID的特殊權限

  • SUID權限僅對二進制程序(binary program)有效;
  • 執行者對於該程序需要具有x的可執行權限;
  • 本權限僅在執該程序的過程中有效(run-time);
  • 執行者將具有該程序擁有者(owner)的權限。

Set GID
當s標誌在檔案擁有者的x項目爲SUID,那s在羣組的x時則稱爲Set GID,簡稱SGID。與SUID不同的是,SGID可以針對檔案或目錄來設定。如果是檔案,SGID有如下功能:

  • SGID對二進制程序有用;
  • 程序執行者對於該程序來說,需具備x的權限;
  • 執行者在執行的過程中會獲得改程序羣組的支持。

如果是目錄設定了SGID權限後,具有如下功能:

  • 用戶若對於此目錄具有r與x的權限時,該用戶能夠進入此目錄;
  • 用戶在此目錄下的有限羣組(effective group)將會變成該目錄的羣組;
  • 用途:若用戶在此目錄下具有w的權限(可以新建檔案),則使用者多建立的新檔案,該新檔案的羣組與此目錄的羣組相同。

Sticky Bit
Sticky Bit,簡稱SBIT,目前只針對目錄有效有權刪除該檔案,對於檔案無效。SBIT對於目錄的作用:

  • 當用戶對於此目錄具有wx權限,也就是說具有寫入的權限時;
  • 當用戶在該目錄下建立檔案或目錄時,僅有自己與root才

因爲根目錄與開機有關,開機過程中僅有根目錄會被掛載, 其他分割槽則是在開機完成之後纔會持續的進行掛載的行爲。就是因爲如此,因此根目錄下與開機過程有關的目錄, 就不能夠與根目錄放到不同的分割槽去!那哪些目錄不可與根目錄分開呢?以下目錄:

  • /etc:配置文件
  • /bin:重要執行檔
  • /dev:所需要的裝置檔案
  • /lib:執行檔所需的函式庫不核心所需的模塊
  • /sbin:重要的系統執行文件

幾個常見的處理目錄的指令:

  • cd:變換目錄
  • pwd:顯示當前目錄
  • mkdir:建立一個新的目錄
  • rmdir:刪除一個空的目錄

檔案查閱

  • cat 由第一行開始顯示檔案內容
  • tac 從最後一行開始顯示,可以看出 tac 是 cat 的倒着寫!
  • nl 顯示的時候,順序輸出行號!
  • more 一頁一頁的顯示檔案內容

空格鍵 (space):代表向下翻一頁;
Enter :代表向下翻『一行』;
/字符串 :代表在這個顯示的內容當中,向下搜尋『字符串』這個關鍵詞;
:f :立刻顯示出文件名以及目前顯示的行數;
q :代表立刻離開 more ,不再顯示該檔案內容。
b 或 [ctrl]-b :代表往回翻頁,不過這動作只對檔案有用,對管線無用。

  • less 不 more 類似,但是比 more 更好癿是,他可以往前翻頁!

空格鍵 :向下翻動一頁;
[pagedown]:向下翻動一頁;
[pageup] :向上翻動一頁;
/字符串 :向下搜尋『字符串』的功能;
?字符串 :向上搜尋『字符串』的功能;
n :重複前一個搜尋 (與 / 或 ? 有關!)
N :反向的重複前一個搜尋 (與 / 或 ? 有關!)
q :離開 less 這個程序;

  • head 叧看頭幾行(取出前面幾行head [-n number] file -n:後面接數字,代表顯示幾行)
  • tail 查看尾部幾行(同上)
  • od 以二進制的方式讀取檔案內容(具體使用可以使用od --help查看)

umask 的用處與優點:
umask 可以拿掉一些權限,因此,適當的定義 umask 有利於系統的安全, 因爲他可以建立默認的目錄或檔案的權限。

例如:假設umask爲003,請問該umask情況下,建立的檔案與目錄權限爲?
umask爲003,所以拿掉的權限是——-wx,因此:
檔案:(-rw-rw-rw)-(——-wx)=(-rw-rw-r–);
目錄:(drwxrwxrwx)-(——-wx)=(drwxrwxr–).

chattr(配置文件案隱藏屬性)

chattr [+-=] \[ASacdisu](+增加某一個特定參數;-移除某一個特殊參數;=設定一定,且僅有後面接的參數。具體參數使用可以使用help命令查看)

lsattr(顯示隱藏屬性)

lsattr [-adR] [file or directory]

-a:將隱藏文件的屬性表現出來;
-d:如果接的是目錄,僅列出目錄本身的屬性而非目錄內的文件名;
-R: 連同子目錄的數據也一併列出來。

磁盤與文件系統管理

EXT2文件系統:
superblock:記錄此 filesystem 的整體信息,包括 inode/block 的總量、使用量、剩餘量, 以及文件系統的格式與相關信息等;
inode:記錄檔案的屬性,一個檔案佔用一個inode,同時記錄此檔案的數據所在的 block 號碼;
block:實際記錄檔案的內容,若檔案太大時,會佔用多個 block 。

df:列出文件系統的整體磁盤使用量;
df [-akmhiHT] [file or directory](選項與參數使用--help查看即可。)
du:評估文件系統的磁盤使用量(常用在推估目錄所佔容量)
du [-ahskm] [file or directory]

linux常見的壓縮指令:

  • .Z compress 程序壓縮的檔案;
  • .gz gzip 程序壓縮的檔案;
  • .bz2 bzip2 程序壓縮的檔案;
  • .tar tar 程序打包的數據,並沒有壓縮過;
  • .tar.gz tar 程序打包的檔案,其中並且經過 gzip 的壓縮
  • .tar.bz2 tar 程序打包的檔案,其中並且經過 bzip2 的壓縮

壓 縮:tar -jcv -f filename.tar.bz2 要被壓縮癿檔案戒目錄名稱
查 詢:tar -jtv -f filename.tar.bz2
解壓縮:tar -jxv -f filename.tar.bz2 -C 欲解壓縮癿目錄

完整備份工具:dump
dump在文件備份的時候可以指定不同的備份等級,完整備份(level 0),差異比較(level 1),差異比較(level 2)……
如果想要備份的數據如下時,則有不同的限制情況:

  • 當待備份的資料爲單一文件系統;
  • 如果是單一文件系統 (filesystem) ,那麼該文件系統可以使用完整的 dump 功能,包括利用0~9 的數個 level 來備份, 同時,備份時可以使用掛載點或者是裝置文件名 (例如 /dev/sda5之類的裝置文件名) 來進行備份;
  • 待備份的數據只是目錄,並非單一文件系統;例如你僅想要備份 /home/someone/ ,但是該目錄並非獨立的文件系統時。此時備份就有限制,包括:
    • 所有的備份數據都必項要在該目錄 (本例爲:/home/someone/) 底下;
    • 且僅能使用 level 0 ,亦即僅支持完整備份而已;
    • 不支持 -u 選項,亦即無法建立 /etc/dumpdates 這個各別 level 備份的時間記錄文件

dump常用指令:
dump [-Suvj] [-level] [-f備份檔案] 帶備份資料
dump -W

-S:僅列出後面的待備份數據需要多少磁盤空間才能夠備份完畢;
-u:將這次dump的時間記錄到/etc/dumpdates檔案中;
-v:將dump的檔案過程顯示出來;
-j:加入bzip2的支持,將數據進行壓縮,默認bzip2壓縮等級爲2;
-level:加入備份等級,從0~9共十個等級;
-f:有點類似tar,後面接產生的檔案,例如/dev/st0裝置文件名等。
-W:列出在/etc/fstab裏面的具有dump設定的partition是否有備份過。

備份復原restore

restore -t [-f dumpfile] [-h]  -----用來察看dump文檔
restore -C [-f dumpfile] [-D掛載點]  -----比較dump與實際檔案
restore -i [-f dumpfile] ------進入互動模式
restore -r [-f dumpfile] ------還原整個文件系統

選項參數解釋:
相關的各種模式,各種模式不可混用,如不可以寫-tC
-t :此模式用在察看 dump 的備份文件中含有什麼重要數據!類似 tar -t功能;
-C :此模式可以將 dump 內的數據拿來跟實際的文件系統做比較,
最終會列出『在dump檔案內有記錄的,且目前文件系統不一樣』的檔案;
-i :進入互動模式,可以僅還原部分檔案,用在 dump 目錄時還原
-r :將整個 filesystem 還原的一種模式,用在還原針對文件系統的 dump 備份;
其他較常用到的選項功能:
-h :察看完整備份數據中的 inode 不文件系統 label 等信息
-f :後面就接你要處理的那個 dump 檔案
-D :與-C進行搭配,可以查出後面接的掛載點與dump內有不同檔案

光盤寫入工具:mkisofs
文本模式的刻錄行爲,具體做法:

  • 先將所需要備份的數據建置成爲一個鏡像文檔(iso),利用mkisofs指令來處理;
  • 將該鏡像文件刻錄至光盤或DVD中,利用cdrecord指令來完成

mkisofs:建立鏡像文檔
mkisofs [-o 鏡像檔] [-rv] [-m file] 待備份文件.. [-V vol] -graft-point isodir=systemdir...

選項參數:
-o :後面接你想要產生的那個鏡像檔檔名。
-r :透過 Rock Ridge 產生支持 Unix/Linux 的檔案數據,可記錄較多的信息;
-v :顯示建置 ISO 檔案的過程
-m file :-m 爲排除檔案 (exclude) 的意思,後面的檔案不備份到鏡像檔中
-V vol :建立 Volume,有點像 Windows 在檔案總管內看到的CD title的東西
graft-point:graft有轉嫁移植的意思。

光盤刻錄工具:cdrecord

cdrecord -scanbus dev=ATA    ----偵測刻錄機所在位置
cdrecord -v dev=ATA:1,1,0 blank=fast   ----進行CD的刻錄動作(0,先抹除原本內容)
cdrecord -v dev=ATA:1,1,0 blank=fast   ----進行DVD-RW的刻錄動作

vim

在linux系統下常用的文本編輯器有emacs,pico,nano,joe,vi,vim。但是使用範圍最廣,最常用的還是vi/vim,所有的unix like系統都會內建vi編輯器,vim具有程序編輯能力,可以主動地根據字體顏色辨別語法的正確性,提高程序設計效率。嚴格來講vim是在vi基礎功能上擴展而來的,vim是vi的進階版。
vi的使用
vi共分爲一般模式,編輯模式,指令命令模式。

  • 一般模式:使用vi打開一個檔案就直接進入一般模式了,在這個模式中可以使用上下左右按鍵來移動光標,可以使用刪除字符或刪除整行來處理檔案內容,也可以使用複製粘貼來處理文檔內容。
  • 編輯模式:進入一般模式之後,需要按下[i,I,o,O,a,A,r,R]等任何一個字母之後纔會進入編輯模式。在linux中,按下這些按鍵時,在畫面的左下方會出現[insert 或 replace],此時進行內容編輯。推出編輯模式按下Esc即可。
  • 指令列命令模式:在一般模式中,輸入[:/?]中的任何一個字符,就可以將光標移到最底下那一行。在這個模式當中,可以提供搜索功能,讀取,存盤,替換字符,退出,顯示行號….等都是在此模式中實現的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章