- Unix/Linux 初学者指南
- Unix/Linux 首页
- Unix/Linux - 什么是Linux?
- Unix/Linux - 开始入门
- Unix/Linux - 文件管理
- Unix/Linux - 目录
- Unix/Linux - 文件权限
- Unix/Linux - 环境变量
- Unix/Linux - 基本实用程序
- Unix/Linux - 管道与过滤器
- Unix/Linux - 进程
- Unix/Linux - 通信
- Unix/Linux - vi 编辑器
- Unix/Linux Shell 编程
- Unix/Linux - Shell 脚本
- Unix/Linux - 什么是Shell?
- Unix/Linux - 使用变量
- Unix/Linux - 特殊变量
- Unix/Linux - 使用数组
- Unix/Linux - 基本运算符
- Unix/Linux - 决策语句
- Unix/Linux - Shell 循环
- Unix/Linux - 循环控制
- Unix/Linux - Shell 替换
- Unix/Linux - 引号机制
- Unix/Linux - I/O 重定向
- Unix/Linux - Shell 函数
- Unix/Linux - 手册页帮助
- 高级 Unix/Linux
- Unix/Linux - 标准 I/O 流
- Unix/Linux - 文件链接
- Unix/Linux - 正则表达式
- Unix/Linux 文件系统基础
- Unix/Linux - 用户管理
- Unix/Linux - 系统性能
- Unix/Linux - 系统日志
- Unix/Linux - 信号和陷阱
Unix/Linux 文件系统基础
文件系统是在分区或磁盘上文件的逻辑集合。分区是信息的容器,如果需要,可以跨越整个硬盘驱动器。
您的硬盘驱动器可以有多个分区,这些分区通常只包含一个文件系统,例如一个文件系统容纳/文件系统,另一个容纳/home 文件系统。
每个分区一个文件系统允许对不同的文件系统进行逻辑维护和管理。
在 Unix 中,一切都被视为文件,包括物理设备,如 DVD-ROM、USB 设备和软盘驱动器。
目录结构
Unix 使用分层文件系统结构,就像一棵倒置的树,根目录 (/) 在文件系统的底部,所有其他目录都从那里延伸。
Unix 文件系统是具有以下属性的文件和目录的集合:
它有一个根目录 (/),其中包含其他文件和目录。
每个文件或目录都由其名称、所在的目录和唯一的标识符(通常称为inode)唯一标识。
按照惯例,根目录的inode编号为2,而lost+found目录的inode编号为3。inode编号0和1未使用。可以通过为ls 命令指定-i 选项查看文件 inode 编号。
它是自包含的。一个文件系统与另一个文件系统之间没有依赖关系。
目录具有特定用途,并且通常保存相同类型的信息,以便于查找文件。以下是 Unix 主要版本中存在的目录:
序号 | 目录及说明 |
---|---|
1 |
/ 这是根目录,它应该只包含文件结构顶层所需的目录 |
2 |
/bin 这是可执行文件所在的位置。所有用户都可以使用这些文件 |
3 |
/dev 这些是设备驱动程序 |
4 |
/etc 管理程序目录命令、配置文件、磁盘配置文件、有效用户列表、组、以太网、主机,以及发送重要消息的位置 |
5 |
/lib 包含共享库文件,有时还包含其他与内核相关的文件 |
6 |
/boot 包含用于启动系统的文件 |
7 |
/home 包含用户和其他帐户的主目录 |
8 |
/mnt 用于挂载其他临时文件系统,例如cdrom和floppy分别用于CD-ROM驱动器和软盘驱动器 |
9 |
/proc 包含所有进程,这些进程由进程号或其他对系统动态的信息标记为文件 |
10 |
/tmp 保存系统启动之间使用的临时文件 |
11 |
/usr 用于各种目的,可以被许多用户使用。包括管理命令、共享文件、库文件和其他文件 |
12 |
/var 通常包含可变长度的文件,例如日志和打印文件以及任何可能包含可变数量数据的其他类型文件 |
13 |
/sbin 包含二进制(可执行)文件,通常用于系统管理。例如,fdisk和ifconfig实用程序 |
14 |
/kernel 包含内核文件 |
浏览文件系统
现在您已经了解了文件系统的基础知识,您可以开始浏览所需的文件。以下命令用于浏览系统:
序号 | 命令及说明 |
---|---|
1 |
cat filename 显示文件名 |
2 |
cd dirname 移动到指定的目录 |
3 |
cp file1 file2 将一个文件/目录复制到指定位置 |
4 |
file filename 识别文件类型(二进制、文本等) |
5 |
find filename dir 查找文件/目录 |
6 |
head filename 显示文件的开头 |
7 |
less filename 从文件末尾或开头浏览文件 |
8 |
ls dirname 显示指定目录的内容 |
9 |
mkdir dirname 创建指定的目录 |
10 |
more filename 从开头到结尾浏览文件 |
11 |
mv file1 file2 移动或重命名文件/目录的位置 |
12 |
pwd 显示用户当前所在的目录 |
13 |
rm filename 删除文件 |
14 |
rmdir dirname 删除目录 |
15 |
tail filename 显示文件的结尾 |
16 |
touch filename 创建一个空文件或修改现有文件或其属性 |
17 |
whereis filename 显示文件的位置 |
18 |
which filename 如果文件在您的 PATH 中,则显示文件的位置 |
您可以使用手册页帮助检查此处提到的每个命令的完整语法。
df 命令
管理分区空间的第一种方法是使用df (disk free)命令。命令df -k (disk free)显示以千字节为单位的磁盘空间使用情况,如下所示:
$df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/vzfs 10485760 7836644 2649116 75% / /devices 0 0 0 0% /devices $
某些目录,例如/devices,在 kbytes、used 和 avail 列中显示 0,容量也显示 0%。这些是特殊(或虚拟)文件系统,尽管它们位于 / 下的磁盘上,但它们本身不会占用磁盘空间。
df -k输出在所有 Unix 系统上通常相同。以下是它通常包含的内容:
序号 | 列及说明 |
---|---|
1 |
Filesystem 物理文件系统名称 |
2 |
kbytes 存储介质上可用的总千字节空间 |
3 |
used 已使用的总千字节空间(由文件使用) |
4 |
avail 可用于使用的总千字节数 |
5 |
capacity 文件使用的总空间百分比 |
6 |
Mounted on 文件系统安装到的位置 |
您可以使用-h (human readable) 选项以更易于理解的表示法显示大小的输出。
du 命令
du (disk usage) 命令允许您指定目录以显示特定目录的磁盘空间使用情况。
如果您想确定特定目录占用了多少空间,此命令很有用。以下命令显示每个目录消耗的块数。单个块的大小可能是 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 系统上,自动挂载功能使此过程对用户不可见,并且不需要任何干预。
用户和组配额
用户和组配额提供了机制,通过该机制,单个用户或特定组内所有用户使用的空间量可以限制为管理员定义的值。
配额围绕两个限制运行,如果空间量或磁盘块数量开始超过管理员定义的限制,则允许用户采取一些措施:
软限制 - 如果用户超过定义的限制,则会有一个宽限期,允许用户释放一些空间。
硬限制 - 无论宽限期如何,达到硬限制后,将无法再分配任何文件或块。
有一些命令可以管理配额:
序号 | 命令及说明 |
---|---|
1 |
quota 显示用户或组的磁盘使用情况和限制 |
2 |
edquota 这是一个配额编辑器。可以使用此命令编辑用户或组的配额 |
3 |
quotacheck 扫描文件系统以查找磁盘使用情况,创建、检查和修复配额文件 |
4 |
setquota 这是一个命令行配额编辑器。 |
5 |
quotaon 此命令通知系统在一个或多个文件系统上启用磁盘配额。 |
6 |
quotaoff 此命令通知系统在一个或多个文件系统上禁用磁盘配额。 |
7 |
repquota 此命令打印指定文件系统的磁盘使用情况和配额摘要。 |
您可以使用手册页帮助检查此处提到的每个命令的完整语法。