Linux与Windows虽然都属于操作系统的范畴,但是两者存在很大的差异。大的不说,就连两者的目录结构都存在很大的不同。而这些差异就成为了从Windows系统转型到Linux环境的主要障碍。笔者总结了两个操作系统在目录结构上的主要差异。就当作抛砖引玉,希望这些内容能够引起大家的共鸣。
一、系统默认目录的差异。
虽然两个系统安装成功后,都会创建一些目录以供操作系统程序使用。但是,两者创建的默认目录有很大的差异。通常情况下,微软操作系统安装完成后,只会建立三个默认目录,分别为C:\Documents and Settings、C:\Program Files、C:\WINDOWS。但是,Linux系统安装完成后,会创建更多的默认目录。Linux系统下会根据不同的用户创建不同的目录;在各自的目录中放置一些特定的文件。也就是说,Linux下系统默认目录根据用途来分,而且这个分类很细。
插图1:Linxu系统默认目录结构
如上面这张图,就是笔者企业一台Linux操作系统的目录结构。笔者就对其中几个重要的默认目录做一些介绍。了解这些内容后,大家就会对两个操作系统的默认目录差异会有一个更加直观的印象。
默认目录一:/home目录。
Linux下所有的用户都会有一个个人专属的目录,称为主目录,以供用户摆放自己的文件。而/home目录就是用来放置每个帐户的主目录。如果是系统管理员root用户的主目录不是放置在这里。即当每次新建一个用户,当这个用户***登陆系统的时候,操作系统都会在这个/home目录下为这个用户创建一个以他自己的名字命名的专属文件夹。其他用户除非有特别的授权,否则无法查看非本人专属目录中的文件。这跟微软操作系统类似。微软操作系统安装完成后,也会为每个用户在C:\Documents and Settings文件夹下创建用户专属的目录。但是两者有一个很大的差异。在微软操作系统中,系统管理员Administrator的个人专属目录也是在这个文件夹下。而Linux操作系统中,默认情况下跟普通帐户的专属文件夹是分开的。系统会专门建立一个/root目录作为系统管理员的专属目录。这就大大提高了系统管理员帐户的安全性。
Linux 操作系统是一个多用户操作系统,所以不同用户之间的文件管理就显得尤其的重要。在这个目录下会为每个操作系统用户建立一个专属的文件夹。每个用户在日常工作中,***尽可能的将个人文件、数据存放在自己的专属目录下,以方便管理,提高用户个人数据的安全,防止被意外破坏。
默认目录二:/mnt目录。
在这个目录下默认有/cdrom 与 /floppy两个子目录,用来存放光盘与软件的数据。如果在安装的时候,曾加载过硬盘中使用的FAT32文件系统的Windows分区,那么在这个目录下可能还会有/win字目录(通常情况下,加载其他非Linux系统分区都会挂载到这个目录中)。从这个目录我们可以看出两个操作系统的差异。微软系统中把光驱或者软驱都当作一个独立的盘或者分区来对待。但是在Linux系统中,则把他们当作一个目录来对待。不光光是如此,在Linux系统下,并没有微软操作系统那种磁盘驱动器的概念,也就是说不会看到C:、D:等标识符。所有分区都被当作目录使用,分别被加载与根目录下。也就是说,Linux下只有一个单独的树状结构。而在微软操作系统中,则是每个分区下都会有一个独立的树状结构。故如果***次接触Linux系统的管理员,看到他的目录结构之后,还会错误的认为Linux系统只有一个分区呢。
默认目录三:/tmp目录。
这个目录主要供全部用户临时放置文件的目录,又叫做临时目录。另外一些应用程序运行中产生的临时文件,也会保存在这个目录中。如用户从网络上下载文件,在文件没有下载完成前,就会把下载的东西先保存在这个文件夹中。如用户在网络上看电影,播放器会有一个缓冲的功能。即提前把多媒体数据下载到本地电脑,以保障播放的连续性。而这个文件也是保存在这个临时文件夹中。等到影片播放结束后,这个临时文件夹中的信息就会被清除。通常情况下,重新启动后这个临时文件夹中的内容就会被清空。
在微软操作系统中,也有一个临时目录,只是他存储的路径与名字不同而已。两者在临时目录上没有本质的差异。
另外/etc也是系统的默认创建目录,其主要用来摆放系统命令相关的配置文件。/boot主要用来存放系统启动时必须读取的文件,包括内核的一些信息。可见,Linux系统下创建的默认目录分类分的比较细。而分类分的这么细,相对来说管理起来也会更加灵活。如在Linux系统上可能会部署Oracle等数据库应用程序。那么在全县管理上,我们可以创建一个Oracle数据库管理员的角色,其具有系统一定的管理权限。但是其不能够更改/boot或者/root 目录下的文件(默认情况下这两个目录只能够由root帐户来进行维护)。这种安全性设置,就可以在一定程度上保障同一台Linux服务器上部署的多种应用之间相互的独立性。
二、/与\两个符号的差异。
在上面的描述中,笔者已经谈到过Linux操作系统并没有磁盘驱动器的概念,所有的分区都被当作目录来使用。而在了Linux下目录是利用/(正斜杠)来表示的。在Linux操作系统中无论将硬盘分为多少个区,每个分区中的文件及目录,都可以在根目录下,在该分区的加载目录中找到。而根目录的标识方法为/(正斜杠)。
但是在微软的Windows操作系统中,要表示文件或者目录的路径时,其目录名称之间是以\(反斜杠)作为表示的。如C:\Documents and Settings目录,它就是以反斜杆作为标示。而在Linux操作系统中则是以正斜杠。这个差异要特别的注意。笔者刚开始接触Linux操作系统的时候,就经常搞不清楚。微软的操作系统用习惯了,刚开始就很容易沿袭微软操作系统的用法,利用\符合来进入Linux操作系统的目录。结果等到系统提示出错了才会想得到。所以这一点差异刚开始接触Linux操作系统的用户要特别注意。
三、大小写的差异以及查询上的不同。
在微软操作系统中,c:\U01与c:\u02两个目录是等价的。但是,在Linux操作系统中,/u01与/U02两个目录可是代表不同的目录。因为在Linux操作系统中,文件和文件名称大小写不同代表不同的文件和文件夹。所以/u01与/U02两个目录因为字母大小写不同,所以目录代表的内容不同。但是在微软操作系统中,则没有这方面的区分。文件或者文件夹大小写是不区分的。
为了便于管理,笔者建议在Linux下面建立文件夹时,***都能够采用小写字母。大写字母主要用来表示一些特殊的文件夹。如Desktop,它表示用户的桌面文件。这个文件夹是系统自动建立的。系统在对其命名的时候,把***个字母大写了,以跟其他文件夹进行区分。所以除非是为了起到一个强调或者区分的作用,***把文件夹的名字都设置为小写。
另外需要注意的是,在文件查询的时候,文件名字要注意大小写的差异。在搜索文件的时候,Linux系统中主要调用了locate命令。这个名利是从系统中存储文件以及目录名的数据库中搜索文件,查找的速度会比较快。但是它有一个缺点,就是这个数据库中的信息跟实际的情况可能会存在一个时间差。对于刚刚新建的文件、目录,很可能会因为这个数据库尚未更新信息而找不到文件。在这种情况下,往往需要管理员利用updatedb命令来更新这个数据库,然后进行重新查询。而在微软的操作系统中不会遇到这种情况。
【编辑推荐】