国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

用了這么久 Linux ,才知道這些概念

2024-08-27 23:54:45
字體:
供稿:網(wǎng)友
  我們大家應(yīng)該知道,Linux 和 UNIX 中的文件系統(tǒng)是一個(gè)以 / 為根的樹狀式文件結(jié)構(gòu),/ 是 Linux 和 UNIX 中的根目錄,同樣它也是文件系統(tǒng)的起點(diǎn)。所有的文件和目錄都位于 / 路徑下,包括我們經(jīng)常聽到的 /usr、/etc、/bin、/home 等。在早期的 UNIX 系統(tǒng)中,各個(gè)廠家都定義了自己文件系統(tǒng)的命名構(gòu)成,比較混亂,而且難以區(qū)分。
 
  為了避免在 Linux 系統(tǒng)上也出現(xiàn)這種命名混亂的問題,在 1994 年推出了 FSSTND(FileSystem Standard) 的 Linux 文件系統(tǒng)層次結(jié)構(gòu)標(biāo)準(zhǔn),后來 UNIX 團(tuán)隊(duì)把 FSSTND 發(fā)揚(yáng)光大,成為了后來的 FHS(FileSystem Hierarchy Standard) 。
 
  FHS 標(biāo)準(zhǔn)使得眾多的 Linux distributions(Linux 發(fā)行版) 有了統(tǒng)一的文件系統(tǒng)命名標(biāo)準(zhǔn),換一種說法:FHS 就是一種文件系統(tǒng)的命名標(biāo)準(zhǔn)。一般來說,Linux distributions 都需要遵循 FHS 規(guī)定的
 
  目錄結(jié)構(gòu)和目錄內(nèi)容
  文件類型的權(quán)限
  但是,F(xiàn)HS 僅僅定義了兩層規(guī)范,第一層是 / 下面的各個(gè)目錄要放什么文件數(shù)據(jù),比如 /etc 下面需要放設(shè)置文件,/bin 和 /sbin 下面需要放可執(zhí)行文件等;第二層是針對(duì) /usr 和 /var 這兩個(gè)目錄來定義的,比如 /usr/share 需要放共享數(shù)據(jù),/var/log需要放系統(tǒng)登錄文件等。
 
  下面我就來為你介紹一下 Linux 在 / 下都有哪些定義和規(guī)范。
 
  FHS 規(guī)范
  我下面介紹的這些規(guī)范,只是 FHS 文檔指定的目錄和文件的一部分,完整的標(biāo)準(zhǔn)可在 http://www.pathname.com/fhs/ 在線獲得。
 
  首先先來介紹一下根目錄的重要性和意義:
 
  根目錄是整個(gè)系統(tǒng)中最重要的一個(gè)目錄,后續(xù)的目錄都是以根目錄為基礎(chǔ)進(jìn)行衍生,更重要的一點(diǎn),根目錄與開機(jī)、還原、系統(tǒng)修復(fù)有關(guān),由于系統(tǒng)開機(jī)需要特定的環(huán)境,所以系統(tǒng)出現(xiàn)錯(cuò)誤時(shí),根目錄也必須要包含有能夠修復(fù)文件系統(tǒng)的程序才行。所以 FHS 規(guī)定不要將根目錄的分區(qū)大小設(shè)置的過大,實(shí)際上是越小越好,以減少出錯(cuò)率。
 
  FHS 同樣規(guī)定了根目錄下面應(yīng)該要有這些目錄的存在。
 
  /home 目錄
  /home 目錄是系統(tǒng)默認(rèn)的使用者主文件夾(home directory)。
 
  /boot 目錄
  /boot 目錄包含啟動(dòng)操作系統(tǒng)所需的靜態(tài)文件,比如 Linux 內(nèi)核,這些文件對(duì)系統(tǒng)的啟動(dòng)至關(guān)重要。Linux Kernel 常用的文件名為 vmlinuz, 但是如果你使用的是 grub2 這個(gè)開機(jī)程序,還會(huì)存在 /boot/grub2 這個(gè)目錄。
 
  我剛剛搭建完成的 Linux ,boot 下面是這樣的。
 
 
 
  千萬不要?jiǎng)h除 /boot 目錄,這樣做可能會(huì)導(dǎo)致系統(tǒng)無法啟動(dòng)。
 
  /dev 目錄
  /dev 目錄都是一些設(shè)備節(jié)點(diǎn),這些設(shè)備節(jié)點(diǎn)是 Linux 系統(tǒng)中的設(shè)備或者是內(nèi)核提供的虛擬設(shè)備。這些設(shè)備節(jié)點(diǎn)同樣也對(duì)系統(tǒng)正常運(yùn)行至關(guān)重要。/dev 目錄和子目錄下的設(shè)備是字符設(shè)備和塊設(shè)備。字符設(shè)備就是鼠標(biāo)、鍵盤、調(diào)制解調(diào)器,塊設(shè)備就是硬盤、軟盤驅(qū)動(dòng)器。存儲(chǔ) /dev 目錄下的文件就相當(dāng)于是存儲(chǔ)某個(gè)設(shè)備。
 
  比較重要的文件有
 
  /dev/hda:主 IDE 通道上的主設(shè)備,當(dāng)提到 IDE/ATA 硬盤時(shí),主通道是第一和第二驅(qū)動(dòng)器連接到主板或接口卡的通道。
 
  /dev/hdb:主 IDE 通道上的從設(shè)備。
 
  /dev/tty0:第一個(gè)虛擬控制臺(tái)。虛擬控制臺(tái)又被稱為 VC,也稱為虛擬終端 VT,是用于計(jì)算機(jī)用戶界面的鍵盤和顯示器的概念組合。
 
  /dev/tty1:第二個(gè)虛擬控制臺(tái)。
 
  /dev/sda:主 SCSI 和 SATA 通道上的第一個(gè)設(shè)備。
 
  /dev/lp0:第一個(gè)并行端口。
 
  下面是我 Linux 下面的目錄。
 
  /etc 目錄
  /etc 目錄是為計(jì)算機(jī)本地的配置文件保留的,系統(tǒng)主要的配置文件都放在這個(gè)目錄下,比如賬號(hào)密碼,服務(wù)的啟停,一般來說,這個(gè)目錄下面一般用戶只有讀權(quán)限,只有 root 用戶具有修改權(quán)限(關(guān)于權(quán)限的問題,可以閱讀筆者的上一篇文章 看完這篇 Linux 權(quán)限,通透了!)
 
  /etc 下比較重要的幾個(gè)文件有
 
  /etc/modprobe.d 內(nèi)核驅(qū)動(dòng)模塊
 
  /etc 下比較重要的幾個(gè)文件有
 
  /etc/modprobe.d 內(nèi)核驅(qū)動(dòng)模塊
 
  /etc/passwd 存儲(chǔ)用戶密碼
 
  /etc/fstab 存儲(chǔ)掛載信息
 
  /etc/issue 存儲(chǔ)系統(tǒng)啟動(dòng)顯示的內(nèi)容
 
  /etc 目錄下不要存放二進(jìn)制文件,二進(jìn)制文件最好放在 /sbin 和 /bin 中。
 
  /etc 目錄下有兩個(gè)重要的文件,/etc/x11 用于存放 X Window 系統(tǒng)配置文件,例如 xorg.conf,/etc/opt 這個(gè)主要存放第三方協(xié)力軟件 /opt 的相關(guān)配置文件。
 
 
 
  /lib 目錄
  系統(tǒng)的函數(shù)庫有很多,而 /lib 目錄就像一個(gè)倉庫,它用于存放執(zhí)行 /bin 和 /sbin 中二進(jìn)制文件所需要的庫,這些共享庫映像對(duì)于系統(tǒng) boot 和執(zhí)行根文件系統(tǒng)中的命令特別重要。
 
 
 
  /media 目錄
  media 媒體的英文,也就是說 /media下可以存放用于可移動(dòng)媒體(例如 USB、DVD、CD-ROM 和 Zip 磁盤)的安裝點(diǎn)和子目錄。
 
  /mnt 目錄
  如果你想要暫時(shí)掛載某些額外的設(shè)備,你可以放在 /mnt 這個(gè)目錄下,其實(shí)最早的時(shí)候,/mnt 用途和 /media 一樣,只是后來有了 /media 之后,這個(gè)目錄就被用來臨時(shí)掛載了。
 
  /opt 目錄
  /opt/ 目錄為大多數(shù)應(yīng)用程序軟件包提供存儲(chǔ)空間,將文件放置在 /opt/ 目錄中的包會(huì)創(chuàng)建一個(gè)與包同名的目錄。反過來,該目錄保存了原本會(huì)分散在整個(gè)文件系統(tǒng)中的文件,從而為系統(tǒng)管理員提供了一種簡單的方法來確定特定包中每個(gè)文件的角色。
 
  例如,如果 sample 是位于 /opt/ 目錄中的特定軟件包的名稱,那么所有文件都放置在 /opt/sample/ 目錄中的目錄中,例如 /opt/sample/bin/ 表示二進(jìn)制文件 和 /opt/sample/man/ 用于手冊(cè)頁。
 
  /proc 目錄
  /proc 目錄本身是一個(gè)虛擬文件系統(tǒng)(virtual filesystem),他放置的數(shù)據(jù)是在內(nèi)存中,比如系統(tǒng)核心信息,行程信息,周邊設(shè)備網(wǎng)絡(luò)狀態(tài)等。因?yàn)檫@個(gè)目錄下的數(shù)據(jù)都是在內(nèi)存中的,所以本身不占用磁盤空間。
 
  這個(gè)目錄下比較重要的文件有/proc/cpuinfo、/proc/dma、/proc/interrupts、/proc/net/。
 
 
 
  /sbin 目錄
  /sbin 目錄存儲(chǔ) root 用戶使用的可執(zhí)行文件。/sbin 中的可執(zhí)行文件在啟動(dòng)時(shí)使用,用于系統(tǒng)管理和執(zhí)行系統(tǒng)恢復(fù)操作。除了 /bin 中的二進(jìn)制之外,/sbin 還包含啟動(dòng)、恢復(fù)和修復(fù)系統(tǒng)所需要的二進(jìn)制文件。
 
  /sbin 目錄下包含 arp、clock、halt、init、grub、ifconfig、route、shutdown 等。
 
 
  /tmp 目錄
  這個(gè)目錄下面存放的都是一些臨時(shí)文件,這些文件在系統(tǒng)重新啟動(dòng)時(shí)被清除。
 
 
  /sys 目錄
  這個(gè)目錄其實(shí)和 /proc 非常類似,也是一個(gè)虛擬文件系統(tǒng),主要是記錄核心與系統(tǒng)硬件相關(guān)信息。這個(gè)目錄同樣也不占用磁盤空間。
 
  /usr 目錄
  /usr 目錄是需要好好聊聊的一個(gè)目錄了,很多讀者都誤以為 /usr 是 user 的縮寫,其實(shí) usr 是 Unix Software Resource 的縮寫,F(xiàn)HS 建議軟件開發(fā)者應(yīng)該將數(shù)據(jù)合理的放置在這個(gè)目錄的次目錄下,不要自己創(chuàng)建軟件獨(dú)立的目錄。
 
  所有系統(tǒng)默認(rèn)的軟件都會(huì)放在 /usr 下面,因此這個(gè)目錄有點(diǎn)類似 Windows 中的 C:/Windows/ + C:/Program files/ 這兩個(gè)目錄的綜合,一般來說,系統(tǒng)剛安裝完畢后,這個(gè)目錄會(huì)占用較多的磁盤容量,/usr 的次目錄建議有下面這些內(nèi)容
 
  */usr/bin/*一般用戶能夠使用的指令都放在這個(gè)目錄下,CentOS 7 開始,/usr/bin 下指令和 /bin 目錄下指令一毛一樣。
 
  */usr/lib/*基本上,與 /lib 功能相同,所以 /lib 就是鏈接到這個(gè)目錄中的。
 
  /usr/local 系統(tǒng)管理員在在本機(jī)下載的軟件都建議安裝到這個(gè)目錄下,便于管理。
 
  /usr/sbin 非系統(tǒng)正常運(yùn)行所需要的系統(tǒng)指令,最常見的就是某些網(wǎng)絡(luò)服務(wù)器軟件的服務(wù)指令,不過基本功能與 /sbin 差不多,因此目前 /sbin 就是鏈接到此目錄中的。
 
  /usr/share 共享文件放置區(qū),這個(gè)目錄下還有這些次目錄 /usr/share/man ,/usr/share/doc,/usr/share/zoneinfo
 
  /usr/games 與游戲相關(guān)的數(shù)據(jù)放置處
 
  /usr/include C/C++ 等程序語言的 header 和 include 放置處,也是直接鏈接的。
 
  /usr/src 一般源碼建議放在這,src 是 source 的意思,至于核心源碼則建議放在 /usr/src/linux 目錄下。
 
  /run 目錄
  早期的 FHS 規(guī)定系統(tǒng)開機(jī)后所產(chǎn)生的各項(xiàng)信息應(yīng)該要放置到 /var/run 目錄下,新版的 FHS 則規(guī)范到 /run 下面。
 
  /var 目錄
  如果說 /usr 是安裝時(shí)會(huì)占用較大磁盤容量的目錄,那么 /var就是在系統(tǒng)運(yùn)行后才會(huì)漸漸占用磁盤容量的目錄。/var 主要包括高速緩存、登錄文件以及某些軟件運(yùn)行所產(chǎn)生的的目錄,包括程序文件,例如 MySQL 數(shù)據(jù)庫文件等,常見的目錄有
 
  /var/cache 應(yīng)用程序緩存目錄
 
  /var/crash 系統(tǒng)錯(cuò)誤信息
 
  /var/log 日志記錄
 
  /var/run 進(jìn)程的標(biāo)識(shí)數(shù)據(jù)
 
  /var/tmp 臨時(shí)文件目錄
 
  /var/lock 文件鎖定記錄
 
  /srv 目錄
  srv 可以看做 service 的縮寫,是一些網(wǎng)絡(luò)服務(wù)啟動(dòng)之后,這些服務(wù)所需要取用的數(shù)據(jù)目錄,常見的服務(wù)例如 WWW, FTP 。
 
  CentOS 7 在目錄的編排上與過去的版本不同,上面已經(jīng)大致描述過了,這里做個(gè)匯總,比較大的差異就是將許多原本應(yīng)該在根目錄里面的目錄,將全部數(shù)據(jù)挪到了 /usr 里面去,然后進(jìn)行鏈接設(shè)置,這些內(nèi)容包括
 
  /bin -> /usr/bin
  /sbin -> /usr/sbin
  /lib -> /usr/lib
  /lib64 -> /usr/lib64
  /var/lock -> /run/lock
  /var/run -> /run
  為了方便大家直觀的看到這些目錄都是做什么的,我手繪了一個(gè)圖,圖中的這些目錄之間的關(guān)系很像一棵樹,所以這個(gè)目錄又叫做目錄樹。
 
  這個(gè)目錄樹已經(jīng)很清晰了,就沒什么可說的了。
 
  絕對(duì)路徑和相對(duì)路徑
  和其他系統(tǒng)一樣,Linux 中的路徑也分為絕對(duì)路徑(absolute)和相對(duì)路徑(relative),這兩種的寫法依據(jù)如下:
 
  由根目錄開始的路徑都是絕對(duì)路徑,比如上圖目錄樹中的 /boot、/usr/local 等
  相對(duì)于當(dāng)前文件路徑的寫法是相對(duì)路徑,比如 ../var/log 目錄
  這里需要注意一點(diǎn),相對(duì)路徑是以你當(dāng)前所在路徑的相對(duì)位置來移動(dòng)的,比如你當(dāng)前在 /boot 這個(gè)目錄下,你想要移動(dòng)到 /usr/src 這個(gè)目錄
 
  絕對(duì)路徑表示法:/usr/src
 
  相對(duì)路徑表示法:../usr/src
 
  這里還需要注意兩個(gè)特殊的目錄:
 
  . :代表當(dāng)前目錄,也可以使用 ./ 來表示
  .. :代表上一層目錄,也可以用 ../ 來表示
  關(guān)于絕對(duì)路徑和相對(duì)路徑的取舍問題:當(dāng)文件路徑很長時(shí),推薦使用相對(duì)路徑,因?yàn)槟悴挥孟蚪^對(duì)路徑一樣,把所有的路徑都寫一遍,而直接使用 ../ 即可;
 
  但是從文件路徑的正確性來說,絕對(duì)路徑要比相對(duì)路徑要好。
 
  如果你是在寫程序來管理系統(tǒng),務(wù)必使用絕對(duì)路徑,因?yàn)榻^對(duì)路徑不管你的文件路徑在哪,都會(huì)找到指定的文件;而相對(duì)路徑如果文件移動(dòng)后,就可能會(huì)存在找不到文件的情況。
 
  與目錄有關(guān)的指令
  下面我們就來聊一聊和目錄相關(guān)的幾條指令
 
  cd
  cd 就是 change directory 的縮寫,這條指令能夠切換當(dāng)前工作目錄,有下面四種切換方式
 
  復(fù)制
  cd /路徑名 # 表示切換到指定的工作目錄
  cd ./   # 表示切換到當(dāng)前工作目錄(無任何切換)
  cd ..   # 表示切換到當(dāng)前工作目錄的上一層目錄
  cd ~    # 表示返回到當(dāng)前用戶目錄
   cd /路徑名 # 表示切換到指定的工作目錄cd ./ # 表示切換到當(dāng)前工作目錄(無任何切換)cd .. # 表示切換到當(dāng)前工作目錄的上一層目錄cd ~ # 表示返回到當(dāng)前用戶目錄
 
  下面我們來演示一下這四個(gè) cd 切換方式的操作
 
 
 
  可以看到,我們分別使用 cd /usr/local 切換到了指令目錄下;使用 cd ./ 沒有切換任何目錄(白浪費(fèi)了兩秒鐘);使用 cd .. 切換到了當(dāng)前工作目錄的上一級(jí);使用 cd ~ 切換到了當(dāng)前登錄用戶的默認(rèn)工作目錄。
 
  這里需要注意的就是 cd ~ ,如果你直接使用 cd ,切換效果和 cd ~ 一樣,也就是說 "cd ~ == cd "。
 
  pwd
  上面還有一條指令是 pwd ,這個(gè)指令是我們最常用的指令,它的使用頻率幾乎和 cd 一樣,因?yàn)橐粭l cd 指令往往后面跟著一條 pwd 指令,所以你可以看出 pwd 指令有多么重要了吧。
 
  pwd 是 Print Working Directory 的縮寫,它是打印出當(dāng)前所在目錄的指令。
 
  但是 pwd 不一定只用于顯示當(dāng)前工作路徑,它還可以用來顯示指定工作目錄下的文件路徑
 
 
 
  不過這個(gè)指令好像沒什么用,因?yàn)槲覀円呀?jīng)知道工作目錄下的路徑了,還打印出來做什么呢?
 
  mkdir
  mkdir 用于創(chuàng)建新目錄,它是 make directory 的縮寫,一般來說,它后面會(huì)跟著兩個(gè)參數(shù)。
 
  -m :設(shè)置文件的權(quán)限,直接設(shè)置,不用考慮默認(rèn)文件的創(chuàng)建權(quán)限
  -p :遞歸創(chuàng)建目錄
  下面是使用 mkdir 創(chuàng)建文件目錄的操作
 
 
 
  如上圖所示,我們?cè)?/tmp 文件目錄下創(chuàng)建了一個(gè)叫做 test1 的空目錄,并打印出了當(dāng)前的工作目錄。
 
  如果你想要?jiǎng)?chuàng)建不想讓其他用戶訪問的目錄,你可以使用下面的命令
 
  復(fù)制
  mkdir -m 711 test2
 
 
  上圖中的 ls -ld 列出文件目錄的詳細(xì)信息,可以看到,詳細(xì)信息最前面的是文件的權(quán)限。
 
  一個(gè)一個(gè)創(chuàng)建目錄太麻煩了,現(xiàn)在我們想要快速創(chuàng)建這些目錄,比如我們想要?jiǎng)?chuàng)建 /test1/test2/test3/test4 這種目錄格式,我們使用了下面代碼
 
 
 
  Linux 會(huì)提出我們不能使用這種創(chuàng)建方式。
 
  此時(shí)就需要 -p 這個(gè)參數(shù)的出現(xiàn)了,這個(gè)參數(shù)能夠允許我們遞歸創(chuàng)建目錄,如下所示
 
 
 
  只不過使用 -p 這種方式并不推薦使用,因?yàn)楹苋菀状蝈e(cuò)字。。。
 
  rmdir
  rmdir 用于刪除空目錄,它的使用和 mkdir 非常類似,mkdir -p 用于遞歸創(chuàng)建目錄,同樣的,rmdir -p 也能夠遞歸刪除目錄。如下圖所示
 
 
 
  這里需要注意,rmdir 只是刪除空目錄,這也意味著目錄里面有內(nèi)容的話是無法刪除的,那該如何刪除呢?可以直接使用 rm -r 來進(jìn)行刪除。
 
  mv
  使用 mv 能夠修改目錄的名稱,比如我們創(chuàng)建了一個(gè)叫做 test 的目錄,后來我們覺得這個(gè)目錄無法體現(xiàn)出來它的所有者,我們想要改一下它的名字,這時(shí)候就可以使用 mv 指令就可以修改。
 
 
 
  在了解完基本的目錄操作之后,下面來想一個(gè)問題,為什么我們能夠在各種目錄下執(zhí)行 ls 指令都能夠顯示內(nèi)容?按理說 ls 不應(yīng)該只是在其存放路徑下才能夠使用嗎?
 
  首先大家需要先了解一個(gè) PATH 的概念,PATH 是環(huán)境變量,當(dāng)我們?cè)趫?zhí)行一條指令的時(shí)候,首先系統(tǒng)會(huì)按照 PATH 的設(shè)置去每個(gè) PATH 下搜尋文件名為 ls 的可執(zhí)行文件,如果有多個(gè)可執(zhí)行文件,那么優(yōu)先搜索到的先被執(zhí)行。

(編輯:武林網(wǎng))

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 资源县| 嘉禾县| 汤阴县| 北川| 丁青县| 葫芦岛市| 和林格尔县| 祁阳县| 宝清县| 永泰县| 博兴县| 罗平县| 沂源县| 密云县| 邢台市| 潮安县| 泸溪县| 浦东新区| 土默特右旗| 山丹县| 安吉县| 泸定县| 东乡族自治县| 米易县| 辛集市| 北安市| 星子县| 桑植县| 隆安县| 昌图县| 库伦旗| 阿拉尔市| SHOW| 顺平县| 合山市| 漳州市| 都安| 四子王旗| 凤冈县| 鲁山县| 武陟县|