简介linux
文件系统就是分区或磁盘上的全部文件的逻辑集合。
文件系统不只包含着文件中的数据并且还有文件系统的结构,全部Linux 用户和程序看到的文件、目录、软链接及文件保护信息等都存储在其中。
不一样Linux发行版本之间的文件系统差异不多,主要表如今系统管理的特点工具以及软件包管理方式的不一样,文件目录结构基本上都是同样的。
文件系统有多种类型,如:网络
文件系统位于磁盘分区中;一个硬盘能够有多个分区,也能够只有一个分区;一个分区只能包含一个文件系统。
Linux文件系统与Windows有较大的差异。Windows的文件结构是多个并列的树状结构,最顶部的是不一样的磁盘(分区),如 C、D、E、F等。
Linux的文件结构是单个的树状结构,根目录是“/”,其余目录都要位于根目录下。
每次安装系统的时候咱们都会进行分区,Linux下磁盘分区和目录的关系以下:less
下图是常见的目录和分区的对应关系:工具
为何要分区,如何分区?spa
为了便于定位和查找,Linux中的每一个目录通常都存放特定类型的文件,下表列出了各类Linux发行版本的常见目录:操作系统
目录 | 说明 |
---|---|
/ | 根目录,只能包含目录,不能包含具体文件。 |
/bin | 存放可执行文件。不少命令就对应/bin目录下的某个程序,例如 ls、cp、mkdir。/bin目录对全部用户有效。 |
/dev | 硬件驱动程序。例如声卡、磁盘驱动等,还有如 /dev/null、/dev/console、/dev/zero、/dev/full 等文件。 |
/etc | 主要包含系统配置文件和用户、用户组配置文件。 |
/lib | 主要包含共享库文件,相似于Windows下的DLL;有时也会包含内核相关文件。 |
/boot | 系统启动文件,例如Linux内核、引导程序等。 |
/home | 用户工做目录(主目录),每一个用户都会分配一个目录。 |
/mnt | 临时挂载文件系统。这个目录通常是用于存放挂载储存设备的挂载目录的,例如挂载CD-ROM的cdrom目录。 |
/proc | 操做系统运行时,进程(正在运行中的程序)信息及内核信息(好比cpu、硬盘分区、内存信息等)存放在这里。/proc目录假装的文件系统proc的挂载目录,proc并非真正的文件系统。 |
/tmp | 临时文件目录,系统重启后不会被保存。 |
/usr | /user目下的文件比较混杂,包含了管理命令、共享文件、库文件等,能够被不少用户使用。 |
/var | 主要包含一些可变长度的文件,会常常对数据进行读写,例如日志文件和打印队列里的文件。 |
/sbin | 和 /bin 相似,主要包含可执行文件,不过通常是系统管理所须要的,不是全部用户都须要。 |
你能够经过下面的命令来管理文件:日志
Command | Description |
---|---|
cat filename | 查看文件内容。 |
cd dirname | 改变所在目录。 |
cp file1 file2 | 复制文件或目录。 |
file filename | 查看文件类型(binary, text, etc)。 |
find filename dir | 搜索文件或目录。 |
head filename | 显示文件的开头,与tail命令相对。 |
less filename | 查看文件的所有内容,能够分页显示,比more命令要强大。 |
ls dirname | 遍历目录下的文件或目录。 |
mkdir dirname | 建立目录。 |
more filename | 查看文件的所有内容,能够分页显示。 |
mv file1 file2 | 移动文件或重命名。 |
pwd | 显示用户当前所在目录。 |
rm filename | 删除文件。 |
rmdir dirname | 删除目录。 |
tail filename | 显示文件的结尾,与head命令相对。 |
touch filename | 文件不存在时建立一个空文件,存在时修改文件时间戳。 |
whereis filename | 查看文件所在位置。 |
which filename | 若是文件在环境变量PATH中有定义,那么显示文件位置。 |
管理磁盘分区时常常会使用 df (disk free) 命令,df -k 命令能够用来查看磁盘空间的使用状况(以千字节计),例如:code
$df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/vzfs 10485760 7836644 2649116 75% / /devices 0 0 0 0% /devices $
每一列的含义以下:blog
列 | 说明 |
---|---|
Filesystem | 表明文件系统对应的设备文件的路径名(通常是硬盘上的分区)。 |
kbytes | 分区包含的数据块(1024字节)的数目。 |
used | 已用空间。 |
avail | 可用空间。 |
capacity | 已用空间的百分比。 |
Mounted on | 文件系统挂载点。 |
某些目录(例如 /devices)的 kbytes、used、avail 列为0,use列为0%,这些都是特殊(或虚拟)文件系统,即便位于根目录下,也不占用硬盘空间。
你能够结合 -h (human readable) 选项将输出信息格式化,让人更易阅读。接口
du (disk usage) 命令能够用来查看特定目录的空间使用状况。
du 命令会显示每一个目录所占用数据块。根据系统的不一样,一个数据块多是 512 字节或 1024 字节。举例以下:
$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 ... $
挂载是指将一个硬件设备(例如硬盘、U盘、光盘等)对应到一个已存在的目录上。 若要访问设备中的文件,必须将文件挂载到一个已存在的目录上, 而后经过访问这个目录来访问存储设备。
这样就为用户提供了统一的接口,屏蔽了硬件设备的细节。Linux将全部的硬件设备看作文件,对硬件设备的操做等同于对文件的操做。
注意:挂载目录能够不为空,但挂载后这个目录下之前的内容将不可用。
须要知道的是,光盘、软盘、其余操做系统使用的文件系统的格式与linux使用的文件系统格式是不同的,挂载须要确认Linux是否支持所要挂载的文件系统格式。
查看当前系统所挂载的硬件设备可使用 mount 命令:
$ mount /dev/vzfs on / type reiserfs (rw,usrquota,grpquota) proc on /proc type proc (rw,nodiratime) devpts on /dev/pts type devpts (rw) $
通常约定,/mnt 为临时挂载目录,例如挂载CD-ROM、远程网络设备、软盘等。
也能够经过mount命令来挂载文件系统,语法为:
mount -t file_system_type device_to_mount directory_to_mount_to
例如:
$ mount -t iso9660 /dev/cdrom /mnt/cdrom
将 CD-ROM 挂载到 /mnt/cdrom 目录。
注意:file_system_type用来指定文件系统类型,一般能够不指定,Linux会自动正确选择文件系统类型。
挂载文件系统后,就能够经过 cd、cat 等命令来操做对应文件。
能够经过 umount 命令来卸载文件系统。例如,卸载 cdrom:
$ umount /dev/cdrom
不过,大部分现代的Linux系统都有自动挂载卸载功能,unmount 命令较少用到。
用户和群组配额可让管理员为每一个用户或群组分配固定的磁盘空间。
管理员有两种方式来分配磁盘空间:
下面的命令能够用来管理配额:
命令 | 说明 |
---|---|
quota | 显示磁盘使用状况以及每一个用户组的配额。 |
edquota | 编辑用户和群组的配额。 |
quotacheck | 查看文件系统的磁盘使用状况,建立、检查并修复配额文件。 |
setquota | 设置配额。 |
quotaon | 开启用户或群组的配额功能。 |
quotaoff | 关闭用户或群组的配额功能。 |
repquota | 打印指定文件系统的配额。 |
致谢:感谢您的耐心阅读!