Linux编程 1 (文件系统路径表明, 目录结构表达)

一. Linux文件系统路径表明

  
熟识windows系统的,都懂文书路径表示,如C:\User\rich\Documnets\test.doc。

  以linux中目录称为虚拟目录(virtual directory)
根目录是root,根目录下之目及文件会按部就班访问它们的目路径一一列出。如:/home/rich/Documnets/test.doc(斜杠与windows系统相反)。 
路径本身并没供任何有关文件到底存放于什么人物理磁盘上的音讯。 在linux
pc上设置的第一片硬盘称为根驱动器。
根驱动器包含了虚拟目录的基本,其它目录都是自从这边开构建的。

  于根驱动器上创立有专门之目称为挂载点(mount point).
挂载点是虚拟目录中用于分配额外存储设备的目。虚拟目录会于文件及目录出现在那么些挂载点目录中,可是事实上它可蕴藏在此外一个驱动器中。

  日常系统文件会储存在根驱动器中,而用户文件则存储于另一样驱动器中,如下图:
     manbetx手机网页版 1

  上边展现了微机被的有数块硬盘。一块硬盘和虚拟目录的根目录关联起来。剩下的硬盘就足以挂载到虚拟目录结构被的此外地点。在上头的例子中,第二片硬盘被挂载到/home地方。

http://www.jb51.net/LINUXjishu/151820.html 
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:到其他分区上?

二.系统文件目录结构表达

  manbetx手机网页版 2

目录

说明

/

虚拟目录的根目录,通常不会在这里存储文件

/bin

二进制目录,存放用户级的GNU工具

/boot

启动目录,存放启动文件

/dev

设备目录,系统在这里创建设备节点

/etc

系统配置文件目录

/home

主目录,系统在这里创建用户目录

/lib

库目录,存放系统和应用程序的库文件

/media

媒体目录,可移动媒体设备的常用挂载点

/mnt

挂载目录,另一个可移动媒体设备的常用挂载点

/opt

可选目录,常用于存放第三方软件包和数据文件

/proc

进程目录,存放现有硬件及当前进程的相关信息

/root

Root用户的主目录

/sbin

系统二进制目录,存放许多gnu管理员级工具

/run

运行目录,存放系统运作时的运行时数据

/srv

服务目录,存放本地服务的相关文件

/sys

系统目录,存放系统硬件信息的相关文件

/tmp

临时目录,可以在该目录中创建删除临时工作文件

/usr

用户二进制目录,大量用户级的gnu工具和数据文件存储

/var

可变目录,用以存放经常变化的文件,比如日志文件

存储设备举办格式化(即建立文件系统)

1。关于文件系统

针对存储设备分区如故不够的,我们还要对新增分区举行格式化;一个分区只有建立了某种
文件系统后,这一个分区才会利用;建立文件系统经过,就是之所以相应格式化工具格式化分区的过程,这多少个过程和大家于Windows中格式化某个分区为NTFS分
区类似;没有呀奥秘的始末,只是所用之工具不等同过了;

Linux操作系统中,几乎辅助即主流的文件系统,比如NTFS(只念)、FAT(可读而写)、ext2、ext3、reiserfs、hfs
(MAC 操作系统的文件系统)、swap 交流分区…
… 还有局部大家不熟识的操作系统的文件系统等;

在Linux中,我们平时由此的文件系统无非是方例出的这多少个;如果你新增了一个硬盘,可能想格
式化成 Linux的文件系统,最佳采取是 reiserfs 或ext3;近年来ext2已让 ext3替代;我们无引进用ext2文件系统,ext2的行使风险比丰裕;速度极抢的文件系统,当属于reiserfs;reiserfs 还有好多少长度,比如更安全;ext3凡是Redhat认为绝好的文件系统。

相对来说reiserfs仍旧比ext3只要漂亮。

 

 

文件系统概念

1。*nix系统中:凡事皆文件

2。文件

a. )文件之分: 无杂文件是一个序、一个文档、一个数据库,或者是一个目,操作系统还汇合赋予其如下所著之同等的协会:
◆索引节点 又如I节点,在文件系统结构中,包含关于相应文件之音之一个记下,这个信包括文件权限、文件主、文件大小、存放地点、建立日期等。
manbetx手机网页版,◆数据
文件的骨子里内容,它但是拖欠的,也可以老很,并且爆发谈得来之布局。

b.)
Linux系统区分文件称之深浅写

因为圆点“.”最先的文书称是带有文件(dot
files),默认形式下利用ls命令并无可以拿它在屏幕上出示出来。同样,在默认情形下,Shell通配符并无配合配这类公事称。

c.) 文件名通配符

星号(*): 与0独或两个随机的字符相匹配

问号(?): 问号只及一个随机的字符匹配,可以采纳多少个问号

方括号([
]) : 与问号相似,只及一个字符匹配。它们的分别在于,问号与人身自由一个字符匹配,而方括号才与括号中列有底字符之一匹配。例如letter
[123]偏偏同公事letter1、letter2或letter3匹配,但无跟公事 letter12匹。可以用短横线代表一个克外之字符,而不用拿它们一一列出。例如,letter[1-3]是letter[123]的简写模式。不过,要顾限制外之字符都依据升序排列,即[A-Z]是卓有功效的,而[Z-A]举凡没用的。方括号受可以排有三只限,如[A-Za-z]可跟肆意大写或小写
的字符相匹配。方括号被只要以惊讶号“!”起初,表示不与惊叹号后的字符匹配。

 

文件类型

Linux操作系统协助一般文书、目录文件、特别文件和符号链接文件等文件类型。

 

1. 见惯司空文书

 普通文书呢如作正常文件,包含各个长度的配节串。主旨指向这多少个数据尚未展开结构化,只是当一如既往的字节体系把它交给给应用程序。应用程序自己团队同表明这么些数据,平时将其统一为下述类型之一:
    ◆文本文件,由ASCII字符构成。例如,信件、报告同名脚本(Script)的一声令下文本文件,后者由shell解释施行。
    ◆数据文件,由来自接纳程序的数字型和文本型数据做。例如,电子表格、数据库,以及字处理文档。
    ◆可进行之二进制程序,由机器指令和数目做。例如,下面所说之系提供的指令。

    使用file命令能够规定指定文件之种。该令可以拿轻易多独文本称当参数,其貌似下格式是:file 文件名 [文件名…]

2. 目录

目是同样类相当的文件,利用其可整合文件系统的支行树型结构。如同普通文书这样,目录文件呢蕴含数据;但目录文件以及平常文书的区别是,要旨指向那么些数量加以结构化,它是由成对的“I节点号/文件称”构成的列表。
    ◆I节点号是寻觅I节点表的下标,I节点中存放有文件之状态信息。
    ◆文件名是给一个文件分配的公文格局之字符串,用来标识该文件。在一个点名的目录中,任何两宗都无克起同的名。

    每个目录的第一起都代表目录本身,并坐“.”作为其的文书称。每个目录的亚件的名是“..”,表示该目录的父目录。

    应留神:以“.”起初的文件称代表隐含文件,使用带-a选项的ls命令可以列出它们。

    当把公文上加到一个索引中的时段,该目录的大小会增进,以便容纳新文件名。当去文件时,目录的尺寸并无减,而是大旨指向该目录项做上独特标记,以便下次添加一个文书时还以它。ls命令不会见列出这个不受下的起。

Linux系统的目录结构

Linux文件系统采取带链接的树形目录结构,即唯有爆发一个清目录(平日用“/”表示),其中带有下级子目录或文件之音信;子目录中并且只是含蓄更下级的子目录或者文件之音。那样同样重叠一重叠地延长下去,构成一蔸倒置的扶植,如图1所展现。

manbetx手机网页版 3 
贪图1
Linux树型目录结构

当目树中,根节点和中路节点(用圆圈表示)都得是目录,而平日文书和特别文件只能当做“叶子”出现。当然,目录也可看成叶子。

(1)用户主目录
    当注册上系统时,主目录就是当前工作目录。主目录往往在/home目录之下,并且与注册名相同,例如,/home/mengqc。平日主目录包含子目录、数据文件,以及用于注册条件的布置文件。

  1. 相对路径和相对路径

什么状态下行使相对路径名,什
么情形下用相对路径名,取决于哪个种类方法涉及到之目更少。路径短,不仅键盘输入少,而且节省系统查找路径的工夫,进步履效用。例如,当前之干活目录是 /etc/conf/cf.d,假使需要看系统口令文件/etc/passwd,那么用相对路径名是/etc/passwd,使用绝对路径名是..
/../passwd。绝对路径名/etc/passwd涉及的目录有2只,而相对路径名../../passwd提到的目也是3独。此时,使用相对路 径名重使得。

    但是,假若当前工作目录是/home/mengqc/lib,要拜访在 func目录之下的file1文件,那么下绝对路径名是/home/mengqc/lib/func/file1,使用绝对路径名是 func/file1。相对路径名/home/mengqc/lib/func/file1涉及的目有5个,而相对路径名涉的目录就爆发2单。此时,使 用相对路径名再使得。

    虽然不亮当前工作目录及其他目录内的关系,那么最好用相对路径名。

 

3. 设备文件
    在Linux系统中,所有设备还看成同一接近特别文件比较,用户如下普通文书这样对设备举办操作,从而实现设备无关性。然而,设备文件除存放于文件I节点中之信息外,它们不包含其他数。系统利用其来标识各种设施驱动器,核心使用其和硬件配备通信。

    有零星好像特别配备文件,它们对准诺不同类其它配备驱动器:
    ◆字符设备 最常用的设备项目,允许I/O传送任意大小的数额,取决于设备本身的容量。使用这种接口的装备连终端、打印机和鼠标。
    ◆块设备 这类设备利用主旨缓冲区的机动缓存机制,缓冲区进行I/O传送总是坐1KB为单位。使用这种接口的设备连硬盘、软盘和RAM盘。

 

 

Linux系统的文件系统路径

1。路径分为相对路径和相对路径。

相对路径是自从/(也受称彻底目录)最先的,比如/usr、/etc/X11。假诺一个路径是由/开首之,它必然是相对路径。

相对路径是坐 . 或 .. 起始的,.表示用户眼前操作所处之职位,而.. 代表上级目录;在路径中,.表示用户眼前所处之目,而..上级目录,要把.和..当做目录来拘禁。

2。[root@localhost
~]# pwd 注:判断用户眼前所处之地方,也就是说他到底在哪?

use
when you are lost.

3。

[root@localhost
~]# cd . 注:我们登。

[root@localhost
~]# cd .. 注:我们切入/root的上司目录。

只顾,cd之后爆发个空格。

 

4。~ 表示即用户自己之小目录;

~USER 表示用户称也USER的下目录

如:

cd
~ 回到当前用户之舍目录;

cd
~USERNAME 回到USERNAME用户的寒目录;

 

 

 

  文件系统及其安装

    一个硬盘上得又有两个文件系统,每个文件系统占据硬盘的一个独立分
区。Linux文件系统可以因需要时刻装卸,从而实现公文存储空间的动态扩展与信息安全。在网初启时,往往只是来一个文件系统被安装上,即到底文件系统,
其达成之文书着重是保证系统正常运作的操作系统的代码文件,以及多言语编译程序、命令解释程序和相应的下令处理程序等组成的文书,其余,还有大量底用户文
件空间。根文件系统一旦设置上,则以合连串运行过程遭到是不可知脱的,它是系统的焦点有。

    其余的文件系统(例如,由软盘构成的文件系统)可以因需要(如自硬盘向软盘复制文件),作为子系动态地设置至主网被,如图5所展现。其中,mnt是也安装子文件系统而特设的安装节点。

 

    经过设置后,主文件系统与子文件系统就重组一个起完目录层次结构的、容量还特另外文件系统。这种装置好高及几级。就是说,若干子文件系统可以并列安装到主文件系统上,也得以一个衔接一个地错并安装及主文件系统上。

    已装之分层文件系统也只是从全文件系统上卸下来,恢复生机安装前之单独状态。

    1.树文件系统
    当硬盘完成分区后,应该以拖欠分区上树文件系统。这同一步工作是透过mkfs工具来好的。例如,假若急需在分区/dev/hda1上建立ext2文件系统,并检查坏块,应该用以下命令:
    # mkfs -c /dev/hda1

    注意,只有root用户才可以树立或者设置/卸下文件系统。

    2.安装文件系统
    创设文件系统后,需要运用命令mount将该文件系统设置及主文件系统中。命令mount有两只重要参数:
    ◆需要安装的文件系统类型,用“-t
fstype”选项来指定,这同mkfs中的-t选项是如出一辙的。
    ◆所急需访问的文件系统所于分区名,通常是坐落目录/dev中之专门配备文件;假诺要装网络文件系统时,就动该服务器上输出的目录名。
    ◆ 安装新文件系统的路径名,也就是放置新文件系统的安装点(Mount
Point)。平时就是一个空目录名,并且是特别为安新文件系统设准备的。在Linux系统下,目录/mnt是常用之文件系统安装目录,缺省事态下, CDROM和软盘驱动器都分别安装在其子目录下。当然,文件系统也可于安装到另外空目录中。例如,需要用MSDOS文件系统分区/dev/hda1安 到系统的空目录/dos中,应该运用以下命令:
    # mount -t msdos /dev/hda1 /dos

    3.卸载文件系统
    在关闭系统在此之前,为了确保文件系统的共同体
性,所有安装的文件系统都无法不为卸载。平日在/etc/fstab文件被定义的文件系统都能活动卸载。可是,对于手工mount的文件系统,在关闭系统
在此之前要手工卸载。有时候也用在系工作过程遭到手工卸载某个文件系统。手工卸载文件系统必须使用umount命令,umount命令将分区名或分区的安
装点作为参数,格式如下:

umount <</font>分区名或分区的安装点>

    例如,需要将都装到/mnt/floppy目录下之软盘卸载,可以使用以下命令:
    # umount /mnt/floppy

    要小心,对于在下的文件系统,不可能使用umount命令卸载。

照提我们介绍了关于Linux系统中时时因而命令格式、文件与目录的定义、文件类型、目录结构、文件之存取权限、文件系统的定义及其安装命令等。有关文件操作的命很多,读者可通过上机学习各个指令的利用方法,精晓该基本效用。(T111)

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图