Linux文件目录详解

Posted by MaggicQ on June 17, 2016

Unix的哲学:

  • 小即是美
  • 让每一个程序只做好一件事
  • KISS(keep it simple,stupid)

Linux系统历史简介

1969年,Ken Thompson(C 语言之父)利用汇编语言开发了 FIle Server System(Unics,即 UNIX 的原型),后来在他发明了C语言之后,他又用C语言写出了UNIX的内核,这很好的改善了原来由于汇编语言问题所造成的系统对于硬件的依赖,使得Unix得到了很大的优化,并渐渐流行起来。

1984 年,因为当时已经流行的 UNIX处于商业需要 规定:“不能对学生提供源码”,一名来自MIT的Tanenbaum 老师自己编写兼容于 UNIX 的Minix,用于教学;

1991 年 10 月,Linus Torvalds(Linux 之父)在赫尔辛基大学接触 UNIX ,他从 MINIX 开始入手,计划开发一个比 MINIX 性能更好的操作系统。他第一次发行的版本很快吸引了一些黑客。尽管最初的 Linux 并没有多少用处,但由于一些黑客的加入使它很快就具有了许多吸引人的特性。在开源的巨大力量之下,Linux一步步发展到了今天,因为它的高度可定制性,它深得程序员们的喜爱。

Linux系统和文件

linux系统下有着一切皆文件的思想,所以理解linux文件对于学习好linux显得十分重要。linux以树形目录结构来构建整个系统,从逻辑上来说Linux的磁盘是挂载(mount )在目录上的,每一个目录都能使用本地磁盘分区的文件系统。

挂载(mount)的概念:

mount 是UNIX系统上的命令。用户在UNIX操作系统的机器上开启一个文件以前,包含该文件的文件系统必须先进行挂载的动作,此时使用者要对该文件系统下mount的指令以进行挂载。通常是在使用USB或其他可移除存储装置上,而根目录则保持挂载的状态。但Unix文件系统可以对应一个文件而不一定要是硬体装置。

文件系统:

是计算机一种存储和组织计算机数据的方法,它使得对其存取和查找变得容易,文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,这样,我们存储以及查看数据时就不需要关心这些数据存储在硬盘的地址为多少的数据块上,只需要记住这个文件的所属目录和文件名。

Linux一些特定目录的作用

/:根目录

/bin :启动时会用到的命令,即在文件系统还没有被挂载时,也能够使用的命令

/boot: 包含grub 开机设置相关文件(引导程序) 以及内核文件

/dev: 包含所有的系统设备文件。从此目录可以访问各种系统设备。如CD-ROM,磁盘驱动器,调制解调器和内存等。在该目录中还包含有各种实用功能,如用于创建设备文件的MAKEDEV

/etc: 包含系统特有的可编辑配置文件,即用于控制程序运行的本地文件

/home: 用户家目录,存储普通用户的个人文件,每一个用户的主目录均在/home下以自己的用户名命名,比如 /home/luopeixiang

/lib: 用于存放程序的动态库和模块文件

/lib64: 64位系统有这个文件夹,64位程序的库。 术语“32 位”和“64 位”是指计算机的处理器(也称为“CPU”)处理信息的方式。64 位版本的 Windows 可处理大量的随机存取内存 (RAM),其效率远远高于 32 位的系统。

/lost+found: 这并不是Linux目录结构的组成部分,而是ext3文件系统用于保存丢失文件的地方,不恰当的关机操作和磁盘错误均会导致文件丢失。除了“/”分区上的这个目录外,在每个分区上均有一个lost+found目录。

/media: 用于挂载本地磁盘或者其他存储设备,当前的操作系统通常会把U盘等设备自动挂载到该文件夹下。

/mnt :用于挂载其他临时文件系统,一般情况下这个目录是空的,而在我们将要挂载分区时在这个目录下建立目录,再将我们将要访问的设备挂载在这个目录上,这样我们就可访问文件了。

/opt: 发行版附加的一些软件包(比如Ubuntu kulin 附带的wps)的安装目录,多数第三方软件的默认安装位置。

/proc: 内核与进程镜像,它是存在于内存中的虚拟文件系统。里面保存了内核和进程的状态信息。

/root: root用户的家目录

/sbin: 这里面很多只能是root用户才能执行的命令,一旦系统进行更新,备份,还原和开关机用到的命令(系统管理命令)。

/srv: 存放服务进程所需的数据文件(如www网络服务和ftp服务)和一些服务的执行脚本 sys

/tmp: 存放各种临时文件,所有用户都可以在这个目录中创建、编辑文件。但只有文件拥有者才能删除文件。

/usr: 用于存储只读用户数据的第二层次;包含绝大多数的(多)用户工具和应用程序,其下的目录结构与根目录相似,但根目录中的文件多是系统级的文件,而/usr中是用户级的文件,一般与具体的系统无关。

/usr/bin: 非必要可执行文件(在单用户模式中不需要);面向所有用户

/usr/include: 标准包含头文件

/usr/lib : /usr/bin和/usr/sbin中二进制文件的库

/usr/lib64:64位系统有这个文件夹,64位程序的库。

/usr/local:本地数据的第三层次,具体到本台主机

/usr/sbin: 非必要的系统二进制文件,例如大量网络服务的守护进程

/usr/share: 体系结构无关(共享数据)

/usr/src:源代码,例如:内核源代码及其头文件。不过一般的发行版是不会保留内核源码在这里的,需要用户自己下载安装

/var: 存放变量文件,在正常运行时系统中内容不断变化的文件,如日志,脱机文件和临时电子邮件文件。有时是一个单独的分区。