Linux目录结构与FreeBSD目录结构比较。

FreeBSD的\目录下的内容:

./  
../  
.cshrc  
.profile  
.snap/  
.sujournal  
COPYRIGHT  
bin/  
boot/  
dev/  
entropy  
etc/  
home@ -> usr/home  
lib/  
libexec/  
media/  
mnt/  
proc/  
rescue/  
root/  
sbin/  
sys@ -> usr/src/sys  
tmp/  
usr/  
var/  

Linux下的(Debian):

bin  
boot  
dev  
etc  
home  
initrd.img -> /boot/initrd.img-3.2.0-4-amd64  
lib  
lib64  
lost+found  (这个是EXT4专有的,BTRFS没有这个文件夹)
media  
mnt  
opt  
proc  
root  
run  
sbin  
selinux  
srv  
sys  
tmp  
usr  
var  
vmlinuz -> boot/vmlinuz-3.2.0-4-amd64  

比较后可以发现FreeBSD和Linux最基本的结构非常相近,它们的相同部分:

* /bin:
    bin是binary的缩写。这个目录沿袭了UNIX系统的结构,存放着使用者最经常使用的命令。例如cp、ls、cat,等等。
* /etc:
    放置系统和一些软件的设定文件,例如使用者密码、群组配置文件等。
* /root:
    根用户的主目录。
* /dev
    dev是device(设备)的缩写。这个目录下是所有Linux/FreeBSD的外部设备。FreeBSD的命名方式和Linux不太一样,例FreeBSD中ad0p1表示第一个硬盘的第一个分区
* /home
    用于存放一般用户的主目录
* /lib
    存放最基本的动态链接库
* /sbin
   存放SA使用的命令,一般需要root权限而且一般不在普通用户的PATH之中。
* /mnt
    这个目录是空的,系统提供这个目录是让用户临时挂载别的文件系统。
* /proc
    个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里。当然,由于内核的设计差异,FreeBSD似乎是废弃掉了/proc,说是一个设计失误,只是因为兼容性原因才留下这个(Orz)。
* /var
    一般用于存放一些系统和软件运行时需要的文件,例如mysql的数据库文件存放在/var/lib/mysql之中,应用程序的PID文件存放于/var/run,日志存放于/var/log之中。
* /usr
    这是最庞大的目录,我们要用到的应用程序和文件几乎都存放在这个目录下。其中/usr下面也有与/分区下相似的文件夹,例如/usr/bin,/usr/sbin等,这是由于历史原因,据说当时Linux在远古时期的时候没有/usr,但随着Linux用户安装了越来越多的应用程序。于是有了/usr,用于存放用户的程序。现在/usr下一般存放各种应用软件,而/分区下的/bin /sbin /lib至存放系统最基本的命令和库。
* /tmp
    系统临时的文件存放地。可以使用ramfs挂载进行加速。
* /media
    Linux自动挂载设配的存放地,例如cdrom,u盘设备在图形界面下会自动挂载下(通过udev)。FreeBSD同理吧(但似乎只是为KDE等图形界面留的,tty模式下不会挂载)
* /boot
    存放系统启动的文件,Linux一般存放这grub配置文件和内核镜像,一般推荐单独分区。FreeBSD下不同,它会有一个跟Windows在UEFI下和相似的隐藏启动分区就,大约只有512KB,通过这个去加载/boot,一般不会为/boot单独分区。

不一样的几个地方:

Linux:

* /opt
    一般用于存放大型的“绿色软件”,例如oracle java的RPM包默认会安装到这里,WPS,google Earth之类的。这些软件大部分都有一些特点,就是依赖自己解决(理论上是这样)。一个文件夹下往往包含了所有与该程序相关的文件,而不像一般Linux软件分布在各个角落。方便在不同电脑上挂载。
* /run
    一些系统基本服务的PID文件。
* /srv
   /srv contains site-specific data which is served by this system.(实在不知道怎么翻译好,我六级怎么过的Orz)。简单的说 如果你安装FTP服务的话,在/srv下面会多出一个ftp文件夹,存放的都是与web服务相关的文件。
* /sys
    sysfs 是 Linux 内核中设计较新的一种虚拟的基于内存的文件系统,它的作用与 proc 有些类似,但除了与 proc 相同的具有查看和设定内核参数功能之外,还有为 Linux 统一设备模型作为管理之用。相比于 proc 文件系统,使用 sysfs 导出内核数据的方式更为统一,并且组织的方式更好,它的设计从 proc 中吸取了很多教训。(为啥大家还是用/proc????)

FreeBSD:

* /resure
    系统的备份目录
* /libexec
    系统用于运行程序所需的最基本库文件。默认只有三个文件ld-elf.so.1、ld-elf32.so.1、resolvconf

待补充,FreeBSD Handbook那一堆英文要慢慢啃了。

你可能感兴趣的:(linux)