刚开始学 ubuntu,整理一下最近学的内容。

通常情况下,根文件系统所占空间一般应该比较小,因为其中的绝大部分文件都不需要经常改动,而且包括严格的文件和一个小的不经常改变的文件系统不容易损坏。
除了可能的一个叫/vmlinuz标准的系统引导映像之外,根目录一般不含任何文件。所有其他文件在根文件系统的子目录中。

/bin: 二进制可执行命令

包含了引导启动所需的命令或普通用户可能用的命令(可能在引导启动后)。这些命令都是二进制文件的可执行程序(bin是binary-二进制的简称),多是系统中重要的系统文件。

本文件夹保存二进制可执行命令,ls一下看看:

$ ls
bash           fuser       nisdomainname  stty
brltty         fusermount  ntfs-3g        su
bunzip2        getfacl     ntfs-3g.probe  sync
busybox        grep        ntfscat        systemctl
... ...

ubuntu下几乎所有的命令都在这里了。

/boot

看名称,这里面应该存放的是系统引导程序。查了下资料,说是这个文件夹挂载的是磁盘引导分区。我也没搞太明白,感觉一般、二般情况下和我的工作没啥关系。

/boot 目录存放引导加载器 (bootstraploader)使用的文件,如lilo,核心映像也经常放在这里,而不是放在根目录中。但是如果有许多核心映像,这个目录就可能变得很大,这时使用单独的文件系统会更好一些。还有一点要注意的是,要确保核心映像必须在ide硬盘的前1024柱面内。

/cdrom

看名称,应该是挂载的光驱。我的机器没这玩意,暂时不研究了。

/dev 设备文件

/dev目录存放了设备文件,即设备驱动程序,用户通过这些文件访问外部设备。比如,用户可以通过访问/dev/mouse来访问鼠标的输入,就像访问其他文件一样。

/etc 系统管理和配置文件

存放着各种系统配置文件,其中包括了用户信息文件/etc/passwd,系统初始化文件/etc/rc等。linux正是依赖这些文件才得以正常地运行。

打开文件夹看了一眼,眼花缭乱,我估计这个就相当于 Windows 的注册表,暂不研究。

/home 用户主目录

里面有以登录用户名作为文件夹名的各文件夹。

/lib 代码库

这里面存放动态链接共享库,作用类似windows里的.dll文件。我查看了一下,里面许多子文件夹,里面很多文件都是 *.so 文件,也就是 linux 的动态链接共享文件。

/lib目录是根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文件。这些文件包含了可被许多程序共享的代码,以避免每个程序都包含有相同的子程序的副本,故可以使得可执行文件变得更小,节省空间。

/lib/modules

/lib/modules目录包含系统核心可加载各种模块,尤其是那些在恢复损坏的系统时重新引导系统所需的模块(例如网络和文件系统驱动)。

/lib64

我猜和 /lib 差不多吧,里面只有一个文件,估计这个文件夹不是 ubuntu 系统自带的,可能是其他软件创建的。

/lost+found 存放丢失的文件

这个目录平时是空的,系统非正常关机而留下“无家可归”的文件。

/media 移动硬盘等数据媒体

看了一下我的机器,里面只有我的移动硬盘。

/mnt 挂载其他文件系统

系统提供这个目录是让用户临时挂载其他的文件系统。我看了一下我的机器,这个文件夹是空的。

/mnt 目录是系统管理员临时装载(mount)文件系统的安装点。程序并不自动支持安装到/mnt。/mnt下面可以分为许多子目录,例如/mnt/dosa可能是使用msdos文件系统的软驱,而/mnt/exta可能是使用ext2文件系统的软驱,/mnt/cdrom光驱等等。

/opt

/proc 系统内存映射

虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。

/root 系统管理员的主目录

是超级用户的目录。

/run

/sbin 系统管理命令

类似/bin,也用于存储二进制文件。因为其中的大部分文件多是系统管理员使用的基本的系统程序,所以虽然普通用户必要且允许时可以使用,但一般不给普通用户使用。

/snap

/srv

/sys

/tmp 临时文件存储地点

/tmp目录存放程序在运行时产生的信息和数据

/usr 应用程序和文件

最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含:

/usr/x11r6 x-window的目录
/usr/bin 应用程序
/usr/sbin 超级用户的一些管理程序
/usr/doc linux文档
/usr/include linux下开发和编译应用程序所需要的头文件
/usr/lib 常用的动态链接库和软件包的配置文件
/usr/man 帮助文档
/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里
/usr/local/bin 本地增加的命令
/usr/local/lib 本地增加的库

/var 溢出区

某些大文件的溢出区,比方说各种服务的日志文件。