Hello,大家好。首先得感谢您来看我写的博客,希望您在看完以后能对我写的提出一些意见,比如说哪儿些看不懂、哪儿写的不对等等。在这先谢谢大家了!别的不多说了,下面让我们来简单的了解下Linux的目录结构与权限等知识吧!

    首先,让我了解下Linux的哲学思想

 
  
  1. 1、一切皆文件;(我们可以这样理解:所有的东西,程序、设备、内存都模拟成文件。
  2. 我们可以修改这些文件。这与Windows系统有根本性的区别) 
  3.  
  4. 2、由大量的体积小、目标单一的小程序组成; 
  5.  
  6. 3、组合小程序,通常使用管道进行连接,来完成更复杂繁琐的任务;(通道到后面学过
  7. 之后提到) 
  8.  
  9. 4、通过配置文件来保存程序的配置信息,而配置文件通常是纯文本文件。(这就意味着
  10. 我们只要有个文本编辑器,就可以对大多数服务的进行配置了。是不是很方便啊!) 

    让我们再了解下Linux工作的特性: 

 
  
  1. 1、严格区分大小写;(例如:File,FIle,FILE等,这些都是不同的文件。是否理解
  2. 了呢?呵呵) 
  3.  
  4. 2、不以文件名的后缀判断文件类型。(一谈到文件类型,大家能想到大概就是Windows
  5. 操作系统下的文件类型,比如.txt、.doc、.sys、.mp3、.exe等,根据这些后缀就能
  6. 判断文件的类型。但是在Linux中一个文件是否能被执行,和后缀名没有太大的关系,主
  7. 要看文件的属性有关。不过为了方便我们分辩、查找和应用,使用一些后缀还是很有必要
  8. 的。)

    在Linux中所有的目录都在根目录下,这与Windows的目录结构不同,Windows中每个分区就代表一个根目录。下面我们来简单的认识下Linux的目录结构。说到目录结构,我们就不得不提下它所依照的标准了,它所依照的标准是FHS标准,正是因为有了这个标准,才使得每一个版本的Linux目录结构都相同,避免了我们换一个版本的Linux就从新学习一下Linux目录结构的这个问题。

    FHS标准使得众多的Linux发布包有了可以遵循的标准,使得软件和用户可以预测已经安装了的文件和目录的位置。它定义了如下的内容。

 
  
  1. 1、定义了文件系统中每个区域的用途; 
  2.  
  3. 2、定义了所需要的最小构成的文件和目录; 
  4.  
  5. 3、给出了例外处理和矛盾的特殊例子。  

    FHS实际上仅是规范在根目录(/)下面各个主要目录应该放什么样的文件。FHS定 义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc应该要放置设置文件,/bin与 /sbin则应该要放置可执行文件等等。第二层则是针对 /usr及 /var这两个目录的子目录来定义。例如 /var/log放置系统登录文件、/usr/share放置共享数据等等。

    由于FHS仅是定义出最上层(/)及子层(/usr, /var)的目录内容应该要放置的文件数据,因此,在其他子目录层级内,就可以随开发人员自行配置了。

    下面我们来简单了解下目录内容和用途:     

 
  
  1. /:根目录; 
  2.  
  3.   /bin(binary):放置的是二进制文件。可执行的命令;非管理类的命令。都可以
  4. 使用。(通常是系统启动就需要的文件); 
  5.  
  6.   /sbin:管理类的命令,通常只有管理员才能使用;
  7.  
  8.   /lib:存放的是库文件(系统级别的); 
  9.  
  10.   /etc:大部分可执行文件的配置文件; 
  11.  
  12.      /etc/sysconfig:网络相关的文件。服务额外配置文件,及网络设备相关配置
  13. 文件。 
  14.  
  15.      /etc/init.d:服务的管理脚本。 
  16.  
  17.   /usr:(类似windows的)平常管理用的文件 ; 
  18.  
  19.      /usr/bin 
  20.  
  21.      /usr/sbin 
  22.  
  23.      /usr/etc 
  24.  
  25.      /usr/lib 
  26.  
  27.      /usr/include (一般放置头文件) 
  28.  
  29.      /usr/local(第三方软件) 
  30.  
  31.          /usr/local/bin 
  32.  
  33.          /usr/local/sbin 
  34.  
  35.          /usr/local/etc 
  36.  
  37.          /usr/local/lib 
  38.  
  39.      /boot:(鞋子)引导文件的目录。(系统启动需要的文件)。Kernel(内核)
  40. ,bootloader(grub) ; 
  41.  
  42.      /dev:设备文件所在目录(特殊文件)c、b(终端设备是字符文件) ; 
  43.  
  44.      /home/USERNAME,/root(用户的主目录); 
  45.  
  46.      /lost+found:系统意外关闭,内存中存在的内容会写入到这个目录下; 
  47.  
  48.      /media,/mnt:挂载点目录,,media通常挂载移动设备,mnt通常挂载固定的
  49. 备; 
  50.  
  51.      /misc:杂项 ; 
  52.  
  53.      /opt:有些第三方软件,把此目录当成默认安装位置。Nessus,Oracle; 
  54.  
  55.      /proc:伪目录(这些文件不在磁盘上存在)(内存中的内核相关信息的映射);
  56.  
  57.      /sys:比如像磁盘这样的存储设备或某些总线设备的驱动程序相关属性信息; 
  58.  
  59.      /srv:服务运行中中间文件的存放位置; 
  60.  
  61.      /tmp:临时文件目录; 
  62.  
  63.      /var:可变的 ;
  64.  
  65.          /var/log:系统日志文件;
  66.  
  67.          /var/run:每一个服务运行的Pid文件。(文件标识符); 
  68.  
  69.          /var/mai:未被读取的邮件存放位置。

    至此,我么已经大致了解了Linux的目录结构。另外,上面我们既然提到了Linux的文件类型,那我们来说说Linux都有那儿些文件类型吧!

 
  
  1. -:普通文件 
  2.  
  3. d:目录文件 
  4.  
  5. l:符号连接(软链接)(特殊文件) 
  6.  
  7. c:字符设备文件 
  8.  
  9. b:块设备文件 
  10.  
  11. p:管道式文件(不常见) 
  12.  
  13. s:套接字文件(不常见)

    说了这么多,最后来说下权限的问题吧!对于文件和目录,它们的权限含义有些不同,请看下面的介绍

     文件权限:

 
  
  1. r:读 
  2.  
  3. w:写 
  4.  
  5. x:执行

    目录权限:

 
  
  1. r:ls 查看文件 
  2.  
  3. w:建立或删除文件 
  4.  
  5. x:cd切换至此目录,或者ls -l文件

 
  
  1. -:代表没有权限 

    我们常常看到用数字来说权限,下面给出一个对应关系,可以从中找到数字所对应的权限

 
  
  1. 权限    二进制    八进制 
  2.  
  3. ---     000       0 
  4.  
  5. --x    001       1 
  6.  
  7. -w-     010       2 
  8.  
  9. -wx     011       3 
  10.  
  11. r--    100       4 
  12.  
  13. r-x     101       5 
  14.  
  15. rw-    110       6 
  16.  
  17. rwx     111       7

    再来个例子说明下,如图

    我们重点说下权限问题,后面的内容一带而过。从图中我们看到了-rw-r--r--的内容。其实这就是文件的权限。

    假设这个文件什么权限都没有,它该表示成什么呢?很明显是----------。 

 
  
  1. 第一个-所在的位置代表的是文件类型。从图中我们可以看出这是个普通文件。可以对应
  2. 上面我们所说的文件类型。后面9个-所代表的就是文件的权限了,并且将其分为三部分,
  3. 每三个一部分。从前向后分别代表:拥有文件的用户的权限、文件所在组的权限、其他用
  4. 户的权限,其用数字表示权限便是6 4 4; 
  5.  
  6. 数字1:表示文件的应连接的次数数(目录一般为2); 
  7.  
  8. 第一个root:文件的所有者(属主); 
  9.  
  10. 第二个root:代表文件所在的组(属组 ); 
  11.  
  12. 数字95:代表文件大小; 
  13.  
  14. 日期Feb 6 2012:代表文件最近被修改(改内容)的时间。

     感觉写的不是很好,很罗嗦!不过没办法啊,没写过博客啊!不过以后会慢慢提高写的水平的!呵呵。后面会学的越来越多的,我也会将学到的拿出来与大家分享。希望可以共同提高。Come on!