Unix 文件系统基础
文件系统是一个分区或磁盘上的文件的逻辑集合。分区是信息的容器,如果需要的话,可以跨越整个硬盘驱动器。
你的硬盘驱动器,可以有不同的分区通常只包含一个文件系统,如一个文件系统 / 文件系统或其他包含/home文件系统。
每个分区的一个文件系统允许不同的文件系统的维护和管理逻辑。
在Unix中的一切都被认为是一个文件,包括物理设备,如DVD-ROM,USB设备,软盘驱动器,等等。
目录结构:
Unix 使用层次结构的文件系统的结构,很象一个倒置的树,在该文件系统的基础上,并从那里扩展的所有其他目录的根目录(/)。
UNIX 文件系统中的文件和目录的集合,具有以下属性:
-
它有一个根目录(/),其中包含其他文件和目录。
-
每个文件或目录被唯一标识,它的名字,它的目录,以及一个唯一的标识符,通常被称为一个inode。
-
按照惯例,根目录下有一个inode号为2和3的lost + found目录中有一个inode号。 inode编号0和1不使用。指定-i选项的ls命令可以看到文件的inode编号。
-
这是自包含的。没有一个文件系统,以及任何其他的之间的依赖关系。
目录有特定的目的,普遍持相同类型的信息,轻松定位文件。以下是主要的Unix版本上存在的目录:
目录 | 描述 |
---|---|
/ | This is the root directory which should contain only the directories needed at the top level of the file structure. |
/bin | This is where the executable files are located. They are available to all user. |
/dev | These are device drivers. |
/etc | Supervisor directory commands, configuration files, disk configuration files, valid user lists, groups, ethernet, hosts, where to send critical messages. |
/lib | Contains shared library files and sometimes other kernel-related files. |
/boot | Contains files for booting the system. |
/home | Contains the home directory for users and other accounts. |
/mnt | Used to mount other temporary file systems, such as cdrom and floppy for the CD-ROM drive and floppy diskette drive, respectively |
/proc | Contains all processes marked as a file by process number or other information that is dynamic to the system. |
/tmp | Holds temporary files used between system boots |
/usr | Used for miscellaneous purposes, or can be used by many users. Includes administrative commands, shared files, library files, and others |
/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 |
/sbin | Contains binary (executable) files, usually for system administration. For examplefdisk and ifconfig utlities. |
/kernel | Contains kernel files |
浏览文件系统:
现在你了解基本的文件系统,你就可以开始导航到你需要的文件。以下是您将使用浏览系统的命令:
命令 | 描述 |
---|---|
cat filename | Displays a filename. |
cd dirname | Moves you to the directory identified. |
cp file1 file2 | Copies one file/directory to specified location. |
file filename | Identifies the file type (binary, text, etc). |
find filename dir | Finds a file/directory. |
head filename | Shows the beginning of a file. |
less filename | Browses through a file from end or beginning. |
ls dirname | Shows the contents of the directory specified. |
mkdir dirname | Creates the specified directory. |
more filename | Browses through a file from beginning to end. |
mv file1 file2 | Moves the location of or renames a file/directory. |
pwd | Shows the current directory the user is in. |
rm filename | Removes a file. |
rmdir dirname | Removes a directory. |
tail filename | Shows the end of a file. |
touch filename | Creates a blank file or modifies an existing file.s attributes. |
whereis filename | Shows the location of a file. |
which filename | Shows the location of a file if it is in your PATH. |
您可以使用联机帮助帮助这里提到的每个命令的语法检查完成。
df 命令:
第一种方式来管理你的分区空间使用df(磁盘空闲)命令。命令df-K(可用磁盘)以KB为单位显示磁盘空间使用情况,如下图所示:
$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%。这些特殊的文件系统(或虚拟),虽然它们驻留在磁盘上/下,它们本身不占用磁盘空间。
df -k 输出所有的Unix系统上大致相同。下面是它通常包括:
Column | 描述 |
---|---|
Filesystem | The physical file system name. |
kbytes | Total kilobytes of space available on the storage medium. |
used | Total kilobytes of space used (by files). |
avail | Total kilobytes available for use. |
capacity | Percentage of total space used by files. |
Mounted on | What the file system is mounted on. |
你可以使用-h(人类可读的)选项显示的输出格式,显示的大小更容易理解的符号。
du 命令:
使用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) $
/ mnt目录下,Unix的惯例,是位于临时装片(如CD-ROM驱动器,远程网络驱动器,软盘驱动器)。如果您需要挂载文件系统,可以使用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 -h ,请参阅安装手册页。
安装后,您可以使用cd 命令导航最新的文件系统挂载点。
卸载文件系统:
从您的系统中卸载(删除)文件系统,使用umount命令识别挂载点或设备
例如,要卸载光驱,使用下面的命令:
$ umount /dev/cdrom
mount 命令,使您能够访问您的文件系统,但最现代的Unix系统,自动装载功能,使这个过程对用户不可见,无需干预。
用户和组配额:
用户和组配额提供的机制,可以限制特定组内的单个用户或所有用户使用的空间量由管理员定义的值。
配额围绕两个限制,允许用户采取一些行动,如果量的空间或磁盘块数开始超过管理员定义的限制:
-
Soft Limit: 如果用户超过定义的限制,有一个宽限期,允许用户腾出一些空间。
-
Hard Limit: 当达到硬限制,无论在宽限期,没有进一步的文件或块可以分配。
有一些命令来管理配额:
命令 | 描述 |
---|---|
quota | Displays disk usage and limits for a user of group. |
edquota | This is a quota editor. Users or Groups quota can be edited using this command. |
quotacheck | Scan a filesystem for disk usage, create, check and repair quota files |
setquota | This is also a command line quota editor. |
quotaon | This announces to the system that disk quotas should be enabled on one or more filesystems. |
quotaoff | This announces to the system that disk quotas should be disabled off one or more filesystems. |
repquota | This prints a summary of the disc usage and quotas for the specified file systems |
您可以使用 联机帮助帮助 提到的每个命令的语法检查完成。