国产精品chinese,色综合天天综合精品网国产在线,成午夜免费视频在线观看,清纯女学生被强行糟蹋小说

    <td id="ojr13"><tr id="ojr13"><label id="ojr13"></label></tr></td>
        • <source id="ojr13"></source>
            <td id="ojr13"><ins id="ojr13"><label id="ojr13"></label></ins></td>

            Article / 文章中心

            Linux深入探索12-文件系統(tǒng)

            發(fā)布時間:2022-01-26 點擊數(shù):1054

            Linux深入探索12-文件體系

            Linuxyouhuiquan.jpg

            本文目錄結(jié)構(gòu)預(yù)覽:

            • 一、簡介
              1、簡略意義上的界說
              2、Unix 中的界說
            • 二、文件體系
              1、主目錄:根目錄
              2、掛載文件體系
              3、檢查文件體系
              4、常見的文件體系
              5、掛載點:/mnt 與 /media
            • 三、文件類型
              1、一般文件
              2、目錄
              3、偽文件
            • 四、根目錄介紹
              1、常見根目錄的目錄結(jié)構(gòu)
              2、尖端目錄介紹
              3、程序相關(guān)目錄:bin、lib、sbin
            • 五、特別文件
              1、檢查特別文件
              2、硬件
              3、終端
            • 六、proc 文件
            • 七、參閱

            一、簡介

            Unix 文件體系,即操作體系中經(jīng)過存儲及安排體系中的全部數(shù)據(jù)而為用戶和程序供給服務(wù)的那一部分。

            1、簡略意義上的界說

            從簡略意義上講,文件便是一個有稱號的數(shù)據(jù)調(diào)集。大多數(shù)時分,文件儲存在數(shù)字介質(zhì)上:硬盤、CD、DVD、軟盤、閃存存儲卡等。

            2、Unix 中的界說

            在 Unix 中,文件的界說更為廣泛。文件是任何源,有一個稱號,能夠能夠從中讀取數(shù)據(jù);或許是任何方針,有一個稱號,能夠向其間寫入數(shù)據(jù)。例如,鍵盤(一種輸入源)、顯現(xiàn)器(一種輸出方針)都能夠作為文件被拜訪。另外還有不存在所謂的物理實體的文件,它們也接收輸入或許產(chǎn)生輸出,從而供給詳細(xì)的服務(wù)。

            以這種方法界說文件擁有重大意義:它意味著 Unix 程序能夠運用簡略的過程從任意的輸入源讀取數(shù)據(jù),或許向任意的輸出方針寫入數(shù)據(jù)。

            二、文件體系

            文件體系的任務(wù)便是存儲和安排數(shù)據(jù),并向用戶和程序供給數(shù)據(jù)的拜訪功用。

            Unix 和 Linux 體系中包含許多的文件,典型的 Unix 包含大約 10000 至 20000 個文件,許多的文件安排成了一顆十分大的樹。

            雖然文件數(shù)量和文件類型許多,但大部分 Linux 體系采用的都是樹形結(jié)構(gòu)文件體系,而且也都大部分采用了一個 Linux 目錄結(jié)構(gòu)規(guī)范——文件體系結(jié)構(gòu)規(guī)范(Filesystem Hierarchy Standard, FHS)。

            1、主目錄:根目錄

            在樹形結(jié)構(gòu)中,咱們稱樹的主節(jié)點為。因而,咱們將 Linux 文件體系中的主目錄稱為根目錄,用“/”來表明。

            以超級用戶的身份運轉(zhuǎn)以下指令,能夠估計體系中文件和目錄的總數(shù)量,如下:

            [nosee@instance-4 ~]$ sudo ls -R / | wc -l 158732

            而根據(jù) GUI 的體系,文件數(shù)量則更多:

            nosee@nosee-virtual-machine:~/Desktop$ sudo ls -R / | wc -l 855069

            注:在文件名的最初,“/”代表根目錄。在文件名的中心,“/”充任定界符。

            2、掛載文件體系

            在大多數(shù)情況下,并不是一切的文件都存儲在同一個物理設(shè)備上。更精確地說,文件存儲在不同類型的設(shè)備上,包含多個磁盤分區(qū)(每個磁盤分區(qū)被當(dāng)作一個獨自的設(shè)備)。

            每個存儲設(shè)備都有自己的本地文件體系,其目錄和子目錄近按照規(guī)范 Unix 方法安排成樹??墒?,在拜訪本地文件體系時,它的樹有必要附加到主樹上,這能夠經(jīng)過將小型文件體系的根目錄連接到主文件體系中的特定目錄上來實現(xiàn)。經(jīng)過這種方法來連接小型文件體系時,咱們稱為掛載(mount)該文件體系,小型文件體系在主樹中附加到的目錄則稱為掛載點(mount point)。最終,當(dāng)斷開文件體系時,稱之為卸載(umount)文件體系。

            作為發(fā)動過程的一部分,Unix 每次發(fā)動時,都會主動掛載一些本地文件體系。因而,當(dāng)體系發(fā)動結(jié)束以后,主文件體系現(xiàn)已添加了幾個其它文件體系。

            當(dāng)咱們需要手動掛載一個設(shè)備時,運用的是mount程序(mount a filesystem),手動卸載則需要運用umount程序(unmount file systems)。

            例:掛載設(shè)備/dev/fd0中的軟盤驅(qū)動器文件體系,并將其附加在主樹中的/media/floppy方位上。

            mount /dev/fdo /media/floppy

            掛載成功后,用戶就能夠經(jīng)過/media/floppy目錄拜訪軟盤上的文件。

            3、檢查文件體系

            如你所知,Linux 支持十分多的文件體系,例如 ext4、ext3、ext2、sysfs、securityfs、FAT16、FAT32、NTFS 等等,當(dāng)時被運用最多的文件體系是 ext4(Fourth extended filesystem,第四代擴展文件體系)。

            1)mount

            mount 被用來在類 Unix 體系中掛載本地或長途的文件體系。

            運用指令mount自身能夠顯現(xiàn)當(dāng)時掛載到體系上的一切文件體系列表,如下。

            [nosee@instance-4 ~]$ mount | head sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) udev on /dev type devtmpfs (rw,nosuid,relatime,size=2011124k,nr_inodes=502781,mode=755) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=404084k,mode=755) /dev/sda1 on / type ext4 (rw,relatime,discard,errors=remount-ro) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)

            2)df - report file system disk space usage

            運用指令df -T能夠檢查現(xiàn)已掛載的分區(qū)和文件體系類型,如下。

            [nosee@instance-4 ~]$ df -hT Filesystem     Type      Size  Used Avail Use% Mounted on udev           devtmpfs  2.0G     0  2.0G   0% /dev tmpfs          tmpfs     395M   40M  355M  11% /run /dev/sda1      ext4      9.7G  2.2G  7.0G  25% / tmpfs          tmpfs     2.0G     0  2.0G   0% /dev/shm tmpfs          tmpfs     5.0M     0  5.0M   0% /run/lock tmpfs          tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup /dev/sda15     vfat      124M  5.7M  119M   5% /boot/efi tmpfs          tmpfs     395M     0  395M   0% /run/user/1001

            注:

            df 指令被用來報告文件體系的磁盤空間運用情況。

            運用-h(human-readable)選項,將顯現(xiàn)人類易讀的大小單位。

            3)findmnt - find a filesystem

            不帶參數(shù)的 findmnt 指令能夠列出一切已掛載的文件體系,如下。(和不帶參數(shù)的mount輸出結(jié)果類似,但更直觀)

            [nosee@instance-4 ~]$ findmnt TARGET                                SOURCE      FSTYPE      OPTIONS /                                     /dev/sda1   ext4        rw,relatime,discard,errors=remount-ro ├─/sys                                sysfs       sysfs       rw,nosuid,nodev,noexec,relatime │ ├─/sys/kernel/security              securityfs  securityfs  rw,nosuid,nodev,noexec,relatime │ ├─/sys/fs/cgroup                    tmpfs       tmpfs       ro,nosuid,nodev,noexec,mode=755 │ │ ├─/sys/fs/cgroup/unified          cgroup2     cgroup2     rw,nosuid,nodev,noexec,relatime,nsdelegate │ │ ├─/sys/fs/cgroup/systemd          cgroup      cgroup      rw,nosuid,nodev,noexec,relatime,xattr,name=systemd │ │ ├─/sys/fs/cgroup/blkio            cgroup      cgroup      rw,nosuid,nodev,noexec,relatime,blkio │ │ ├─/sys/fs/cgroup/pids             cgroup      cgroup      rw,nosuid,nodev,noexec,relatime,pids │ │ ├─/sys/fs/cgroup/net_cls,net_prio cgroup      cgroup      rw,nosuid,nodev,noexec,relatime,net_cls,net_prio │ │ ├─/sys/fs/cgroup/cpuset           cgroup      cgroup      rw,nosuid,nodev,noexec,relatime,cpuset │ │ ├─/sys/fs/cgroup/rdma             cgroup      cgroup      rw,nosuid,nodev,noexec,relatime,rdma │ │ ├─/sys/fs/cgroup/cpu,cpuacct      cgroup      cgroup      rw,nosuid,nodev,noexec,relatime,cpu,cpuacct │ │ ├─/sys/fs/cgroup/memory           cgroup      cgroup      rw,nosuid,nodev,noexec,relatime,memory │ │ ├─/sys/fs/cgroup/perf_event       cgroup      cgroup      rw,nosuid,nodev,noexec,relatime,perf_event │ │ ├─/sys/fs/cgroup/devices          cgroup      cgroup      rw,nosuid,nodev,noexec,relatime,devices │ │ └─/sys/fs/cgroup/freezer          cgroup      cgroup      rw,nosuid,nodev,noexec,relatime,freezer │ ├─/sys/fs/pstore                    pstore      pstore      rw,nosuid,nodev,noexec,relatime │ ├─/sys/firmware/efi/efivars         efivarfs    efivarfs    rw,nosuid,nodev,noexec,relatime │ ├─/sys/fs/bpf                       bpf         bpf         rw,nosuid,nodev,noexec,relatime,mode=700 │ └─/sys/kernel/debug                 debugfs     debugfs     rw,relatime │   └─/sys/kernel/debug/tracing       tracefs     tracefs     rw,relatime ├─/proc                               proc        proc        rw,nosuid,nodev,noexec,relatime │ └─/proc/sys/fs/binfmt_misc          systemd-1   autofs      rw,relatime,fd=35,pgrp=1,timeout=0,minproto=5,maxproto... │   └─/proc/sys/fs/binfmt_misc        binfmt_misc binfmt_misc rw,relatime ├─/dev                                udev        devtmpfs    rw,nosuid,relatime,size=2011124k,nr_inodes=502781,mode=755 │ ├─/dev/pts                          devpts      devpts      rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 │ ├─/dev/shm                          tmpfs       tmpfs       rw,nosuid,nodev │ ├─/dev/mqueue                       mqueue      mqueue      rw,relatime │ └─/dev/hugepages                    hugetlbfs   hugetlbfs   rw,relatime,pagesize=2M ├─/run                                tmpfs       tmpfs       rw,nosuid,noexec,relatime,size=404084k,mode=755 │ ├─/run/lock                         tmpfs       tmpfs       rw,nosuid,nodev,noexec,relatime,size=5120k │ └─/run/user/1001                    tmpfs       tmpfs       rw,nosuid,nodev,relatime,size=404080k,mode=700,uid=1001... └─/boot/efi                           /dev/sda15  vfat        rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharse...

            findmnt 程序展示出了方針掛載點(TARGET)、源設(shè)備(SOURCE)、文件體系類型(FSTYPE)以及相關(guān)的掛載選項(OPTIONS)。

            從上面的3個比如中,都能夠看出該案例體系的主文件體系是 ext4。而其它文件體系,都是掛載到主文件體系的某個特定目錄下的。

            4、常見的文件體系

            文件體系 說明
            根據(jù)磁盤的文件體系 ——
            ext3 第3代擴展文件體系(Linux)
            ext4 第4代擴展文件體系(Linux)
            FAT32 32位文件分配表文件體系(Microsoft Windows)
            HFS+ 層次式文件體系(Macintosh)
            ISO 9660 ISO 9660 規(guī)范文件體系(CD-ROM)
            NTFS NT 文件體系(Microsoft Windows)
            UDF 通用磁盤格式文件體系(可重寫CD和DVD)
            UFS2 Unix 文件體系(BSD、Solaris)
            網(wǎng)絡(luò)文件體系 ——
            NFS 網(wǎng)絡(luò)文件體系(廣泛運用)
            SMB 服務(wù)器信息塊(Windows網(wǎng)絡(luò))
            特別用處文件體系 ——
            devpts 偽終端的設(shè)備界面(PTY)
            procfs proc 文件體系
            sysfs 體系數(shù)據(jù)文件體系(設(shè)備與驅(qū)動器)
            tmpfs 暫時存儲文件體系

            根據(jù)磁盤的文件體系在硬盤、CD、DVD或其它設(shè)備上存儲數(shù)據(jù);網(wǎng)絡(luò)文件體系支持經(jīng)過網(wǎng)絡(luò)同享資源;特別用處文件體系供給對體系資源的拜訪(如偽文件)。

            5、掛載點:/mnt 與 /media

            廣義地講,存儲設(shè)備有兩種類型。固定介質(zhì)永久附屬于核算機中,例如硬盤、驅(qū)動器。可移動介質(zhì)在體系運轉(zhuǎn)時能夠改動,例如 CD、DVD、軟盤、閃存等。

            該區(qū)別十分重要,因為文件體系存在消失的可能性,Unix 體系有必要保證恰當(dāng)?shù)剞k理該文件體系。例如,在答應(yīng)彈出CD之前,Unix 有必要保證一切的輸出操作都現(xiàn)已完成。

            根據(jù)這一原因,文件體系層次結(jié)構(gòu)需求運用特定的目錄掛載文件體系。關(guān)于沒有掛載在其它方位的固定介質(zhì)(如額定的硬盤)來說,指定目錄是 /mnt;關(guān)于可移動介質(zhì)來說,目錄是 /media。

            三、文件類型

            Unix 文件有許多不同的類型,可是它們都能夠分成 3 類:一般文件、目錄和偽文件。

            image

            1、一般文件

            一般文件(ordinary)或慣例文件(regular)是大多數(shù)人在運用的單詞“文件”時所指的文件。一般文件包含數(shù)據(jù),坐落某種類型的存儲設(shè)備上。

            廣義的講,一般文件有兩種類型:文件文件和二進制文件。

            文本文件用于存儲文本數(shù)據(jù):純文本、shell 腳本、源程序、配置文件等。

            二進制文件包含非文本數(shù)據(jù),常見的二進制文件:執(zhí)行程序、目標(biāo)文件、圖畫、音樂文件、視頻文件、字處理文檔、電子表格、數(shù)據(jù)庫等。

            2、目錄

            和一般程序類似,目錄文件也駐留在某種類型的存儲設(shè)備上??墒悄夸洸患拇鎽T例數(shù)據(jù),而是用來安排、拜訪其它文件。從概念上講,目錄“包含”其它文件。

            咱們運用目錄將文件安排成一個類似于樹的層次體系。詳細(xì)安排時,將文件組合成組,再將每組文件存儲在各自的目錄中。因為目錄自身便是文件,所以目錄還能夠包含其它目錄,從而形成層次結(jié)構(gòu)。

            實踐上,目錄并不寄存實踐文件,它只是包含文件 Unix 定位文件所需的信息。

            3、偽文件

            與一般文件和目錄不同,偽文件并不用來存儲數(shù)據(jù),所以這些文件自身不占用任何空間。

            偽文件的意圖是供給一種服務(wù),這種服采納和慣例文件相同的拜訪方法進行拜訪。在大多數(shù)情況下,偽文件用來拜訪內(nèi)核供給服務(wù)的。

            最重要的偽文件類型是特別文件,有時也稱為設(shè)備文件。特別文件是物理設(shè)備的內(nèi)部表明,例如鍵盤、顯現(xiàn)器、打印機、磁盤驅(qū)動器都能夠當(dāng)作特別文件來拜訪。(實踐上,包含核算機或許網(wǎng)絡(luò)中的每個設(shè)備)

            命名管道是管道功用的一個擴展,它能夠?qū)⒁粋€程序的輸出連接到另一個程序的輸入上。

            proc 文件答應(yīng)拜訪內(nèi)核中的信息。少量幾種特定情況下,甚至還能夠運用 proc 文件修改內(nèi)核中的數(shù)據(jù)。

            四、根目錄介紹

            理解核算機文件體系最方便的方法便是檢查根目錄,并檢查一切子目錄。

            1、常見根目錄的目錄結(jié)構(gòu)

            目錄 內(nèi)容
            / 根目錄
            /bin 根本程序
            /boot 發(fā)動體系時所需的文件
            /dev 設(shè)備文件 (后邊會詳細(xì)介紹)
            /etc 配置文件
            /home 用戶的 home 目錄
            /lib 根本同享庫,內(nèi)核模塊
            /lost+found 由 fsck 恢復(fù)的受損文件
            /media 可移動介質(zhì)的掛載點(如USB驅(qū)動器、CD-ROMs等)
            /mnt 不能掛載在其他方位上的固定介質(zhì)的掛載點(如額定的硬盤)
            /opt 用來安裝“可選的”第三方應(yīng)用軟件(主要是商業(yè)軟件產(chǎn)品)
            /proc proc文件 (后邊會詳細(xì)介紹)
            /root 超級用戶的 home 目錄
            /sbin 由超級用戶運轉(zhuǎn)的根本體系辦理程序
            /srv 本地體系所供給服務(wù)的數(shù)據(jù)
            /tmp 暫時文件
            /usr 靜態(tài)數(shù)據(jù)運用的輔佐文件體系
            /var 可變數(shù)據(jù)運用的輔佐文件體系

            一般咱們把根目錄下的一切子目錄稱為尖端目錄。運用ls -l /檢查尖端目錄,如下:

            [nosee@instance-4 ~]$ ls -l / total 60 lrwxrwxrwx   1 root root     7 Dec  9 20:59 bin -> usr/bin drwxr-xr-x   4 root root  4096 Dec  9 21:03 boot drwxr-xr-x  14 root root  2900 Jan 14 00:06 dev drwxr-xr-x  75 root root  4096 Jan 19 16:18 etc drwxr-xr-x   5 root root  4096 Jan  5 02:40 home lrwxrwxrwx   1 root root     7 Dec  9 20:59 lib -> usr/lib lrwxrwxrwx   1 root root     9 Dec  9 20:59 lib32 -> usr/lib32 lrwxrwxrwx   1 root root     9 Dec  9 20:59 lib64 -> usr/lib64 lrwxrwxrwx   1 root root    10 Dec  9 20:59 libx32 -> usr/libx32 drwx------   2 root root 16384 Dec  9 20:59 lost+found drwxr-xr-x   2 root root  4096 Dec  9 20:59 media drwxr-xr-x   2 root root  4096 Dec  9 20:59 mnt drwxr-xr-x   2 root root  4096 Dec  9 20:59 opt dr-xr-xr-x 130 root root     0 Jan 14 00:05 proc drwx------   9 root root  4096 Jan 14 04:05 root drwxr-xr-x  20 root root   640 Jan 19 12:47 run lrwxrwxrwx   1 root root     8 Dec  9 20:59 sbin -> usr/sbin drwxr-xr-x   2 root root  4096 Dec  9 20:59 srv dr-xr-xr-x  13 root root     0 Jan 14 04:59 sys drwxrwxrwt   9 root root  4096 Jan 19 16:09 tmp drwxr-xr-x  13 root root  4096 Dec  9 20:59 usr drwxr-xr-x  12 root root  4096 Jan  2 01:00 var

            2、尖端目錄介紹

            1)/bin

            這個目錄寄存最重要的體系,即體系辦理員在單用戶形式下辦理體系所需的根本東西。這些東西都是可執(zhí)行文件,因而該目錄命名為 bin (binary 二進制),即寄存二進制文件的方位。該目錄的一些程序也能夠由慣例用戶運用。

            檢查/bin目錄下的前十個程序,如:

            [nosee@instance-4 ~]$ ls /bin | head [ aa-enabled aa-exec ab addpart anthoscli apropos apt apt-cache apt-cdrom

            2)/boot

            這是體系寄存引導(dǎo)過程中所需全部文件的方位。內(nèi)核有必要坐落這個目錄或許根目錄中。

            如下能夠看出,文件initrd.img-4.19.0-18-cloud-amd64便是該體系的內(nèi)核文件。假如升級過體系,則會在該目錄中發(fā)現(xiàn)不止一個版別的內(nèi)核。

            [nosee@instance-4 ~]$ ls -l /boot/ total 21236 -rw-r--r-- 1 root root  2925615 Sep 29 18:53 System.map-4.19.0-18-cloud-amd64 -rw-r--r-- 1 root root    91019 Sep 29 18:53 config-4.19.0-18-cloud-amd64 drwxr-xr-x 3 root root    16384 Jan  1  1970 efi drwxr-xr-x 6 root root     4096 Dec  9 21:03 grub -rw-r--r-- 1 root root 14037410 Dec  9 21:03 initrd.img-4.19.0-18-cloud-amd64 -rw-r--r-- 1 root root  4659968 Sep 29 18:53 vmlinuz-4.19.0-18-cloud-amd64

            3)/dev

            一切特別文件都坐落這個目錄中,包含物理設(shè)備和偽設(shè)備。(后邊還會詳細(xì)介紹)

            4)/etc

            這個目錄包含的是配置文件。配置文件是某程序發(fā)動時處理的文本文件,其間包含有影響程序操作的指令或信息。

            5)/home

            當(dāng)創(chuàng)立用戶時,辦理員會為用戶標(biāo)識賦予一個 home 目錄,命名如:/home/用戶標(biāo)識

            6)/lib

            當(dāng)程序運轉(zhuǎn)時,常常要調(diào)用,即現(xiàn)已存在的數(shù)據(jù)和代碼模塊。Unix 供給許多的庫,以答應(yīng)程序拜訪操作體系供給的服務(wù)。這個目錄包含運轉(zhuǎn)/bin和/sbin目錄中的程序所需的根本庫和內(nèi)核模塊。

            7)/lost+found

            假如 Unix 沒有正常地關(guān)機,那么那些僅完成部分寫入的文件將受到損壞。Unix 下次發(fā)動時,一個叫 fsck(filesystem check 文件體系檢查)的程序?qū)⒅鲃舆\轉(zhuǎn),檢查文件體系并修正問題。/lost+found 目錄就用于保存由 fsck 恢復(fù)的受損文件。

            8)/sbin

            稱號 /sbin 代表“system binaries 體系二進制文件”,這個目錄中寄存用于體系辦理的程序,一般這個目錄中的程序有必要由超級用戶運轉(zhuǎn)。

            9)/srv

            儲存為本地體系所供給服務(wù)的數(shù)據(jù)(service,因而命名為/srv)。在這里存儲數(shù)據(jù)的典型服務(wù)包含 cgi、Web、ftp、cvs、rsync等。

            10)/tmp

            這個目錄用于暫時存儲。任何人都能夠在這個目錄存儲文件,可是最終 /tmp 的內(nèi)容將主動移除。

            11)/usr

            這個目錄是輔佐文件體系的根,包含有輔佐文件體系的重要子目錄。(集成到主文件體系中來的獨自文件體系的掛載點)

            /usr 的意圖是用來寄存靜態(tài)數(shù)據(jù),即沒有辦理員干與不會改動的數(shù)據(jù)。根據(jù)其特性,靜態(tài)數(shù)據(jù)不會隨時刻改動。這就答應(yīng) /usr 駐留于自己的設(shè)備,該設(shè)備甚至有可能是諸如 CD-ROM 之類的只讀設(shè)備。(后邊還會詳細(xì)介紹)

            12)/var

            這個目錄的稱號意味著“variable 可變”。像 /usr 一樣,這個目錄是輔佐文件體系的根,包含有輔佐文件體系的重要子目錄。區(qū)別是,/var 寄存的是可變數(shù)據(jù),如web網(wǎng)站文件、日志文件、打印文件、電子郵件消息等。像 /usr 一樣,/var 文件體系一般駐留于自己的設(shè)備。

            這其間比較重要的一個目錄便是/var/log,里面包含各種體系活動的記載,還有各種程序的日志文件。

            3、程序相關(guān)目錄:bin、lib、sbin

            目錄 內(nèi)容
            通用程序 ——
            /bin 根本程序
            /usr/bin 非根本程序
            /usr/local/bin 本地安裝程序
            體系辦理程序 ——
            /sbin 由超級用戶運轉(zhuǎn)的根本體系辦理程序
            /usr/sbin 由超級用戶運轉(zhuǎn)的非根本體系辦理程序
            /usr/local/sbin 本地安裝的體系程序
            第三方應(yīng)用程序 ——
            /opt/xxx 應(yīng)用程序xxx的靜態(tài)數(shù)據(jù),包含程序
            /var/opt/xxx 應(yīng)用程序xxx的可變數(shù)據(jù)

            檢查/usr目錄,如下:

            [nosee@instance-4 ~]$ ls -l /usr/ total 68 drwxr-xr-x  2 root root 20480 Jan 14 03:19 bin drwxr-xr-x  2 root root  4096 Oct  3 09:00 games drwxr-xr-x  3 root root  4096 Jan  1 08:23 include drwxr-xr-x 55 root root  4096 Jan  5 02:31 lib drwxr-xr-x  2 root root  4096 Dec  9 20:59 lib32 drwxr-xr-x  2 root root  4096 Dec  9 20:59 lib64 drwxr-xr-x  2 root root  4096 Dec  9 20:59 libx32 drwxr-xr-x 10 root root  4096 Dec  9 20:59 local drwxr-xr-x  2 root root 12288 Jan  6 06:07 sbin drwxr-xr-x 87 root root  4096 Jan  5 02:31 share drwxr-xr-x  2 root root  4096 Oct  3 09:00 src

            能夠看到/usr目錄下的子目錄有幾個是與根目錄/下的尖端目錄名字相同。(如/usr/bin與/bin、/usr/lib與/lib等)

            按照曾經(jīng)的規(guī)則/bin是寄存根本程序的目錄,/usr/bin是寄存非根本程序(大多數(shù)用戶程序)的目錄。/lib寄存根本同享庫,而/usr/lib寄存非根本同享庫。/sbin寄存由超級用戶運轉(zhuǎn)的根本體系辦理程序,/usr/sbin

            寄存由超級用戶運轉(zhuǎn)的非根本體系辦理程序。

            其實把以上這些程序分別寄存在兩個類似的目錄中,是由歷史原因造成的?,F(xiàn)在,存儲設(shè)備現(xiàn)已十分快速,而且容量也更大了。所以現(xiàn)在許多 Unix 體系現(xiàn)已把這些同類的程序都存到了同一個目錄中,可是曾經(jīng)的目錄結(jié)構(gòu)還是保留下來。如下可知:

            [nosee@instance-4 ~]$ ls -la /bin /lib /sbin lrwxrwxrwx 1 root root 7 Dec  9 20:59 /bin -> usr/bin lrwxrwxrwx 1 root root 7 Dec  9 20:59 /lib -> usr/lib lrwxrwxrwx 1 root root 8 Dec  9 20:59 /sbin -> usr/sbin

            五、特別文件

            特別文件是表明物理設(shè)備的偽文件,Unix 將一切的特別文件寄存在/dev(device 設(shè)備)目錄中。

            1、檢查特別文件

            運用指令ls /dev/能夠顯現(xiàn)體系上特別文件的稱號。

            [nosee@instance-4 ~]$ ls /dev/ autofs            mqueue              tty0   tty30  tty52    vcs3 block             net                 tty1   tty31  tty53    vcs4 bsg               network_latency     tty10  tty32  tty54    vcs5 btrfs-control     network_throughput  tty11  tty33  tty55    vcs6 char              null                tty12  tty34  tty56    vcsa console           psaux               tty13  tty35  tty57    vcsa1 core              ptmx                tty14  tty36  tty58    vcsa2 cpu_dma_latency   pts                 tty15  tty37  tty59    vcsa3 cuse              random              tty16  tty38  tty6     vcsa4 disk              rtc                 tty17  tty39  tty60    vcsa5 fd                rtc0                tty18  tty4   tty61    vcsa6 full              sda                 tty19  tty40  tty62    vcsu fuse              sda1                tty2   tty41  tty63    vcsu1 hpet              sda14               tty20  tty42  tty7     vcsu2 hugepages         sda15               tty21  tty43  tty8     vcsu3 hwrng             sg0                 tty22  tty44  tty9     vcsu4 initctl           shm                 tty23  tty45  ttyS0    vcsu5 input             snapshot            tty24  tty46  ttyS1    vcsu6 kmsg              stderr              tty25  tty47  ttyS2    vfio log               stdin               tty26  tty48  ttyS3    vga_arbiter loop-control      stdout              tty27  tty49  urandom  vhost-net mapper            tpm0                tty28  tty5   vcs      vhost-vsock mem               tpmrm0              tty29  tty50  vcs1     zero memory_bandwidth  tty                 tty3   tty51  vcs2

            其間,大多數(shù)稱號是平時極少量需要運用到的。因為大部分特別文件是由體系程序運用的。

            下表可將常見的特別文件分為3組:硬件、終端和偽設(shè)備。

            特別文件 說明
            -----硬件----- 一切連接到核算機上的設(shè)備
            /dev/fd0 軟盤
            /dev/hda 硬盤
            /dev/hda1 硬盤:第1分區(qū)
            /dev/sda SCSI 硬盤
            /dev/sda1 SCSI 硬盤:第1分區(qū)
            /dev/sda1 USB 閃存卡(被視為可移除的SCSI 硬盤)
            /dev/lp0 打印機
            /dev/usb/lp0 USB 打印機
            -----終端----- 能夠把終端分為實踐終端(獨立的物理設(shè)備)和偽終端(終端仿真程序)
            /dev/tty 當(dāng)時終端
            /dev/tty1 控制臺/虛擬控制臺
            /dev/pts/0 偽終端
            /dev/ttyp0 偽終端
            ----偽設(shè)備---- 一個充任輸入源或輸出方針的文件,但并不對應(yīng)實踐設(shè)備(實在的或仿真的)。
            /dev/null 放棄輸出,輸入不回來內(nèi)容(eof)
            /dev/zero 放棄輸出,輸入回來 null(0)
            /dev/random 隨機數(shù)生成器
            /dev/urandom 隨機數(shù)生成器

            2、硬件

            一切連接到核算機上的設(shè)備都經(jīng)過特別文件拜訪。

            如/dev/fd0表明榜首個軟盤驅(qū)動器,/dev/lp0表明榜首臺打印機。(后邊的數(shù)字指的是一個詳細(xì)的設(shè)備,核算機程序一般從0開端計數(shù))

            硬盤的處理有點不同。如,榜首塊 IDE 硬盤稱為/dev/hda,第二塊稱為/dev/hdb,等等。

            硬盤還被劃分為一個或多個分區(qū),分區(qū)能夠作為獨自的設(shè)備。榜首塊硬盤的榜首個分區(qū)稱為/dev/hda1,假如有第二個分區(qū)則為/dev/hda2。

            3、終端

            咱們能夠把終端分為實踐終端(獨立的物理設(shè)備)和偽終端(終端仿真程序)。

            運用指令tty能夠檢查當(dāng)時運用的終端稱號。(tty - print the file name of the terminal connected to standard input)

            1)實踐終端

            充任硬件設(shè)備的終端運用的是/dev/tty命名約定,如/dev/tty1。在桌面環(huán)境運用虛擬控制臺時,它也充任一個實踐終端。默許情況下,Linux 支持6個這樣的控制臺,分別由特別文件/dev/tty1至/dev/tty6表明。

            如:

            [nosee ~]$ tty /dev/tty3

            2)偽終端

            當(dāng)在窗口運用GUI運轉(zhuǎn)終端仿真程序時,因為沒有實踐終端,所以 Unix 創(chuàng)立所謂的偽終端(pseudo terminal,pty)來模仿終端。因為有兩種不同的體系來創(chuàng)立偽終端,因而能夠看到兩種類型的稱號。

            一種是/dev/ttyp0、/dev/ttyp1...這類稱號;另外一種則是/dev/pts0、/dev/pts1...

            如:

            [nosee@instance-4 ~]$ tty /dev/pts/2

            3)其它

            為了方便起見,特別文件/dev/tty表明當(dāng)時正在運用的終端。例如,你在運用虛擬控制臺#3,那么/dev/tty與/dev/pts/3相同。

            還能夠這樣玩:

            image

            六、proc 文件

            proc 文件是那些供給一種簡略的途徑來檢查多種類型的體系信息的偽文件, proc 文件直接從內(nèi)核獲取信息,而不是運用雜亂的程序搜出數(shù)據(jù)。(原始的 proc 文件體系是為了提取進程的信息而開發(fā)的)

            一切的 proc 文件都寄存在/proc目錄中。在這個目錄中,能夠發(fā)現(xiàn)體系中每個進程對應(yīng)一個子目錄。子目錄的稱號十分簡略,便是各種進程的進程ID。ps(process status 進程狀況)程序也是經(jīng)過讀取適宜的 proc 文件來收集所需數(shù)據(jù)的。

            檢查/proc目錄如下

            [nosee@instance-4 ~]$ ls -F /proc 1/     197/    25182/  383/  517/       devices      kpageflags    swaps 10/    198/    26/     384/  518/       diskstats    loadavg       sys/ 11/    2/      27/     395/  577/       driver/      locks         sysrq-trigger 12/    20/     28/     4/    579/       execdomains  meminfo       sysvipc/ 134/   209/    29/     400/  587/       filesystems  misc          thread-self@ 135/   21/     29053/  401/  6/         fs/          modules       timer_list 1363/  22/     2989/   403/  61/        interrupts   mounts@       tty/ 1364/  23/     3/      406/  8/         iomem        mtrr          uptime 1365/  230/    30/     413/  9/         ioports      net@          version 14/    23077/  31/     426/  acpi/      irq/         pagetypeinfo  vmallocinfo 15/    23078/  31414/  430/  buddyinfo  kallsyms     partitions    vmstat 16/    24/     32/     454/  bus/       kcore        sched_debug   zoneinfo 166/   243/    320/    458/  cgroups    key-users    schedstat 167/   25/     321/    459/  cmdline    keys         self@ 17/    25102/  32617/  49/   consoles   kmsg         slabinfo 19/    25175/  33/     50/   cpuinfo    kpagecgroup  softirqs 195/   25181/  381/    512/  crypto     kpagecount   stat

            現(xiàn)代的 Linux 體系運用該目錄來寄存許多其它偽文件,供給許多內(nèi)核數(shù)據(jù)拜訪功用。如文件/proc/cpuinfo顯現(xiàn)了有關(guān)處理器的信息。

            常見的 proc 文件:

            proc 相關(guān)信息
            /proc/xxx/ 進程#xxx
            /proc/cmdline 內(nèi)核選項
            /proc/cpuinfo 處理器
            /proc/decixes 設(shè)備
            /proc/diskstats 邏輯磁盤設(shè)備
            /proc/filesystems 文件體系
            /proc/meminfo 內(nèi)存辦理
            /proc/modules 內(nèi)核模塊
            /proc/mounts 已掛載設(shè)備
            /proc/partitions 磁盤分區(qū)
            /proc/scsi SCSI 和 RAID 設(shè)備
            /proc/swaps 交換分區(qū)
            /proc/uptime 內(nèi)核運轉(zhuǎn)時刻(秒)和內(nèi)核運轉(zhuǎn)時刻(秒)
            /proc/version 內(nèi)核版別、分發(fā)、gcc 編輯器(用來構(gòu)建內(nèi)核)

            一般,除非是體系辦理員,否則永久不需要檢查這些 proc 文件的。

            例1:檢查我的 Debian 云主機的內(nèi)核版別信息

            [nosee@instance-4 ~]$ cat /proc/version Linux version 4.19.0-18-cloud-amd64 (debian-kernel@lists.debian.org) (gcc version 8.3.0 (Debian 8.3.0-6)) #1 SMP Debian 4.19.208-1 (2021-09-29)

            例2:檢查我的虛擬 Ubuntu 主機的內(nèi)核版別信息

            nosee@nosee-virtual-machine:~/Desktop$ cat /proc/version Linux version 5.11.0-43-generic (buildd@lcy02-amd64-036) (gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #47~20.04.2-Ubuntu SMP Mon Dec 13 11:06:56 UTC 2021

            例3:檢查內(nèi)存辦理信息(榜首行的MemTotal:4040812 kB表明內(nèi)存總大小約為4G)

            [nosee@instance-4 ~]$ head /proc/meminfo MemTotal:        4040812 kB MemFree:         2863036 kB MemAvailable:    3232504 kB Buffers:          123204 kB Cached:           450864 kB SwapCached:            0 kB Active:           758276 kB Inactive:         252388 kB Active(anon):     443428 kB Inactive(anon):    30948 kB

            七、參閱

            書箱:《Unix & Linux 大學(xué)教程》第二十三章 (美)Harley Hahn 著 張杰良 譯