新聞中心
在Linux系統(tǒng)中,一切皆文件。文件系統(tǒng)是Linux系統(tǒng)的重要組成部分,涵蓋了操作系統(tǒng)中各種文件的存儲、訪問、管理等過程。因此,深入了解Linux系統(tǒng)的文件表結(jié)構(gòu),對于合理地管理文件和提升系統(tǒng)性能具有重要意義。

創(chuàng)新互聯(lián)建站專注于巨鹿網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供巨鹿營銷型網(wǎng)站建設(shè),巨鹿網(wǎng)站制作、巨鹿網(wǎng)頁設(shè)計、巨鹿網(wǎng)站官網(wǎng)定制、微信平臺小程序開發(fā)服務(wù),打造巨鹿網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供巨鹿網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
一、文件表結(jié)構(gòu)的概念
文件表結(jié)構(gòu)是指操作系統(tǒng)在運行過程中,用來管理所有文件和打開文件的一種數(shù)據(jù)結(jié)構(gòu)。可以理解為文件描述符表,即每個打開文件都有一個唯一的文件描述符(file descriptor),用于標識該文件的特定操作。在Linux系統(tǒng)中,文件表結(jié)構(gòu)主要由特定數(shù)據(jù)結(jié)構(gòu)和相關(guān)操作函數(shù)組成。
二、文件表結(jié)構(gòu)的組成
1.文件描述符
文件描述符是操作系統(tǒng)中用于處理文件操作的一種機制。它是一個非負整數(shù),通常被用作了代表打開文件的標準輸入、標準輸出以及標準錯誤輸出的文件指針。每個進程都有自己的文件描述符表,其中0、1、2分別代表標準輸入、標準輸出和標準錯誤輸出。
2.進程表
進程表是Linux系統(tǒng)中用于記錄進程狀態(tài)和信息的一種數(shù)據(jù)結(jié)構(gòu)。它包含了各個進程的進程ID(PID)、優(yōu)先級等關(guān)鍵信息。在文件表結(jié)構(gòu)中,進程表的作用是跟蹤正在運行的所有進程和與進程有關(guān)的文件情況。
3.文件節(jié)點
文件節(jié)點是文件系統(tǒng)中用于表示文件的一種數(shù)據(jù)結(jié)構(gòu)。它包含了文件的屬性和元數(shù)據(jù),是操作系統(tǒng)操作文件時的重要基礎(chǔ)。在文件表結(jié)構(gòu)中,文件節(jié)點用于記錄文件的屬性信息,如文件名、文件長度、文件類型等。
4.文件系統(tǒng)表
文件系統(tǒng)表是Linux系統(tǒng)中用于記錄每個文件系統(tǒng)信息的一種數(shù)據(jù)結(jié)構(gòu)。它包含了各個文件系統(tǒng)的掛載點、文件系統(tǒng)類型等關(guān)鍵信息。在文件表結(jié)構(gòu)中,文件系統(tǒng)表用于跟蹤系統(tǒng)中已經(jīng)掛載的各個文件系統(tǒng)及其對應(yīng)的信息。
三、文件表結(jié)構(gòu)的操作
1.文件打開
文件打開是指在Linux系統(tǒng)中,對于某個文件進行預(yù)處理并記錄文件描述符的過程。在打開文件時,系統(tǒng)首先會檢查文件節(jié)點信息以確保該文件存在,然后為該文件分配一個唯一的文件描述符。文件系統(tǒng)會在進程表中記錄相應(yīng)的信息,并在文件系統(tǒng)表中記錄文件系統(tǒng)和掛載點信息。
2.文件關(guān)閉
文件關(guān)閉是指在Linux系統(tǒng)中,對于已經(jīng)打開的文件進行操作系統(tǒng)預(yù)處理并釋放其相關(guān)資源的過程。在關(guān)閉文件時,系統(tǒng)會檢查該文件是否已在進程表中記錄,刪除該記錄并釋放相應(yīng)的文件描述符,進而關(guān)閉文件并釋放文件相關(guān)資源。
3.文件讀取
文件讀取是指在Linux系統(tǒng)中,對于已經(jīng)打開的文件獲取其中數(shù)據(jù)的過程。在進行文件讀取時,系統(tǒng)首先會檢查該文件是否已經(jīng)打開并以何種方式打開,然后通過文件描述符讀取文件數(shù)據(jù)并返回讀取結(jié)果。
4.文件寫入
文件寫入是指在Linux系統(tǒng)中,對于已經(jīng)打開的文件寫入數(shù)據(jù)的過程。在進行文件寫入時,系統(tǒng)首先會檢查該文件是否已經(jīng)打開并已經(jīng)以何種方式打開,然后通過文件描述符寫入數(shù)據(jù)并返回寫入結(jié)果。
四、
文件表結(jié)構(gòu)是Linux系統(tǒng)中管理文件相關(guān)數(shù)據(jù)的有效途徑。通過清晰地了解文件描述符、進程表、文件節(jié)點和文件系統(tǒng)表等數(shù)據(jù)結(jié)構(gòu)的作用和操作方式,可以更好地理解Linux系統(tǒng)中文件管理的原理和方法,為提高系統(tǒng)可靠性、安全性和性能提供支持。同時,熟練掌握文件表結(jié)構(gòu)的操作技巧,也是系統(tǒng)管理者、開發(fā)人員和Linux使用者必備的基本技能之一。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站制作,設(shè)計師量身打造品牌風(fēng)格,熱線:028-86922220Linux系統(tǒng)-文件系統(tǒng)&用戶組管理-問題解答
1)ls
ls -l /home/ #顯示home目錄下文件或文件夾的包括訪問權(quán)限、所屬用戶、所屬主組、文件大小等信息, ls -l 也是別名ll的命令與選項部分。
ls -a /root #顯示root目錄下包括隱藏文件在內(nèi)的所有文件
ls -d /etc/* #顯示etc目錄下所有子目錄(不包括文件)
ls -S /root #按文件從大到小排列顯示root目錄下各文件
ls -Sr /root #按文件從小到大排列顯示root目錄下各文件
ls -U /root #按文件創(chuàng)建時間從新到舊排列顯示root目錄下各文件
ls -X /root #按文件后綴排序顯示root目錄下各文件
ls -R /root #遞歸顯示root目錄下所有文件
ls -t /root #按修改數(shù)據(jù)內(nèi)容的時間(mtime)從新到舊排列顯示root目錄下各文件
2)touch
touch /data/file#在data目錄下創(chuàng)建file1文件,如果目錄下已經(jīng)有同名文件,則不會覆蓋同名文件
touch -t0.50 /etc/hosts#修改/etc/hosts文件的atime以及mtime的時間戳為2023年10月20日8點30分50秒
touch -c /data/f2 #刷新data目錄下f2文件的atime、mtime、ctime,如果f2文件不存在,則不會創(chuàng)建f2
3)cp
cp etc/hosts /home/ #復(fù)制/etc/hosts文件到 /home目錄下,如果home目錄下沒有hosts文件,則自動創(chuàng)建同名文件;如果有,則會直接覆蓋。
cp -i etc/hosts /home/ #復(fù)制/etc/hosts文件到 /home目錄下,如果home目錄下沒有hosts文件態(tài)蘆,則自動創(chuàng)建同名文件;如果有,則會詢問用戶是否覆蓋。
cp -r /etc/ntp /root #復(fù)制/etc/ntp目錄下所有子目錄以及文件到root目錄下
cp -a /home/* /data/ #復(fù)制/home/目錄下所有子目錄以及文件到data目錄下,所有文件的類型、軟鏈接、文件所屬關(guān)系、時間戳等信息都一并復(fù)制(但是home目錄下的隱藏文件不會被復(fù)制到data目錄下)
cp -av /home/* /data/ #在實現(xiàn)cp -a /home/* /data/ 復(fù)制的基礎(chǔ)上,在終端上顯示復(fù)制過程
cp -u /etc/* /data/#將etc目錄下的文件復(fù)制到data目錄下,如果etc目錄的文件比data目錄下的同名文件新,則覆蓋data目錄下的同名文件,如果帆或帶etc目錄下的文件比data目錄里的與之同名文件舊,則不覆蓋。
cp –backup=numbered etc/hosts /home/hosts #將etc目錄下hosts文件復(fù)制到home目錄下的hosts,在復(fù)制之前,會先對home目錄的hosts文件進行備份,避免被覆蓋后,原文件內(nèi)容丟失。
4)mv
mv /etc/hosts /data/#將etc目錄下hosts文件轉(zhuǎn)移到data目錄下,如果data目錄有同名文件,則直接覆蓋
mv -i /etc/hosts /data/ #將etc目錄下hosts文件轉(zhuǎn)移到data目錄下,如果data目錄有同名文件,則詢問是否覆蓋
mv f1 f#將當前目錄下的f1文件修改名字為f2
mv -t /data/ /團嫌etc/hosts #將etc目錄下hosts文件轉(zhuǎn)移到data目錄下,如果data目錄有同名文件,則直接覆蓋 。功能實現(xiàn)上與mv /etc/hosts /data/ 相同,但是移出路徑參數(shù)與移入路徑參數(shù)的位置發(fā)生了互換
mv downloads/ D #將當前目錄下的downloads目錄的名字改成D
5)rm
rm /data/f1 #刪除data目錄下的f1文件
rm -r /data/* #遞歸刪除data目錄下的所有文件
rm -rf /data/* #強制遞歸刪除data目錄下的所有文件
6)file
file /etc/hosts #查看etc目錄下hosts文件的文件類型,如文本文件、壓縮文件、可執(zhí)行程序等
7)stat
stat /data/f#查看/data/f1文件的三個時間,內(nèi)容數(shù)據(jù)修改時間mtime,讀取時間atime,元數(shù)據(jù)修改時間ctime
8)pwd
#在當前目錄下輸入pwd回車,查看當前所在目錄路徑
pwd -P #顯示當前目錄或文件夾的真實路徑
9)cd
cd /data #進入data目錄
cd ~root #進入root的家目錄
cd#回到剛才離開的目錄
10)mkdir
mkdir /data/dir#在data目錄下創(chuàng)建dir目錄
mkdir -p /data/dir1/dir2/dir3/dir#在data目錄下創(chuàng)建子目錄dir1/dir2/dir3/dir4,若dir1、dir2、dir3都不存在,則遞歸創(chuàng)建
11)rmdir
rmdir /data/dir#刪除data目錄下的dir目錄,如果dir里面有文件,則dir不能被刪除
rmdir -p /data/dir1/dir2/dir3/dir#若dir1、dir2、dir3、dir4都是空目錄,則遞歸刪除data目錄下的dir1、dir2、dir3、dir4目錄
12)ln
ln /data/f1 /data/f#在data目錄下創(chuàng)建文件f1的硬鏈接f2
ln -s f1 f1.link#在當前目錄下創(chuàng)建文件f1的軟鏈接f1.link
#當軟鏈接路徑與原文件路徑不同時,如軟鏈接位置是:/root/f1.link ,而原文件路徑是:/data/f1 。 則在創(chuàng)建軟鏈接時需要相對于軟鏈接的路徑,對原文件路徑補完相對路徑,具體如下:
ln -s ../data/f1 /root/f1.link
答:
1)創(chuàng)建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b
mkdir /tmp/a{1,2}
touch /tmp/a1/{a,b}
2)在/tmp目錄下創(chuàng)建目錄:x_y, x_z, q_y, q_z
mkdir /tmp/{x,q}_{y,z}
答:文件的元數(shù)據(jù)信息包括:
文件類型: 指文件所屬的類型,包括目錄、文本文件、壓縮文件、可執(zhí)行程序等。系統(tǒng)實際上查看文件的頭部信息,magic number。
節(jié)點編號: 每個文件、文件夾在同一個磁盤分區(qū)內(nèi),都有一個唯一的節(jié)點編號inode,用于識別磁盤分區(qū)內(nèi)的文件。節(jié)點編號的數(shù)量在一個磁盤分區(qū)內(nèi)是有限的,如果節(jié)點編號耗盡,無論磁盤空間是否真的占滿,都會顯示磁盤空間已滿。
硬鏈接數(shù): 是指指向該文件節(jié)點編號inode的文件名稱數(shù)量。
所屬用戶UID: 創(chuàng)建該文件的用戶的uid
所屬主組GID: 創(chuàng)建該文件的用戶的主組gid
文件大?。?表示該文件的磁盤空間占用大小
mtime時間戳: 指文件的內(nèi)容數(shù)據(jù)發(fā)生修改時的時間點
atime時間戳: 指文件被訪問時的時間點
ctime時間戳: 指文件的元數(shù)據(jù)發(fā)生變化時的時間點
訪問權(quán)限: 指不同用戶對文件的訪問、修改、執(zhí)行等操作的權(quán)限
指向磁盤數(shù)據(jù)塊的直接指針: 直接指向磁盤數(shù)據(jù)塊的指針,一個文件最多有12個直接指針,每個直接指針指向一個4k大小的數(shù)據(jù)塊
指向磁盤數(shù)據(jù)塊的間接指針: 間接指向磁盤數(shù)據(jù)塊的指針,一個間接指針會先指向一個4k大小數(shù)據(jù)塊作為次階指針表,該數(shù)據(jù)塊又分成1024個4字節(jié)大小的區(qū)間,一個區(qū)間存儲一個次階的指針,次階指針指向一個4k的磁盤數(shù)據(jù)塊存儲真正的文件數(shù)據(jù),若依然不能滿足空間要求,則可繼續(xù)嵌套次階指針表,直到滿足文件存儲要求為止。
查看元數(shù)據(jù)信息方式:
1)ls -l /data #可查看data目錄下非隱藏文件的訪問權(quán)限、所屬用戶UID、所屬用戶主組GID、mtime時間戳、文件大小、硬鏈接數(shù)。
2)stat /root/bin #可查看root目錄下bin目錄的atime時間戳、mtime時間戳、ctime時間戳
3)ls -lc /root/ #查看root目錄下非隱藏文件的ctime時間戳
4)ls -lu /root/ #查看root目錄下非隱藏文件的atime時間戳
5)ls -i /root#查看root目錄下所有非隱藏文件的節(jié)點編號
6)file /root/.bashrc#查看root目錄下.bashrc文件的文件類型
修改文件的時間戳信息:
touch -t0.50 /etc/hosts#將etc目錄下hosts文件的atime和mtime時間戳修改成2023年10月2日8時30分50秒
touch -a /etc/hosts #更新etc目錄下hosts文件的atime和ctime為當前時間
touch -m /etc/hosts #更新etc目錄下hosts文件的mtime和ctime為當前時間
答: touch /tmp/tfile-`date +”%F-%H-%M-%S”`
答:
mkdir /tmp/mytest#先創(chuàng)建mytest1目錄
cp -a /etc/p* /tmp/mytest1/
或:
cp -a /etc/p*> /tmp/mytest1/
答:
useradd -umd /tmp/tom -s /bin/zsh -G jack tom
1)useradd
useradd jack #創(chuàng)建用戶jack,用戶策略采用系統(tǒng)默認配置
useradd -ujack#創(chuàng)建用戶jack,指定用戶的UID為1008
useradd -d /data/jack jack #創(chuàng)建用戶jack,指定用戶家目錄路徑為/data/jack
useradd -gjack #創(chuàng)建用戶jack,指定用戶主組是GID=1111的組,但GID=1111的組需要事先存在,否則無法創(chuàng)建
useradd -G tom jack #創(chuàng)建用戶jack,指定用戶jack加入附加組tom,但tom組需要事先存在,否則無法創(chuàng)建
useradd -s /bin/zsh jack #創(chuàng)建用戶jack,制定用戶jack的shell類型是zsh
useradd -r jack#創(chuàng)建系統(tǒng)用戶jack,系統(tǒng)用戶默認不創(chuàng)建家目錄
useradd -r -md /data/jack jack #配合-d選項,創(chuàng)建系統(tǒng)用戶jack,指定該系統(tǒng)用戶創(chuàng)建家目錄/data/jack,并在家目錄中載入默認配置文件
useradd -N jack #創(chuàng)建用戶jack,不創(chuàng)建jack同名主組,將jack主組默認為users
useradd -M jack #創(chuàng)建用戶jack,強制用戶jack不創(chuàng)建家目錄
2)usermod
usermod -G wang jack #將jack用戶的附加組更改為wang,原有附加組刪除
usermod -aG wang jack #在不退出原有附加組情況下,jack用戶增加附加組wang
usermod -l jacky jack #修改用戶名稱為jacky
usermod -ejack #將用戶jack的賬號過期日期修改為2023年12月12日
usermod -s /bin/csh jack #修改用戶jack的shell類型為csh,與命令: chsh -s /bin/csh jack 相等
usermod -c ‘a(chǎn)bcdefg’ jack #編輯用戶jack的注釋為abcdefg
3)userdel
userdel jack #刪除用戶jack
userdel -r jack #刪除用戶jack,包括用戶的家目錄、郵箱
4)groupadd
groupadd -gleo #創(chuàng)建組leo,指定GID為1010
groupadd -r leo#創(chuàng)建系統(tǒng)組leo
5)groupmod
groupmod -n lee leo #修改組leo名字為lee
groupmod -gleo #修改組leo的GID為1111
6)groupdel
groupdel wang#刪除wang組,但是wang組必須不是任何用戶的主組,否則不可以刪除
7)su
su jack #當前用戶非登錄切換到j(luò)ack賬號,不讀取jack賬號配置文件
su – jack #當前用戶登錄切換到j(luò)ack賬號,讀取jack賬號配置文件
8)groupmems
groupmems -l -g root#查看所有屬于root組的用戶
9)id
id#查看當前用戶的UID名稱 、 主組名稱GID 、 附屬組名稱GID
id root #查看root用戶的UID名稱、 主組名稱GID 、附屬組名稱GID
id -u root #查看root用戶的UID名稱
id -g root #查看root用戶的主組名稱GID
id -G root #查看root用戶的主組名稱GID 、 附屬組名稱GID
id -nG root #只查看root用戶的主組名稱 、 附屬組名稱
10)chfn
chfn jack #編輯修改用戶jack的注釋 ,與命令:usermod -c ‘a(chǎn)bcdefg’ jack 類似
11)chsh
chsh -s /bin/csh jack #修改用戶jack的shell類型為csh
12)chage
chage jack# 交互式修改用戶jack的密碼策略,包括修改:密碼創(chuàng)建時間、最小密碼修改期、密碼有效期、過期通知、過期寬限期、賬戶有效時間
chage -l jack #查看用戶jack的密碼策略
chage -djack #讓用戶jack密碼期限立即過期,重新登錄需要更換密碼
13)passwd
passwd #修改當前用戶的賬號密碼
passwd jack #修改jack賬號密碼 (僅限r(nóng)oot賬號)
passwd -e jack #強制jack用戶下次登錄修改密碼 (僅限r(nóng)oot賬號)
echo hello | passwd –stdin jack #利用管道標準輸入,快速將jack用戶密碼修改成hello,無需輸入兩次新密碼,不檢驗密碼的復(fù)雜度
14)newgrp
newgrp root#將當前用戶的主組切換成root,原主組切換成附屬組,如果當前用戶的附屬組沒有root組,切換時需要輸入root組密碼;如果當前用戶的附屬組包含root組,則無需輸入組密碼,直接切換
15)gpasswd
gpasswd jack #創(chuàng)建jack組密碼
gpasswd -a wang jack #將wang用戶添加至jack組里
16)groups
關(guān)于linux 系統(tǒng)文件表的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)科技公司主營:網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、小程序制作、成都軟件開發(fā)、網(wǎng)頁設(shè)計、微信開發(fā)、成都小程序開發(fā)、網(wǎng)站制作、網(wǎng)站開發(fā)等業(yè)務(wù),是專業(yè)的成都做小程序公司、成都網(wǎng)站建設(shè)公司、成都做網(wǎng)站的公司。創(chuàng)新互聯(lián)公司集小程序制作創(chuàng)意,網(wǎng)站制作策劃,畫冊、網(wǎng)頁、VI設(shè)計,網(wǎng)站、軟件、微信、小程序開發(fā)于一體。
名稱欄目:深入解析Linux系統(tǒng)文件表:掌握文件管理必備知識(linux系統(tǒng)文件表)
網(wǎng)址分享:http://fisionsoft.com.cn/article/djepphd.html


咨詢
建站咨詢
