系統調用

系統調用


Linux支持的文件系統:

位於內核空間中的文件系統驅動

1.內核一部分

2.內核模塊

位於用戶空間中的文件系統管理應用程序

管理命令


Linux自己的文件系統:

ext ext2 ext3 ext4(最大分區50TB,可以做根分區,可以做啓動分區)

xfs(企業級64位文件系統,最大分區500TB,可以做根和啓動分區)

reiserfs(良好的反刪除功能)

btrfs(技術預覽版)


光盤文件系統:iso9660

網絡文件系統:NFS、CIFS

集羣文件系統:gfs2、ocfs2

內核級的分佈式文件系統:ceph

僞文件系統:proc、sysfs、tmpfs、hugepagefs


windows的文件系統:vfat,ntfs


Unix的文件系統:ufs,FFS,JFS,zfs


交換分區文件系統:swap


用戶空間中的分佈式文件系統:mogilefs,moosefs,glusterfs

 

對於不同的發行版的Linux,都有其默認的文件系統選擇:

RHEL、CentOS

5:ext3

6:ext4

7:xfs


文件系統的管理工具:


寫一個腳本,如果發現用戶hacker登錄,則將登錄時間和主機記錄於日誌/var/log/login.log中;

#!/bin/bash

#

if who | grep -q "\<hacker\>" ; then

  for I in $(who | grep "\<hacker\>" | cut -d ' ' -f3-5 --output-delimiter=' '); do

    echo -n $I >> /var/log/login.log

  done

fi


管理文件系統:

創建文件系統:

mkfs

mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.xfs, mkfs.btrfs, ...


文件系統檢測和修復工具

fsck

fsck.ext3, fsxk.ext3, fsck.ext4, fsck.xfs, ...


文件系統屬性查看工具

dumpe2fs


文件系統的屬性調整工具

tune2fs


創建文件系統工具:

mkfs命令:

mkfs - build a Linux filesystem

mkfs [options] [-t type] [fs-options] device [size]


mkfs -t ext2 /dev/sdb1


注意:

1.不要使用磁盤設備名稱和擴展分區設備名稱作爲mkfs命令的參數;

如果使用磁盤設備作爲mkfs的參數,所有的分區都將被刪除

如果使用擴展分區作爲mkfs的參數,所有的邏輯分區都將被刪除

2.能夠作爲mkfs命令參數的設備,是主分區設備和邏輯分區設備;


如果只是計劃創建ext系列文件系統的話,可以使用mke2fs命令:

mke2fs:

mke2fs - create an ext2/ext3/ext4 filesystem

常用選項:

-b block-size:在創建文件系統時,調整塊大小;

-i bytes-per-inode:指明inode與字節的比率,即:多少個字節可以建一個inode,默認值爲16384;

-j:創建有日誌功能的文件系統,就是ext3

-N number-of-inodes:直接指明要給此文件系統創建的inode的數量;

-m reserved-blocks-percentage:指定爲超級用戶root預留的磁盤空間的百分比;默認是5;

-t fstype:指定文件系統類型,ext2 ext3 ext4,默認是ext2

-O [^]feature[,...]:關閉或開啓文件系統的特性

-L volume-label:爲文件系統指定卷標


如果只計劃修改ext系列文件系統的卷標,可以使用e2label命令:

e2label:

e2label - Change the label on an ext2/ext3/ext4 filesystem

e2label device [ new-label ]


注意:如果不加捲標信息,表示查看指定設備的卷標;

如果添加了卷標信息, 表示修改指定設備的卷標;


如果想要修改ext系列文件系統的屬性,可以使用tune2fs命令:

tune2fs:

tune2fs  - adjust tunable filesystem parameters on ext2/ext3/ext4 filesystems

調整那些在ext2,3,4文件系統上的可修改的參數;

常用選項:

-j:將ext2文件系統修改爲ext3;

-m reserved-blocks-percentage:修改爲超級用戶預留的磁盤空間的百分比;

-o [^]mount-options[,...]:修改文件系統的默認掛載選項;

-r reserved-blocks-count:修改爲超級用戶預留的磁盤空間的塊的數量;

-L volume-name:修改文件系統的卷標

-O [^]feature[,...]:修改文件系統的特性,將其關閉或啓用;

-l:顯示超級塊的內容  相當於dumpe2fs -h 


文件系統的檢測修改工具:

fsck

-t fstype:指定要檢測的文件系統類型;

-a:無需交互,自動修復所有問題

-r:交互式修復問題


ext系列文件系統專門的檢測修復工具:

e2fsck

-y:在交互過程的所有的問題,都以"yes"回答;

-f:強制檢測修復;即使文件系統處於clean狀態;


blkid:

blkid - command-line utility to locate/print block device attributes

blkid -L label:根據卷標進行查找

blkid -U uuid:根據UUID進行查找


findfs:

findfs - Find a filesystem by label or UUID

findfs LABEL=label

findfs UUID=uuid


創建swap文件系統

前提:分區類型必須是swap類型

修改的方法是:在fdisk交互模式中,使用t命令將指定分區的類型修改爲82即可;

mkswap

mkswap - set up a Linux swap area

-L LABEL:設置交互分區的卷標

-f:強制執行


使用文件系統——掛載

FHS


根文件系統之外的其他文件系統如果想要被訪問;都必須通過某種方式關聯到根文件系統上,具體做法就是把其他文件系統裝載到根文件系統中的某個目錄之中;這個過程稱爲"掛載";用於關聯其他文件系統的那個目錄,稱爲掛載點;


掛載點:mount point,也是其他文件系統的訪問入口;例如:/boot

要求:

1.作爲掛載點的目錄必須事先存在;

2.作爲掛載點的目錄應該是沒有被使用或不能被其他進程使用的目錄;

3.作爲掛載點的目錄一旦掛載文件系統,其內原有的文件將被隱藏;


完成掛載操作,使用mount命令:

mount 

mount - mount a filesystem

mount [-fnrsvw] [-t vfstype] [-o options] device dir


常用選項:

-r:readonly,以只讀的方式掛載目標文件系統;光盤

-w:read and write,以讀寫的方式掛載目標文件系統;

-n:默認情況下,設備掛載或卸載的操作會同步更新到/etc/mtab中,如果在掛載時使用了-n選項,則表示我們要禁用此特性,即便掛載成功,也不會更新到/etc/mtab中。

-t vsftype:指明要掛載的設備上創建的文件系統類型;如果省略該選項,mount命令會通過blkid來判斷要掛載的目標設備的文件系統類型;

-L LABEL:掛載文件系統時,使用卷標代替設備名稱

-U UUID:掛載文件系統時,使用UUID代替設備名稱

-a:mount -a:按照/etc/fstab文件中填寫的設備進行自動掛載;

-o option:

sync/nosync:同步/異步操作

atime/noatime:文件或目錄被讀取訪問時,是否更新訪問時間戳;

diratime/nodiratime:目錄被讀取訪問時,是否更新訪問時間戳;

ro/rw:是以只讀/讀寫的方式掛載文件系統;

dev/nodev:在此文件系統中是否允許創建設備文件;

exec/noexec:在此文件系統中是否允許運行程序文件;

auto/noauto:是否允許使用mount -a方式掛載/etc/fstab中的文件系統;

user/nouser:是否允許普通用戶掛載此文件系統;

suid/nosuid:是否允許程序文件上的SUID和SGID特殊權限生效;

relatime/norelatime:是否參考inode訪問時間來修改其修改時間和改變時間

remount:不經卸載實現重新掛載,可以應用新的掛載選項;

acl:可以使文件系統支持facl功能;

defaults:默認選項;包括:rw, suid, dev, exec, auto, nouser, async, and relatime

loop:使用環回設備;將鏡像文件掛載到掛載點;


defaults,ro,nosuid

-B, --bind:將某個目錄綁定至另一個目錄;

mount --bind|-B 源目錄 目標目錄


卸載文件系統:

umount mount_point|device


掛載光盤:

1.保證光盤鏡像文件放入虛擬機光驅

2.保證光驅處於"已連接"狀態

3.創建光盤掛載點,mount -r /dev/sr0 mount_point


掛載U盤:

需要事先讓系統識別U盤設備,然後根據設備名進行掛載;/dev/sdc1


掛載交互分區:

swapon, swapoff

swapon, swapoff - enable/disable devices and files for paging and swapping


-a:自動掛載存儲於/etc/fstab文件中的交互分區設備;


df

-h -T -P 

free

-k -m -g


/etc/fstab文件的格式:

共6個字段,使用空白字符分隔:

1.要掛載的設備

設備文件名

LABEL

UUID

僞文件系統

2.掛載點

swap設備無需掛載點,指定swap即可;

3.文件系統類型

4.掛載選項:defaults

5.轉儲頻率:

使用dump命令備份分區的頻率

0:表示不備份

1:每天備份一次

2:每隔一天備份一次

6.自檢次序

0:不自檢

1:優先自檢,通常只設置在根文件系統上;

2:次級自檢

...

9:最低優先級自檢


Linux系統中常有的壓縮和解壓縮工具:

壓縮:以時間換空間的一種操作;

壓縮的原理:標記和替換

壓縮比:壓縮之前與壓縮之後的文件的大小的比值;

純文本文件壓縮比較大

視頻、圖像等文件壓縮比小


能夠實現壓縮功能的工具:

compress/uncompress:.Z擴展名

gzip/gunzip:.gz擴展名

bzip2/bunzip2:.bz2擴展名

xz/unxz:.xz擴展名,目前壓縮比最高的工具

zip/unzip:.zip擴展名


gzip:

gzip, gunzip, zcat - compress or expand files

-d:解壓縮

-#:以指定的壓縮比進行壓縮,1-9,9爲最高級;默認6

-c:將壓縮結果輸出到標準輸出,不會對原文件進行壓縮;

gzip -c /PATH/TO/FILE > /PATH/TO/COMPRESS_FILE.gz


bzip2:

bzip2, bunzip2 - a block-sorting file compressor, v1.0.4

  bzcat - decompresses files to stdout

  -d:解壓縮

  -#:指定壓縮比進行壓縮,1-9,默認爲6

  -k:保留原文件不刪除,創建新的壓縮文件;


xz:

xz, unxz, xzcat - Compress or decompress .xz files

-d:解壓縮

  -#:指定壓縮比進行壓縮,1-9,默認爲6

  -k:保留原文件不刪除,創建新的壓縮文件;


tar:歸檔程序

tar——tape archive:磁帶檔案

tar [OPTION...] [FILE]...

主選項:

-c:創建檔案文件

-x:釋放檔案文件的內容

-t:查看檔案文件中包含的文件

-u/-r:向檔案文件中添加新的文件


輔助選項:

-f:指定檔案的文件的路徑

-C:在釋放檔案文件中的內容時,指定釋放的路徑;

-z:在創建檔案文件時,調用gzip進行壓縮

-j:在創建檔案文件時,調用bzip2進行壓縮

-J:在創建檔案文件時,調用xz進行壓縮(可能不支持)

--exclude:在釋放檔案文件時,排除某個文件;

-k:在釋放檔案文件時,不會覆蓋同名文件;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章