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

首頁 > 系統 > Linux > 正文

Linux文件系統 (Ubunt)

2024-06-28 13:24:27
字體:
來源:轉載
供稿:網友
linux文件系統 (Ubunt)

Linux

文件系統是linux的一個十分基礎的知識,同時也是學習linux的必備知識。

本文將站在一個較高的視圖來了解linux的文件系統,主要包括了linux磁盤分區和目錄、掛載基本原理、文件存儲結構、軟鏈接硬鏈接、和常見目錄的介紹。相信有了這些知識對于深入的學習linux會有一定的幫助。文章例子主要是基于Ubuntu發行版。

如有不對之處請大家多多指出。

1.Linux磁盤分區和目錄

Linux發行版本之間的差別很少,差別主要表現在系統管理的特色工具以及軟件包管理方式的不同。目錄結構基本上都是一樣的。Windows的文件結構是多個并列的樹狀結構,最頂部的是不同的磁盤(分區),如:C,D,E,F等。

Linux的文件結構是單個的樹狀結構.可以用tree進行展示。在Ubuntu下安裝tree(sudo apt-get install tree),并可通過命令來查看。

每次安裝系統的時候我們都會進行分區,Linux下磁盤分區和目錄的關系如下:

–任何一個分區都必須掛載到某個目錄上。

–目錄是邏輯上的區分。分區是物理上的區分。

–磁盤Linux分區都必須掛載到目錄樹中的某個具體的目錄上才能進行讀寫操作。

–根目錄是所有Linux的文件和目錄所在的地方,需要掛載上一個磁盤分區。

以下是我們可能存在的一種目錄和分區關系:

圖1:目錄和分區關系

Q:如何查看分區和目錄及使用情況?

–fdisk查看硬盤分區表

–df:查看分區使用情況

–du:查看文件占用空間情況

Q:為什么要分區,如何分區?

–可以把不同資料,分別放入不同分區中管理,降低風險。

–大硬盤搜索范圍大,效率低

–磁盤配合只能對分區做設定

–/home /var /usr/local經常是單獨分區,因為經常會操作,容易產生碎片

2.Mount掛載和NFS簡介

掛載的概念:當要使用某個設備時,例如要讀取硬盤中的一個格式化好的分區、光盤或軟件等設備時,必須先把這些設備對應到某個目錄上,而這個目錄就稱為“掛載點(mount point)”,這樣才可以讀取這些設備,而這些對應的動作就是“掛載”。將物理分區細節屏蔽掉。用戶只有統一的邏輯概念。所有的東西都是文件。Mount命令可以實現掛載:

mount [-fnrsvw] [-t vfstype] [-o options] device dir

Q:所有的磁盤分區都必須被掛載上才能使用,那么我們機器上的硬盤分區是如何被掛載的?

A:這主要是它利用了/etc/fstab文件。每次內核加載它知道從這里開始mount文件系統。每次系統啟動會根據該文件定義自動掛載。若沒有被自動掛載,分區將不能使用。如下是我的/etc/fstab的定義,主要是根據裝機的分區來的:

# <file system> <mount point><type><options><dump><pass>

PRoc/procprocdefaults00

#/dev/sda1被自動掛載到/

UUID=cb1934d0-4b72-4bbf-9fad-885d2a8eeeb1 /ext3relatime,errors=remount-ro 01

# /dev/sda5被自動掛載到分區/home

UUID=c40f813b-bb0e-463e-aa85-5092a17c9b94 /homeext3relatime02

#/dev/sda7被自動掛載到/work

UUID=0f918e7e-721a-41c6-af82-f92352a568af /workext3relatime02

#分區/dev/sda6被自動掛載到swap

UUID=2f8bdd05-6f8e-4a6b-b166-12bb52591a1f noneswapsw00

Q:移動硬盤如何掛載?如何掛載一個新的分區?

移動硬盤有驅動模塊會自動掛載,如果有個新硬盤,要先進行分區,并通過mount命令掛載到某個文件夾。如果要自動掛載則可以修改/etc/fstab文件.

NFS簡介:NFS相信在很多地方都有廣泛使用,是一個非常好的文件共享方式。我們公司所使用的上傳服務就是把文件上傳到某臺網絡服務器上,中間就是通過NFS實現。

使用NFS客戶端可以透明的地訪問服務器端的文件。NFS也是通過mount來實現,底層是通過NFS通信協議實現?;驹恚?/p>

圖2:NFS基本原理

Ubuntu下面Ubuntu下的例子

服務端:

$apt-get install nfs-kernel-server

vi /etc/exports添加nfs目錄: /personal/nfs_share

10.1.60.34(rw,sync,no_root_squash)

$sudo exportfs -r

$sudo /etc/init.d/portmap start

$sudo /etc/init.d/nfs-kernel-server start

客戶端:

$sudo apt-get install nfs-common

$sudo mount 10.19.34.76:/personal/nfs_share ~/nfsshare例子:

3.文件類型

Linux下面的文件類型主要有:

a)普通文件:C語言元代碼、SHELL腳本、二進制的可執行文件等。分為純文本和二進制。

b)目錄文件:目錄,存儲文件的唯一地方。

c)鏈接文件:指向同一個文件或目錄的的文件。

d)特殊文件:與系統外設相關的,通常在/dev下面。分為塊設備和字符設備。

可以通過ls –l, file, stat幾個命令來查看文件的類型等相關信息。

4.文件存儲結構

Linux正統的文件系統(如ext2、ext3)一個文件由目錄項、inode和數據塊組成。

目錄項:包括文件名和inode節點號。

Inode:又稱文件索引節點,是文件基本信息的存放地和數據塊指針存放地。

數據塊:文件的具體內容存放地。

Linux正統的文件系統(如ext2、3等)將硬盤分區時會劃分出目錄塊、inode Table區塊和data block數據區域。一個文件由一個目錄項、inode和數據區域塊組成。Inode包含文件的屬性(如讀寫屬性、owner等,以及指向數據塊的指針),數據區域塊則是文件內容。當查看某個文件時,會先從inode table中查出文件屬性及數據存放點,再從數據塊中讀取數據。

站在2w英尺視圖,文件存儲結構大概如下:

圖3:文件存儲結構2w英尺視圖

其中目錄項的結構如下(每個文件的目錄項存儲在改文件所屬目錄的文件內容里):

圖4:目錄項結構

其中文件的inode結構如下(inode里所包含的文件信息可以通過stat filename查看得到):

圖5:inode結構

以上只反映大體的結構,linux文件系統本身在不斷發展。但是以上概念基本是不變的。且如ext2、ext3、ext4文件系統也存在很大差別,如果要了解可以查看專門的文件系統介紹。

5.軟連接、硬鏈接

軟鏈接和硬鏈接是我們常見的兩種概念:

硬連接:是給文件一個副本,同時建立兩者之間的連接關系。修改其中一個,與其連接的文件同時被修改。如果刪除其中[color=red]任意一個[/color]其余的文件將不受影響。

軟連接:也叫符號連接,他只是對源文件在新的位置建立一個“快捷(借用一下wondows常用詞)”,所以,當源文件刪除時,符號連接的文件將成為無源之水->僅僅剩下個文件名了,當然刪除這個連接,也不會影響到源文件,但對連接文件的使用、引用都是直接調用源文件的。

具體關系可以看下圖:

圖5:軟鏈接和硬鏈接

從圖上可以看出硬鏈接和軟鏈接的區別:

1:硬鏈接原文件和新文件的inode編號一致。而軟鏈接不一樣。

2:對原文件刪除,會導致軟鏈接不可用,而硬鏈接不受影響。

3:對原文件的修改,軟、硬鏈接文件內容也一樣的修改,因為都是指向同一個文件內容的。

6.文件目錄管理命令

磁盤和文件空間

fdisk df du

文件目錄與管理

cd pwd mkdir rmdir ls cp rm mv

查看文件內容

cat:cat [file]查看文件的內容。全程式concatenate的意思,將文件內容連續輸出到屏幕上。第一行到最后一行顯示。tac:tac [file]和cat剛好相反 是從最后一行到第一行的方式查看。

cat有個比較不好的地方時當文件比較大時候沒辦法看清楚,這個時候可以用more或者Less命令。

more:more [file]如果使用grep或者find等命令時,可以配合使用more一頁一頁的查看。如果看到一半想退出,則敲入’q’即可退出。less:less [file]less比more更有彈性,可以上下翻頁。

如果只想讀取文件的頭幾行或者文件的末尾幾行,可以用head或tail.head –n [file]:讀取文件的前n行。tail –n [file]:讀取文件末尾n行。

以上命令都是用于查看字符文件,二進制文件出來的都是亂碼,要看二進制文件的內容,可以用od命令,如查看一個MP3文件里面的內容:od shijiemori.mp3

文件目錄與權限

chmod chown chgrp umask

文件查找

which:which [filename]該命令用于查詢通過PATH路徑到該路徑內查找可執行文件。如:Which passwd:查找可執行文件passwdwhereis:whereis [-bmsu] [keyWord]該命令用于把相關字的文件和目錄都列出來。(Linux 會將文件都記錄在一個文件數據庫里面,該命令式從數據庫去查詢,所以速度比較快,Linux每天會更新該數據庫)

locate:locate [filename]該命令用于把相關字的文件和目錄都列出來。查找數據特別快,也是通過數據庫方式來查詢。但是數據庫一周更新一次,所以可能有些存在數據查不到??梢匀バ薷呐渲梦募?。

find:find [path] [參數] [keyword]該命令用于在指定路徑下查找文件。不是通過數據來查詢,所以速度會比較慢。

7.常見目錄解釋

Linux各種發行版的目錄結構基本一致,各個目錄簡單介紹如下:

目錄

描述

/

根目錄

/bin

做為基礎系統所需要的最基礎的命令就是放在這里。比如ls、cp、mkdir等命令;功能和/usr/bin類似,這個目錄中的文件都是可執行的,普通用戶都可以使用的命令。

/boot

Linux的內核及引導系統程序所需要的文件,比如vmlinuz initrd.img文件都位于這個目錄中。在一般情況下,GRUB或LILO系統引導管理器也位于這個目錄;啟動裝載文件存放位置,如kernels,initrd,grub。一般是一個獨立的分區。

/dev

一些必要的設備,聲卡、磁盤等。還有如/dev/null. /dev/console /dev/zero /dev/full等。

/etc

系統的配置文件存放地.一些服務器的配置文件也在這里;比如用戶帳號及密碼配置文件;

/etc/opt:/opt對應的配置文件

/etc/X11:Xwindows系統配置文件

/etc/xml:XML配置文件

……

/home

用戶工作目錄,和個人配置文件,如個人環境變量等,所有的賬號分配一個工作目錄。一般是一個獨立的分區。

/lib

庫文件存放地。bin和sbin需要的庫文件。類似windows的DLL。

/media

可拆卸的媒介掛載點,如CD-ROMs、移動硬盤、U盤,系統默認會掛載到這里來。

/mnt

臨時掛載文件系統。這個目錄一般是用于存放掛載儲存設備的掛載目錄的,比如有cdrom等目錄??梢詤⒖?etc/fstab的定義。

/opt

可選的應用程序包。

/proc

操作系統運行時,進程(正在運行中的程序)信息及內核信息(比如cpu、硬盤分區、內存信息等)存放在這里。/proc目錄偽裝的文件系統proc的掛載目錄,proc并不是真正的文件系統,它的定義可以參見/etc/fstab。

/root

Root用戶的工作目錄

/sbin

和bin類似,是一些可執行文件,不過不是所有用戶都需要的,一般是系統管理所需要使用得到的。

/tmp

系統的臨時文件,一般系統重啟不會被保存。

/usr

包含了系統用戶工具和程序。

/usr/bin:非必須的普通用戶可執行命令

/usr/include:標準頭文件

/usr/lib:/usr/bin/和/usr/sbin/的庫文件

/usr/sbin:非必須的可執行文件

/usr/src:內核源碼

/usr/X11R6:X Window System, Version 11, Release 6.

/srv

該目錄存放一些服務啟動之后需要提取的數據


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: SHOW| 黑河市| 铅山县| 昌平区| 绥德县| 合川市| 新田县| 梁山县| 仁寿县| 望江县| 巴南区| 大同县| 璧山县| 邵阳县| 雷山县| 清涧县| 南陵县| 广东省| 竹溪县| 石狮市| 镇原县| 辽宁省| 新竹市| 阳山县| 安庆市| 金门县| 平果县| 山西省| 黔西| 房产| 柘城县| 昆山市| 旬邑县| 泾川县| 五家渠市| 棋牌| 贺州市| 伊吾县| 小金县| 津南区| 嵊泗县|