咱们这里假设,咱们就是设计者,若是咱们设计一个文件系统,咱们会如何去作呢?mysql
咱们须要一个起点, 这个起点就叫根目录,用“/”来表示,而后咱们须要启动Linux,那么咱们就会把全部核心的启动文件(包括Linux核心自己)都放到一个“/boot”目录下。linux
当系统启动后,咱们须要执行一些基本命令在操做系统,这些命令都会放到“/bin”目录下。而后这些命令可能会用到一些库,这些库就被放到“/lib”下面,而这些库可能会会用到一些设备驱动文件,sql
那么这些驱动文件就会放到“/dev”目录下。apache
/:根目录
/boot:系统启动和内核
/bin :系统基本命令 (bin是binary的缩写)
/lib : 系统库(不能直接运行的代码)(lib是libary的缩写)
/dev : 设备驱动 (dev是device的缩写)
到目前为止只用5个目录,很简单吧。网络
什么是”/usr” ,”/etc”和“/var“操作系统
当用户启动系统之后,要作一些更加复杂的工做,这时候就会涉及到一个叫“/usr”,这个状况稍微有些复杂,是一个难点。不过也很容易解释清楚。设计
早期的unix系统都有不少块硬盘,当时硬盘的容量都很小, 因此每每一个硬盘只放一个目录,好比“/boot”能够放在一个单独的”boot”盘上,上面提到的5个目录,是系统运行必不可少的。unix
而当系统启动之后,咱们须要其余一些用于具体工做的程序时,咱们就会加载一个“/usr”目录,上面放重要的运行程序。it
容易引发疑惑的是”usr”这个名字, 在历史上,原来这个确实是user的缩写,不过如今和user没有任何关系了, 你能够把它当作是”universal software resource”的缩写。io
这个“/usr”有点相似Windows里面的Program Files。
所以 /bin 和 /usr/bin的区别,就是 /bin里面的程序更加核心
这时候,不少人会有疑问, 咱们记住哪些命令在/bin 仍是在/usr/bin呢?
放心,因为全部的bin目录都会登记到系统变量PATH里面, 所以不管你在任何当前目录中,只要输入命令文件的名称,系统都会帮你找到这个命令并运行。
要点:
一、/usr上面通常都是只读文件,数据文件和配置文件不放在上面(放到哪里,后面会讲)
2,没有“/usr”,linux系统也能正常运行
二、/usr能够被多台电脑共享(这里体现Linux系统的网络性)
因为/usr只放只读文件,那么配置文件和数据文件放哪里呢?这里就出现了2个新的目录“/etc”和“/var”
这里容易初学者迷惑的就是这个2个目录的名字。
在历史上 “etc“是 “etcetera”,中文意为“其余”, 如今这个和“其余”没有任何关系, 就是专门存放配置文件的地方,能够理解为“editable text configuration”的缩写
好比 /etc/mysql就是放mysql的配置文件 /ect/apache2/就是apache2的配置文件
在历史上“var” 是 “variable”,中文意为“变更”,如今主要用来存放log,lock等文件。
例如 /var/mysql就是用来存放mysql的log
当咱们运行程序后,会产生不少本身的成果,这些成果放哪里呢? 这里就出现了一个“/home”目录,不过你不能直接放到“/home”目录下, 由于Linux是个多用户操做系统, 因此系统会有一个以用户的名字命名的目录。
例如:用户是xiaoming ,那么目录就是/home/xiaoming ,这个目录也能够用“~“来表示。