Linux下的文件系统为树形结构,入口为/ 树形结构下的文件目录: 无论哪个版本的Linux系统,都有这些目录,这些目录应该是标准的。各个Linux发行版本会存在一些小小的差异,但总体来说,还是大体差不多。
1. / 文件系统的入口,最高一级目录;
2. /bin 基础系统所需要的命令位于此目录,是最小系统所需要的命令,如:ls, cp, mkdir等。
这个目录中的文件都是可执行的,一般的用户都可以使用。
3. /boot 包含Linux内核及系统引导程序所需要的文件,比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录;
4. /dev 设备文件存储目录,比如声卡、磁盘... ... 这是一个非常有趣的目录,是Linux文件系统的一个闪亮的特性 - 所有对象都是文件或目录。仔细观察这个目录你会发现hda1, hda2等, 它们代表系统主硬盘的不同分区。
/dev/cdrom和/dev/fd0代表你的CDROM驱动器和floppy驱动器。看上去可能有些奇怪,但比较文件和硬件的特性这却是十分合理的。它们都可以读出和写入。例如/dev/dsp,这个文件代表你的扬声器。那么写入这个文件的数据都回传送到喇叭。试一试 'cat /etc/lilo.conf > /dev/dsp' 你会听到一些声音。这是你的 lilo.conf 文件的声音!同样,向 /dev/ttyS0 ( COM 1 ) 读出或写入数据你可以和接到上面的设备进行通讯。
5. /etc 存放系统程序或者一般工具的配置文件。
如安装了apache2之后,配置文件在/etc/apache2/目录下。
/etc/init.d 这个目录是用来存放系统或服务器以System V模式启动的脚本,这在以System V模式启动或初始化的系统中常见。
如apache2的/etc/init.d apache2 start|stop|restart MySQL为/etc/init.d mysql start|stop|restart 6. /home 普通用户默认存放目录 Linux 是多用户环境,所以每一个用户都有一个只有自己可以访问的目录(当然管理员也可以访问)。它们以 /home/username 的方式存在。这个目录也保存一些应用对于这个用户的配置,比如 IRC, X 等。
7. /lib 库文件存放目录这里包含了系统程序所需要的所有共享库文件,类似于 Windows 的共享库 DLL 文件。
8. /lost+found 在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。 有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。
Linux 应该正确的关机。但有时你的系统也可能崩溃掉或突然断电使系统意外关机。那么启动的时候 fsck 将会进行长时间的文件系统检查。Fsck 会检测并试图恢复所发现的不正确的文件。被恢复的文件会放置在这个目录中。所恢复的文件也许并不完整或并不合理,但毕竟提供了一些恢复数据的机会。
9. /media 即插即用型存储设备的挂载点自动在这个目录下创建,比如USB盘系统自动挂载后,会在这个目录下产生一个目录 ;CDROM/DVD自动挂载后,也会在这个目录中创建一个目录,类似cdrom 的目录。这个只有在最新的发行套件上才有. 10. /mnt /mnt 这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom 等目录。有时我们可以把让系统开机自动挂载文件系统,把挂载点放在这里也是可以的。比如光驱可以挂载到/mnt/cdrom 。
这是一个普通的加载目录,在这里你可以加载你的文件系统或设备。
加载是使一个文件系统对于系统可用的过程。
在加载后你的文件可以在加载目录下访问。
这个目录通常包含加载目录或用于加载软驱和光驱的子目录。
如果需要,你也可以在这里建立其它的加载目录。
对于加载目录的位置并没有强制性的要求,你可以在系统的任意位置建立加载目录。
建立 /mnt 只是为了使系统更工整的惯例。
11. /opt 表示的是可选择的意思,有些软件包也会被安装在这里,也就是自定义软件包,比如在Fedora Core 5.0中,OpenOffice就是安装在这里。有些我们自己编译的软件包,就可以安装在这个目录中;通过源码包安装的软件,可以通过 ./configure --prefix=/opt/,将软件安装到opt目录。
这个目录包含所有默认系统安装之外的软件和添加的包。
12. /proc 操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录是伪装的文件系统proc的挂载目录,proc并不是真正的文件系统。
这是系统中极为特殊的一个目录,实际上任何分区上都不存在这个目录。它实际是个实时的、驻留在内存中的文件系统。
13. /root Linux超级权限用户root的家目录;
14. /sbin 大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令;
这个目录和
/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin 目录是相似的; 我们记住就行了,凡是目录sbin中包含的都是root权限才能执行的。
15. /tmp 临时文件目录,有时用户运行程序的时候,会产生临时文件。 /tmp就用来存放临时文件的。/var/tmp目录和这个目录相似。
许多程序在这里建立lock文件和存储临时数据。有些系统会在启动或关机时清空此目录。
16. /usr 这个是系统存放程序的目录,比如命令、帮助文件等。
这个目录下有很多的文件和目录。
当我们安装一个Linux发行版官方提供的软件包时,大多安装在这里。
如果有涉及服务器配置文件的,会把配置文件安装在/etc目录中。
/usr目录下包括:
涉及字体目录/usr/share/fonts ,
帮助目录 /usr/share/man或/usr/share/doc,
普通用户可执行文件目录/usr/bin 或/usr/local/bin 或/usr/X11R6/bin ,
超级权限用户root的可执行命令存放目录,比如 /usr/sbin 或/usr/X11R6/sbin 或/usr/local/sbin 等;
还有程序的头文件存放目录/usr/include。
/usr/bin 这个目录是可执行程序的目录,普通用户就有权限执行; 当我们从系统自带的软件包安装一个程序时,他的可执行文件大多会放在这个目录。
/usr/sbin 这个目录也是可执行程序的目录,但大多存放涉及系统管理的命令。只有root权限才能执行;相似目录是/sbin 或/usr/local/sbin或/usr/X11R6/sbin等;
/usr/local 这个目录一般是用来存放用户自编译安装软件的存放目录;一般是通过源码包安装的软件,如果没有特别指定安装目录的话,一般是安装在这个目录中。这个目录下面有子目录。
/usr/lib 和/lib 目录相似,是库文件的存储目录;
/usr/share 系统共用的东西存放地,比如 /usr/share/fonts 是字体目录,是用户都共用的吧。
/usr/share/doc和/usr/share/man帮助文件,也是共用的吧;
/usr/src 是内核源码存放的目录,比如下面有内核源码目录,比如 linux 、linux-2.xxx.xx 目录等。有的系统也会把源码软件包安装在这里。比如Fedora/Redhat,当我们安装file.src.rpm的时候,这些软件包会安装在 /usr/src/redhat相应的目录中。请参考: 《file.src.rpm 使用方法的简单介绍》 。另外Fedhat 4.0 5.0,他的内核源码包的目录位于/usr/src/kernels目录下的某个目录中(只有安装后才会生成相应目录);
17. /var 这个目录的内容是经常变动的,看名字就知道,我们可以理解为vary的缩写,/var下有/var/log 这是用来存放系统日志的目录。
/var/www目录是定义Apache服务器站点存放目录;/var/lib 用来存放一些库文件,比如MySQL的,以及MySQL数据库的的存放地;
/var/log 系统日志存放,分析日志要看这个目录的东西;
/var/spool 打印机、邮件、代理服务器等假脱机目录;
Windows和Linux文件系统的区别 Linux文件系统与Windows文件系统有很大的差别。
Linux文件系统作为开端,只有一个单独的顶级目录结构。所有一切都从 '根' 开始,用 '/' 代表, 并且延伸到子目录。DOS/Windows有不同的分区,同时目录都存于分区上。linux则通过 '加载' 的方式把所有分区都放置在 '根' 下制定的目录里。
一句话总结:Windows下,目录结构属于分区;Linux下,分区 '加载' 于目录结构。 在Windows下, 启动时检测不同的分区并被赋予一个分区字母。在Linux下除非你加载一个分区或设备,否则系统不会知道那个分区的存在。这看上去也许不是访问分区或设备的最方便的方式,但是这种方式提供了伟大的机动性。
这种构建的方式被称为统一的文件系统,超越了Windows所使用的方式。举个使用 /usr 的例子。这个目录包含了大多数的系统可执行文件。在Linux文件系统下,你可以选择把它加载为其他分区甚至网络上的其他计算机。系统不会感知其中的不同,因为它表现出的只是本地目录结构下众多的目录中的一个而已。你是否有妄图在Windows下移动可执行文件和数据,而得到的是不得不去修改注册表或干脆蓝屏?你可曾奢望过移动 C: 到其他分区上?
1。关于文件系统
对存储设备分区还是不够的,我们还要对新增分区进行格式化;一个分区只有建立了某种文件系统后,这个分区才能使用;建立文件系统过程,就是用相应格式化工具格式化分区的过程,这个过程和我们在Windows中格式化某个分区为NTFS分区类似;没有什么高深的内容,只是所用的工具不一样罢了;
Linux操作系统中,几乎支持目前主流的文件系统,比如NTFS(只读)、FAT(可读可写)、ext2、ext3、reiserfs、hfs (MAC 操作系统的文件系统)、swap 交换分区… … 还有一些咱们不熟悉的操作系统的文件系统等;
在Linux中,我们常用的文件系统无非是上面例出的这些;如果您新增了一个硬盘,可能想格 式化成 Linux的文件系统,最佳选择是 reiserfs 或ext3;目前ext2已被 ext3取代;我们不推荐用ext2文件系统,ext2的使用风险比较大;速度最快的文件系统,当属reiserfs;reiserfs 还有很多优点,比如更安全;ext3是Redhat认为最好的文件系统。
文件系统概念
1。*nix系统中:一切皆文件;
2。文件
a. )文件的成分: 无论文件是一个程序、一个文档、一个数据库,或者是一个目录,操作系统都会赋予它如下所示的同样的结构:
◆索引节点又称I节点,在文件系统结构中,包含有关相应文件的信息的一个记录,这些信息包括文件权限、文件主、文件大小、存放位置、建立日期等。
◆数据文件的实际内容,它可以是空的,也可以非常大,并且有自己的结构。
以圆点“.”开头的文件名是隐含文件(dot files),默认方式下使用ls命令并不能把它们在屏幕上显示出来。同样,在默认情况下,Shell通配符并不匹配这类文件名。
方括号([ ]) : 与问号相似,只与一个字符匹配。它们的区别在于,问号与任意一个字符匹配,而方括号只与括号中列出的字符之一匹配。例如letter [123]只与文件letter1、letter2或letter3匹配,但不与文件 letter12匹配。可以用短横线代表一个范围内的字符,而不用将它们一一列出。例如,letter[1-3]是letter[123]的简写形式。但是,要注意范围内的字符都按升序排列,即[A-Z]是有效的,而[Z-A]是无效的。方括号中可以列出多个范围,如[A-Za-z]可以和任意大写或小写 的字符相匹配。方括号中如果以惊叹号“!”开始,表示不与惊叹号后的字符匹配。
Linux操作系统支持普通文件、目录文件、特别文件及符号链接文件等文件类型。
2. 目录
目录是一类特殊的文件,利用它可以构成文件系统的分层树型结构。如同普通文件那样,目录文件也包含数据;但目录文件与普通文件的差别是,核心对这些数据加以结构化,它是由成对的“I节点号/文件名”构成的列表。
Linux文件系统采用带链接的树形目录结构,即只有一个根目录(通常用“/”表示),其中含有下级子目录或文件的信息;子目录中又可含有更下级的子目录或者文件的信息。这样一层一层地延伸下去,构成一棵倒置的树,如图1所示。
文件系统的目录结构” align=bottom alt=”” src=”http://tech.ccidnet.com/col/attachment/2004/12/366057.jpg” border=1 real_src=”http://tech.ccidnet.com/col/attachment/2004/12/366057.jpg”>
图1 Linux树型目录结构
在目录树中,根节点和中间节点(用圆圈表示)都必须是目录,而普通文件和特别文件只能作为“叶子”出现。当然,目录也可以作为叶子。
(1)用户主目录
-
绝对路径和相对路径
什么情况下使用绝对路径名,什么情况下使用相对路径名,取决于哪种方式涉及到的目录更少。路径短,不仅键盘输入少,而且节省系统搜索路径的时间,提高执行效率。例如,当前的工作目录是 /etc/conf/cf.d,如果需要访问系统口令文件/etc/passwd,那么使用绝对路径名是/etc/passwd,使用相对路径名是.. /../passwd。绝对路径名/etc/passwd涉及的目录有2个,而相对路径名../../passwd涉及的目录却是3个。此时,使用绝对路 径名更有效。
3. 设备文件
Linux系统的文件系统路径
绝对路径是从/(也被称为根目录)开始的,比如/usr、/etc/X11。如果一个路径是从/开始的,它一定是绝对路径。
相对路径是以 . 或 .. 开始的,.表示用户当前操作所处的位置,而.. 表示上级目录;在路径中,.表示用户当前所处的目录,而..上级目录,要把.和..当做目录来看。
2。[root@localhost ~]# pwd 注:判断用户当前所处的位置,也就是说他到底位于哪?
use when you are lost.
3。
[root@localhost ~]# cd . 注:我们进入。
[root@localhost ~]# cd .. 注:我们切入/root的上级目录。
注意,cd之后有个空格。
~USER 表示用户名为USER的家目录
如:
cd ~ 回到当前用户的家目录;
cd ~USERNAME 回到USERNAME用户的家目录;
文件系统的目录结构” align=bottom alt=”” src=”http://tech.ccidnet.com/col/attachment/2004/12/366065.jpg” border=1 real_src=”http://tech.ccidnet.com/col/attachment/2004/12/366065.jpg”>
图5 文件系统安装
umount <</font>分区名或分区的安装点> |
本讲我们介绍了有关Linux系统中常用命令格式、文件和目录的概念、文件类型、目录结构、文件的存取权限、文件系统的概念及其安装命令等。有关文件操作的命令很多,读者可以通过上机学习各种命令的使用方法,掌握其基本功能。(T111)