日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux | 文件系统与操作

發(fā)布時間:2023/12/9 linux 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux | 文件系统与操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 磁盤分區(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ū)

注:

  • Linux下每一個硬盤最多有16個分區(qū);主分區(qū)(擴展分區(qū))占用1~ 4,邏輯分區(qū)占用5~16
  • 邏輯分區(qū)必須建立在擴展分區(qū)上,而不是主分區(qū)上
  • 文件系統(tǒng)目錄

    Directory Tree

    文件組成

  • 有三部分組成:文件名、文件屬性、數(shù)據(jù)
  • 每個文件都對應一個inode數(shù)據(jù)結構,其中存放了文件的屬主、屬組、讀/寫權限、文件大小、鏈接數(shù)等,每一個inode有一個編號i-number
    注:inode中并不包含文件的名字,文件名字存放在 文件所在目錄中
  • ls -i :查看指定文件的inode編號
    stat test.sh:查看文件inode信息
    df -i :查看每個硬盤分區(qū)的inode總數(shù)和已經(jīng)使用 的數(shù)量
  • 目錄的內(nèi)容只有文件名和inode編號
    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)操作

  • fdisk:創(chuàng)建、刪除分區(qū)、查看分區(qū)信息
  • mkfs:格式化
    磁盤分區(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)的使用情況

    文件類型

    普通文件目錄文件設備文件鏈接文件
    -dln命令
    文本文件、二進制文件、數(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)建軟鏈接。

    文件權限

    augo
    allusergroupother
    所有用戶文件所有者同組用戶其他用戶

    表示方法

    三組九位字母表示法:r w x 讀寫執(zhí)行
    三組九位二進制表示法:有權限標1
    三位八進制表示法:r:4 w:2 x:1

    權限表示方法ugo
    字母表示法r w xr - xr - -
    對應二進制1 1 11 0 11 0 0
    八進制表示法754

    chmod:改變權限

  • 字母形式修改權限
  • [root@localhost /]# chmod u+x,g+w,o-r f1
    [root@localhost /]# chmod a=rw f2

  • 數(shù)字形式修改權限
  • [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 );
  • open函數(shù):打開或創(chuàng)建文件
    成功返回文件描述符,失敗返回-1
  • creat函數(shù):創(chuàng)建文件
    成功返回以只寫方式打開的文件描述符,失敗返回-1
  • close函數(shù):關閉文件
    成功返回0.失敗返回-1
  • rename函數(shù):修改文件名稱
    成功返回0,失敗返回-1
  • remove函數(shù):刪除文件
    成功返回0,失敗返回-1
  • lseek函數(shù):用于在指定的文件描述符中將將文件指針定位到相應位置。
  • write函數(shù):向文件中寫數(shù)據(jù)
    成功返回已寫字節(jié)數(shù),失敗返回-1
  • read函數(shù):讀取數(shù)據(jù)
    返回值:成功返回讀到的字節(jié)數(shù),若已到文件結尾返回0,出錯返回-1。
  • dup函數(shù):如果調(diào)用成功則返回新的文件描述符,否則出錯返回-1。
  • 總結

    以上是生活随笔為你收集整理的Linux | 文件系统与操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。