面試官常考的MySQL索引(MySQL進(jìn)階)
765
2025-03-31
一、 目錄和路徑
1、 目錄
目錄是一組相關(guān)文件的集合。
一個(gè)目錄下面除了可以存放文件之外還可以存放其他目錄,即可包含子目錄。
在確定文件、目錄位置時(shí),DOS和Unix/Linux都采用“路徑名+文件名”的方式。路徑反映的是目錄與目錄之間的關(guān)系。
2、 路徑
Unix/Linux路徑由到達(dá)定位文件的目錄組成。在Unix/Linux系統(tǒng)中組成路徑的目錄分割符為斜杠“/”,而DOS則用反斜杠“\”來分割各個(gè)目錄。
路徑分為絕對路徑和相對路徑:
絕對路徑
1)、絕對路徑是從目錄樹的樹根“/”目錄開始往下直至到達(dá)文件所經(jīng)過的所有節(jié)點(diǎn)目錄。
2)、下級目錄接在上級目錄后面用“/”隔開。
3)、注意:絕對路徑都是從“/”開始的,所以第一個(gè)字符一定是“/”。
相對路徑
1)、相對路徑是指目標(biāo)目錄相對于當(dāng)前目錄的位置。
2)、如果不在當(dāng)前目錄下,則需要使用兩個(gè)特殊目錄“.”和“”了。目錄“.”指向當(dāng)前目錄,而目錄“..”。
二、 文件系統(tǒng)
1、 Windows和Linux文件系統(tǒng)區(qū)別
每個(gè)驅(qū)動(dòng)器都有自己的根目錄結(jié)構(gòu),這樣形成了多個(gè)樹并列的情形,如圖所示:
在 Linux 下,我們是看不到這些驅(qū)動(dòng)器盤符,我們看到的是文件夾(目錄):
RedHat
Ubuntu
在早期的 UNIX 系統(tǒng)中,各個(gè)廠家各自定義了自己的 UNIX 系統(tǒng)文件目錄,比較混亂。Linux 面世不久后,對文件目錄進(jìn)行了標(biāo)準(zhǔn)化,于1994年對根文件目錄做了統(tǒng)一的規(guī)范,推出 FHS ( Filesystem Hierarchy Standard ) 的 Linux 文件系統(tǒng)層次結(jié)構(gòu)標(biāo)準(zhǔn)。FHS 標(biāo)準(zhǔn)規(guī)定了 Linux 根目錄各文件夾的名稱及作用,統(tǒng)一了Linux界命名混亂的局面。
和Windows操作系統(tǒng)類似,所有Unix/Linux的數(shù)據(jù)都是由文件系統(tǒng)按照樹型目錄結(jié)構(gòu)管理的。而且Unix/Linux操作系統(tǒng)同樣要區(qū)分文件的類型,判斷文件的存取屬性和可執(zhí)行屬性。
Unix/Linux也采用了樹狀結(jié)構(gòu)的文件系統(tǒng),它由目錄和目錄下的文件一起構(gòu)成。但Unix/Linux文件系統(tǒng)不使用驅(qū)動(dòng)器這個(gè)概念,而是使用單一的根目錄結(jié)構(gòu),所有的分區(qū)都掛載到單一的“/”目錄上,其結(jié)構(gòu)示意圖如圖所示:
無論何種版本的 Linux 發(fā)行版,桌面、應(yīng)用是 Linux 的外衣,文件組織、目錄結(jié)構(gòu)才是Linux的內(nèi)心。
2、 Linux目錄結(jié)構(gòu)
/:根目錄,一般根目錄下只存放目錄,在Linux下有且只有一個(gè)根目錄。所有的東西都是從這里開始。當(dāng)你在終端里輸入“/home”,你其實(shí)是在告訴電腦,先從/(根目錄)開始,再進(jìn)入到home目錄。
/bin: /usr/bin: 可執(zhí)行二進(jìn)制文件的目錄,如常用的命令ls、tar、mv、cat等。
/boot:放置linux系統(tǒng)啟動(dòng)時(shí)用到的一些文件,如Linux的內(nèi)核文件:/boot/vmlinuz,系統(tǒng)引導(dǎo)管理器:/boot/grub。
/dev:存放linux系統(tǒng)下的設(shè)備文件,訪問該目錄下某個(gè)文件,相當(dāng)于訪問某個(gè)設(shè)備,常用的是掛載光驅(qū) mount /dev/cdrom /mnt。
/etc:系統(tǒng)配置文件存放的目錄,不建議在此目錄下存放可執(zhí)行文件,重要的配置文件有 /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d。
/home:系統(tǒng)默認(rèn)的用戶家目錄,新增用戶賬號時(shí),用戶的家目錄都存放在此目錄下,~表示當(dāng)前用戶的家目錄,~edu 表示用戶 edu 的家目錄。
/lib: /usr/lib: /usr/local/lib:系統(tǒng)使用的函數(shù)庫的目錄,程序在執(zhí)行過程中,需要調(diào)用一些額外的參數(shù)時(shí)需要函數(shù)庫的協(xié)助。
/lost+fount:系統(tǒng)異常產(chǎn)生錯(cuò)誤時(shí),會(huì)將一些遺失的片段放置于此目錄下。
/mnt: /media:光盤默認(rèn)掛載點(diǎn),通常光盤掛載于 /mnt/cdrom 下,也不一定,可以選擇任意位置進(jìn)行掛載。
/opt:給主機(jī)額外安裝軟件所擺放的目錄。
/proc:此目錄的數(shù)據(jù)都在內(nèi)存中,如系統(tǒng)核心,外部設(shè)備,網(wǎng)絡(luò)狀態(tài),由于數(shù)據(jù)都存放于內(nèi)存中,所以不占用磁盤空間,比較重要的目錄有 /proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等。
/root:系統(tǒng)管理員root的家目錄。
/sbin: /usr/sbin: /usr/local/sbin:放置系統(tǒng)管理員使用的可執(zhí)行命令,如fdisk、shutdown、mount 等。與 /bin 不同的是,這幾個(gè)目錄是給系統(tǒng)管理員 root使用的命令,一般用戶只能"查看"而不能設(shè)置和使用。
/tmp:一般用戶或正在執(zhí)行的程序臨時(shí)存放文件的目錄,任何人都可以訪問,重要數(shù)據(jù)不可放置在此目錄下。
/srv:服務(wù)啟動(dòng)之后需要訪問的數(shù)據(jù)目錄,如 www 服務(wù)需要訪問的網(wǎng)頁數(shù)據(jù)存放在 /srv/www 內(nèi)。
/usr:應(yīng)用程序存放目錄,/usr/bin 存放應(yīng)用程序,/usr/share 存放共享數(shù)據(jù),/usr/lib 存放不能直接運(yùn)行的,卻是許多程序運(yùn)行所必需的一些函數(shù)庫文件。/usr/local: 存放軟件升級包。/usr/share/doc: 系統(tǒng)說明文件存放目錄。/usr/share/man: 程序說明文件存放目錄。
/var:放置系統(tǒng)執(zhí)行過程中經(jīng)常變化的文件,如隨時(shí)更改的日志文件 /var/log,/var/log/message:所有的登錄文件存放目錄,/var/spool/mail:郵件存放的目錄,/var/run:程序或服務(wù)啟動(dòng)后,其PID存放在該目錄下。
三、 一切皆文件
1、 一切皆文件
Unix/Linux對數(shù)據(jù)文件(*.mp3、*.bmp),程序文件(*.c、*.h、*.o),設(shè)備文件(LCD、觸摸屏、鼠標(biāo)),網(wǎng)絡(luò)文件( socket ) 等的管理都抽象為文件,使用統(tǒng)一的方式方法管理。
在Unix/Linux操作系統(tǒng)中也必須區(qū)分文件類型,通過文件類型可以判斷文件屬于可執(zhí)行文件、文本文件還是數(shù)據(jù)文件。在Unix/Linux系統(tǒng)中文件可以沒有擴(kuò)展名。
2、 文件分類
通常,Unix/Linux系統(tǒng)中常用的文件類型有5種:普通文件、目錄文件、設(shè)備文件、管道文件和鏈接文件。
普通文件
普通文件是計(jì)算機(jī)操作系統(tǒng)用于存放數(shù)據(jù)、程序等信息的文件,一般都長期存放于外存儲(chǔ)器(磁盤、磁帶等)中。普通文件一般包括文本文件、數(shù)據(jù)文件、可執(zhí)行的二進(jìn)制程序文件等。
在Unix/Linux中可以通過file命令來查看文件的類型。如果file文件后面攜帶文件名,則查看指定文件的類型,如果攜帶通配符“*”,則可以查看當(dāng)前目錄下的所有文件的類型。
目錄文件
Unix/Linux系統(tǒng)把目錄看成是一種特殊的文件,利用它構(gòu)成文件系統(tǒng)的樹型結(jié)構(gòu)。
目錄文件只允許系統(tǒng)管理員對其進(jìn)行修改,用戶進(jìn)程可以讀取目錄文件,但不能對它們進(jìn)行修改。
每個(gè)目錄文件至少包括兩個(gè)條目,“..”表示上一級目錄,“.”表示該目錄本身。
設(shè)備文件
Unix/Linux系統(tǒng)把每個(gè)設(shè)備都映射成一個(gè)文件,這就是設(shè)備文件。它是用于向I/O設(shè)備提供連接的一種文件,分為字符設(shè)備和塊設(shè)備文件。
字符設(shè)備的存取以一個(gè)字符為單位,塊設(shè)備的存取以字符塊為單位。每一種I/O設(shè)備對應(yīng)一個(gè)設(shè)備文件,存放在/dev目錄中,如行式打印機(jī)對應(yīng)/dev/lp,第一個(gè)軟盤驅(qū)動(dòng)器對應(yīng)/dev/fd0。
管道文件
管道文件也是Unix/Linux中較特殊的文件類型,這類文件多用于進(jìn)程間的通信。
鏈接文件
似于 windows 下的快捷方式,鏈接又可以分為軟鏈接(符號鏈接)和硬鏈接。
四、 文件權(quán)限
文件權(quán)限就是文件的訪問控制權(quán)限,即哪些用戶和組群可以訪問文件以及可以執(zhí)行什么樣的操作。
Unix/Linux系統(tǒng)是一個(gè)典型的多用戶系統(tǒng),不同的用戶處于不同的地位,對文件和目錄有不同的訪問權(quán)限。為了保護(hù)系統(tǒng)的安全性,Unix/Linux系統(tǒng)除了對用戶權(quán)限作了嚴(yán)格的界定外,還在用戶身份認(rèn)證、訪問控制、傳輸安全、文件讀寫權(quán)限等方面作了周密的控制。
在 Unix/Linux中的每一個(gè)文件或目錄都包含有訪問權(quán)限,這些訪問權(quán)限決定了誰能訪問和如何訪問這些文件和目錄。
1、 訪問用戶
通過設(shè)定權(quán)限可以從以下三種訪問方式限制訪問權(quán)限:
只允許用戶自己訪問(所有者)
所有者就是創(chuàng)建文件的用戶,用戶是所有用戶所創(chuàng)建文件的所有者,用戶可以允許所在的用戶組能訪問用戶的文件。
允許一個(gè)預(yù)先指定的用戶組中的用戶訪問(用戶組)
用戶都組合成用戶組,例如,某一類或某一項(xiàng)目中的所有用戶都能夠被系統(tǒng)管理員歸為一個(gè)用戶組,一個(gè)用戶能夠授予所在用戶組的其他成員的文件訪問權(quán)限。
允許系統(tǒng)中的任何用戶訪問(其他用戶)
用戶也將自己的文件向系統(tǒng)內(nèi)的所有用戶開放,在這種情況下,系統(tǒng)內(nèi)的所有用戶都能夠訪問用戶的目錄或文件。在這種意義上,系統(tǒng)內(nèi)的其他所有用戶就是 other 用戶類
這有點(diǎn)類似于 QQ 空間的訪問權(quán)限:
這個(gè) QQ 空間是屬于我的,我相當(dāng)于管理者(也就是“所有者”),我想怎么訪問就怎么訪問。
同時(shí),我可以設(shè)置允許 QQ 好友訪問,而這些 QQ 好友則類似于“用戶組”。
當(dāng)然,我可以允許所有人訪問,這里的所有人則類似于“其他用戶”。
2、 訪問權(quán)限
用戶能夠控制一個(gè)給定的文件或目錄的訪問程度,一個(gè)文件或目錄可能有讀、寫及執(zhí)行權(quán)限:
讀權(quán)限(r)
對文件而言,具有讀取文件內(nèi)容的權(quán)限;對目錄來說,具有瀏覽目錄的權(quán)限。
寫權(quán)限(w)
對文件而言,具有新增、修改文件內(nèi)容的權(quán)限;對目錄來說,具有刪除、移動(dòng)目錄內(nèi)文件的權(quán)限。
可執(zhí)行權(quán)限(x)
對文件而言,具有執(zhí)行文件的權(quán)限;對目錄了來說該用戶具有進(jìn)入目錄的權(quán)限。
注意:通常,Unix/Linux系統(tǒng)只允許文件的屬主(所有者)或超級用戶改變文件的讀寫權(quán)限。
3、 示例說明
第1個(gè)字母代表文件的類型:“d” 代表文件夾、“-” 代表普通文件、“c” 代表硬件字符設(shè)備、“b” 代表硬件塊設(shè)備、“s”表示管道文件、“l(fā)” 代表軟鏈接文件。
后 9 個(gè)字母分別代表三組權(quán)限:文件所有者、用戶者、其他用戶擁有的權(quán)限。
每一個(gè)用戶都有它自身的讀、寫和執(zhí)行權(quán)限。
第一組權(quán)限控制訪問自己的文件權(quán)限,即所有者權(quán)限。
第二組權(quán)限控制用戶組訪問其中一個(gè)用戶的文件的權(quán)限。
第三組權(quán)限控制其他所有用戶訪問一個(gè)用戶的文件的權(quán)限。
這三組權(quán)限賦予用戶不同類型(即所有者、用戶組和其他用戶)的讀、寫及執(zhí)行權(quán)限就構(gòu)成了一個(gè)有9種類型的權(quán)限組。
Linux Unix
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。