Linux | 文件系统与操作
文章目錄
- 磁盤分區(qū)
- 文件系統(tǒng)目錄
- 文件組成
- 文件系統(tǒng)
- 文件系統(tǒng)操作
- 掛載
- 文件類型
- 鏈接命令 :ln
- 硬鏈接VS軟鏈接
- 文件權限
- 表示方法
- chmod:改變權限
- 文件默認權限umask掩碼
- chown:改變屬主
- 文件操作
- 文件描述符
- 函數(shù)
磁盤分區(qū)
硬盤分區(qū)包括主分區(qū)、擴展分區(qū)和邏輯分區(qū);在一個硬盤中,主分區(qū)和擴展分區(qū)最多是4個,邏輯分區(qū)數(shù)量不限。
每一個硬件設備映射到一個系統(tǒng)的文件
- Linux為IDE設備(光驅(qū),硬盤)分配一個由hd前綴組成的文件
驅(qū)動器標識符是“hdx*”,hd表示是IDE設備;x是盤號(a是基本盤,b是基本從屬盤,c是輔助主盤,d是輔助從屬盤);*表示分區(qū),前4個分區(qū)用數(shù)字1~4表示(主分區(qū)或擴展分區(qū)),從第5個分區(qū)開始是邏輯分區(qū)
例:
/dev/hda2:第1個IDE硬盤上的第2 個主分區(qū)或擴展分區(qū)
/dev/hdb1:第2個IDE硬盤上的第21個主分區(qū)或擴展分區(qū)
- Linux為SCSI設備分配一個由sd前綴組成的文件
驅(qū)動器標識符是“sdx*”,sd表示是SCSI設備;x是盤號(a是基本盤,b是基本從屬盤,c是輔助主盤,d是輔助從屬盤);*表示分區(qū),前4個分區(qū)用數(shù)字1~4表示(主分區(qū)或擴展分區(qū)),從第5個分區(qū)開始是邏輯分區(qū)
注:
文件系統(tǒng)目錄
Directory Tree
文件組成
注:inode中并不包含文件的名字,文件名字存放在 文件所在目錄中
stat test.sh:查看文件inode信息
df -i :查看每個硬盤分區(qū)的inode總數(shù)和已經(jīng)使用 的數(shù)量
inode表指針執(zhí)行數(shù)據(jù)塊
文件系統(tǒng)
- ext3:加入了記錄元數(shù)據(jù)的日志功能
- ext2
- Swap文件系統(tǒng)
Linux的交換分區(qū),使用整個交換分區(qū)來提供虛擬內(nèi)存,分區(qū)大小一般是系統(tǒng)物理內(nèi)存的2倍 - ISO9660
標準文件系統(tǒng) - proc
Linux系統(tǒng)上的/proc目錄是一種文件系統(tǒng)(proc文件系統(tǒng)),/proc是一種偽文件系統(tǒng)(虛擬文件系統(tǒng)),存儲的是當前內(nèi)核運行狀態(tài)的特殊文件,用來作為連接內(nèi)核數(shù)據(jù)結構的 - 虛擬文件系統(tǒng) VFS
不是一種實際的文件系統(tǒng),只存在于內(nèi)存中,不存在于任何外存空間
文件系統(tǒng)操作
磁盤分區(qū)完成后就要進行文件系統(tǒng)的格式化,本身并不執(zhí)行建立文件系統(tǒng)的工作,調(diào)用相關程序來執(zhí)行
mkfs -t ext3 /dev/sda1:將sda1分區(qū)格式化為ext3
掛載
- 掛載定義:建立文件系統(tǒng)后,還需要將**文件系統(tǒng)安裝到 Linux目錄樹的某個位置上才能使用。**這個過程稱為掛載,文件系統(tǒng)所掛載到的目錄稱為掛載點。
- 磁盤分區(qū)、軟盤、USB盤、光盤都需要掛載
- 釋放所掛載的目錄稱為卸載
mount:手動掛載
mount [-t fs-type] [-o option] device mountpoint
fs-type為文件系統(tǒng)類型,option常用選項:ro只讀方式;rw讀寫方式;remount重新掛載已掛載的文件系統(tǒng)。
自動掛載:Linux操作系統(tǒng)的文件系統(tǒng)信息都存儲/etc/fstab腳本文件中,在系統(tǒng)引導過程中自動讀取并加載該文件內(nèi)容中的文件系統(tǒng)。
例:
要使用優(yōu)盤,在/etc/fstab中添加如下一行
/dev/sda1 /mnt/disk1 vfat iocharset = cp936, rw 0 0
umount:卸載
例:
要卸載已經(jīng)掛載到/mnt/sda5上的文件系統(tǒng),可以使用如下命令:
[root@localhost /]# umount /dev/sda5
或
[root@localhost /]# umount /mnt/sda5
du:磁盤統(tǒng)計,使用情況
[root@localhost /]# du - a /home/user1
df :磁盤空間統(tǒng)計(未使用)
df -lh:
a:顯示所有文件系統(tǒng)的信息,包括swap和proc
h:以最合適的容量單位顯示
i:顯示文件節(jié)點數(shù)inode的使用情況
l:只顯示本地文件系統(tǒng)的使用情況
文件類型
| - | d | ln命令 | ||
| 文本文件、二進制文件、數(shù)據(jù)文件 | 字符設備、塊設備 | 硬鏈接、軟鏈接 | ||
| file test*:查看當前目錄下以test開頭的所有文件類型 | 在/dev目錄下 | 文件的鏈接就是為一個文件起多個名字 |
鏈接命令 :ln
- 鏈接文件: ln命令
一個文件可能有多個文件名
ln 不帶選項:會增加鏈接數(shù),rm命令會減少鏈接數(shù)
一個文件除非鏈接數(shù)為0,否則不會物理地從文件系統(tǒng)中被刪除。
將一個路徑名鏈接到一個文件
這些文件是一種特別類型的文件。它只是一個小文本文件(如b目錄下的m2.c文件),其中包含它所鏈接的目標文件的絕對路徑名。
注:
1.用“ln -s”命令建立符號鏈接時,最好源文件用絕對路徑名,這樣可以在任何工作目錄下進行符號鏈接。
2.在目錄長列表中,符號鏈接作為一種特殊的文件類型顯示出來,第一個字母是l
3.符號鏈接的大小是其鏈接文件的路徑名中的字節(jié)數(shù)
4.當用ls -l列出文件時,可以看到符號鏈接名后有一個箭頭指向源文件或目錄。
硬鏈接VS軟鏈接
硬鏈接和源文件是同一份文件,而軟鏈接是獨立的文件,類似于快捷方式,與目標文件是不同的inode,存儲著源文件的位置信息便于指向。
使用限制上,不能對目錄創(chuàng)建硬鏈接,不能對不同文件系統(tǒng)創(chuàng)建硬鏈接,不能對不存在的文件創(chuàng)建硬鏈接;
可以對目錄創(chuàng)建軟鏈接,可以跨文件系統(tǒng)創(chuàng)建軟鏈接,可以對不存在的文件創(chuàng)建軟鏈接。
文件權限
| all | user | group | other |
| 所有用戶 | 文件所有者 | 同組用戶 | 其他用戶 |
表示方法
三組九位字母表示法:r w x 讀寫執(zhí)行
三組九位二進制表示法:有權限標1
三位八進制表示法:r:4 w:2 x:1
| 字母表示法 | r w x | r - x | r - - |
| 對應二進制 | 1 1 1 | 1 0 1 | 1 0 0 |
| 八進制表示法 | 7 | 5 | 4 |
chmod:改變權限
[root@localhost /]# chmod u+x,g+w,o-r f1
[root@localhost /]# chmod a=rw f2
[root@localhost /]# chmod 644 f1
[root@localhost /]# chmod 700 f2
文件默認權限umask掩碼
系統(tǒng)默認掩碼是022
文件創(chuàng)建時的默認權限=666-umask
目錄創(chuàng)建時的默認權限=777-umask
chown:改變屬主
文件操作
文件描述符
非負整數(shù)
函數(shù)
#include<fcntl.h> #include<sys/types.h> #include <unistd.h> #include <stdio.h> int open(const char *path, int flags, mode t_mode);//int fd=open("myfile",O_CREAT,S_IRUSR|S_IXOTH); int creat(const char *path,mode_t mode); int close(fd); int rename (const char * oldpath,const char * newpath); int remove( const char * pathname); off_t lseek( int file_des, off_t offset, int whence ); ssize_t write( int file_des, const void *buf, size_t nbytes );// file_des:文件描述符,標識要讀取的文件。*buf :緩沖區(qū),用來存儲讀入的數(shù)據(jù) nbytes :要讀取的字符數(shù)。 ssize_t read( int file_des, void *buf, size_t nbytes ); int dup( int file_des ); int dup2( int file_des, int file_des2 );成功返回文件描述符,失敗返回-1
成功返回以只寫方式打開的文件描述符,失敗返回-1
成功返回0.失敗返回-1
成功返回0,失敗返回-1
成功返回0,失敗返回-1
成功返回已寫字節(jié)數(shù),失敗返回-1
返回值:成功返回讀到的字節(jié)數(shù),若已到文件結尾返回0,出錯返回-1。
總結
以上是生活随笔為你收集整理的Linux | 文件系统与操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java ee me se_java E
- 下一篇: linux文件系统目录结构采用的是,关于