📜  Unix / Linux-文件系统基础

📅  最后修改于: 2020-10-31 14:58:58             🧑  作者: Mango


文件系统是分区或磁盘上文件的逻辑集合。分区是信息的容器,并且可以根据需要跨越整个硬盘驱动器。

您的硬盘驱动器可以具有各种分区,这些分区通常仅包含一个文件系统,例如,一个包含/ file system文件系统或另一个包含/ home file system的文件系统

每个分区一个文件系统允许对不同文件系统进行逻辑维护和管理。

Unix中的所有内容都被认为是文件,包括物理设备,例如DVD-ROM,USB设备和软盘驱动器。

目录结构

Unix使用分层的文件系统结构,就像倒置的树一样,在文件系统的基础上带有根(/),所有其他目录都从那里展开。

Unix文件系统是具有以下属性的文件和目录的集合-

  • 它具有包含其他文件和目录的根目录( / )。

  • 每个文件或目录都由其名称,其所在目录以及唯一的标识符(通常称为inode)唯一标识。

  • 按照约定,根目录的索引节点号为2 ,而lost+ found目录的索引节点号为3 。不使用索引号01 。通过指定ls命令-i选项可以看到文件索引节点号。

  • 它是独立的。一个文件系统与另一个文件系统之间没有依赖关系。

这些目录具有特定的用途,并且通常包含相同类型的信息,以便于查找文件。以下是Unix主要版本上存在的目录-

Sr.No. Directory & Description
1

/

This is the root directory which should contain only the directories needed at the top level of the file structure

2

/bin

This is where the executable files are located. These files are available to all users

3

/dev

These are device drivers

4

/etc

Supervisor directory commands, configuration files, disk configuration files, valid user lists, groups, ethernet, hosts, where to send critical messages

5

/lib

Contains shared library files and sometimes other kernel-related files

6

/boot

Contains files for booting the system

7

/home

Contains the home directory for users and other accounts

8

/mnt

Used to mount other temporary file systems, such as cdrom and floppy for the CD-ROM drive and floppy diskette drive, respectively

9

/proc

Contains all processes marked as a file by process number or other information that is dynamic to the system

10

/tmp

Holds temporary files used between system boots

11

/usr

Used for miscellaneous purposes, and can be used by many users. Includes administrative commands, shared files, library files, and others

12

/var

Typically contains variable-length files such as log and print files and any other type of file that may contain a variable amount of data

13

/sbin

Contains binary (executable) files, usually for system administration. For example, fdisk and ifconfig utlities

14

/kernel

Contains kernel files

浏览文件系统

既然您了解了文件系统的基础知识,就可以开始导航到所需的文件了。以下命令用于导航系统-

Sr.No. Command & Description
1

cat filename

Displays a filename

2

cd dirname

Moves you to the identified directory

3

cp file1 file2

Copies one file/directory to the specified location

4

file filename

Identifies the file type (binary, text, etc)

5

find filename dir

Finds a file/directory

6

head filename

Shows the beginning of a file

7

less filename

Browses through a file from the end or the beginning

8

ls dirname

Shows the contents of the directory specified

9

mkdir dirname

Creates the specified directory

10

more filename

Browses through a file from the beginning to the end

11

mv file1 file2

Moves the location of, or renames a file/directory

12

pwd

Shows the current directory the user is in

13

rm filename

Removes a file

14

rmdir dirname

Removes a directory

15

tail filename

Shows the end of a file

16

touch filename

Creates a blank file or modifies an existing file or its attributes

17

whereis filename

Shows the location of a file

18

which filename

Shows the location of a file if it is in your PATH

您可以使用帮助手册来检查此处提到的每个命令的完整语法。

df命令

管理分区空间的第一种方法是使用df(无磁盘)命令。命令df -k(无磁盘)显示磁盘空间使用情况(以千字节为单位),如下所示-

$df -k
Filesystem      1K-blocks      Used   Available Use% Mounted on
/dev/vzfs        10485760   7836644     2649116  75% /
/devices                0         0           0   0% /devices
$

某些目录(例如/ devices)在已使用和可用列的千字节中显示0,在容量中显示0%。这些是特殊的(或虚拟)文件系统,尽管它们位于/下的磁盘上,但它们本身并不占用磁盘空间。

在所有Unix系统上, df -k输出通常是相同的。这通常包括-

Sr.No. Column & Description
1

Filesystem

The physical file system name

2

kbytes

Total kilobytes of space available on the storage medium

3

used

Total kilobytes of space used (by files)

4

avail

Total kilobytes available for use

5

capacity

Percentage of total space used by files

6

Mounted on

What the file system is mounted on

您可以使用-h(人类可读)选项以一种格式显示输出,该格式以易于理解的符号显示大小。

du Command

du(磁盘使用情况)命令使您可以指定目录,以显示特定目录上的磁盘空间使用情况。

如果要确定特定目录占用的空间,此命令很有用。以下命令显示每个目录占用的块数。单个块可能需要512字节或1千字节,具体取决于您的系统。

$du /etc
10     /etc/cron.d
126    /etc/default
6      /etc/dfs
...
$

-h选项使输出更易于理解-

$du -h /etc
5k    /etc/cron.d
63k   /etc/default
3k    /etc/dfs
...
$

挂载文件系统

必须挂载文件系统才能被系统使用。要查看系统上当前已挂载(可用)的内容,请使用以下命令-

$ mount
/dev/vzfs on / type reiserfs (rw,usrquota,grpquota)
proc on /proc type proc (rw,nodiratime)
devpts on /dev/pts type devpts (rw)
$

根据Unix约定, / mnt目录是临时挂载(例如CDROM驱动器,远程网络驱动器和软盘驱动器)所在的位置。如果需要挂载文件系统,则可以使用具有以下语法的mount命令-

mount -t file_system_type device_to_mount directory_to_mount_to

例如,如果要将CD-ROM挂载到目录/ mnt / cdrom ,则可以输入-

$ mount -t iso9660 /dev/cdrom /mnt/cdrom

这假定您的CD-ROM设备名为/ dev / cdrom ,并且您要将其安装到/ mnt / cdrom 。有关更多特定信息,请参考mount手册页,或在命令行中输入mount -h获取帮助信息。

挂载后,可以使用cd命令在刚创建的挂载点上导航新可用的文件系统。

卸载文件系统

要从系统中卸载(删除)文件系统,请通过识别安装点或设备来使用umount命令。

例如,要卸载cdrom ,请使用以下命令-

$ umount /dev/cdrom

使用mount命令可以访问文件系统,但是在大多数现代Unix系统上,自动挂载函数使该过程对用户不可见,并且不需要干预。

用户和组配额

用户和组配额提供了一种机制,通过该机制,可以将单个用户或特定组内所有用户使用的空间量限制为管理员定义的值。

配额围绕两个限制运行,如果空间或磁盘块数量开始超过管理员定义的限制,则允许用户采取某些措施-

  • 软限制-如果用户超过定义的限制,则有一个宽限期,允许用户释放一些空间。

  • 硬限制-达到硬限制时,无论宽限期如何,都无法分配其他文件或块。

有许多命令可以管理配额-

Sr.No. Command & Description
1

quota

Displays disk usage and limits for a user of group

2

edquota

This is a quota editor. Users or Groups quota can be edited using this command

3

quotacheck

Scans a filesystem for disk usage, creates, checks and repairs quota files

4

setquota

This is a command line quota editor

5

quotaon

This announces to the system that disk quotas should be enabled on one or more filesystems

6

quotaoff

This announces to the system that disk quotas should be disabled for one or more filesystems

7

repquota

This prints a summary of the disc usage and quotas for the specified file systems

您可以使用帮助手册来检查此处提到的每个命令的完整语法。