目录 应放置档案内容
/bin 系统有很多放置执行档的目录,但/bin比较特殊。因为/bin放置的是在单人维护模式下还能够被操作的指令。 在/bin底下的指令可以被root与一般帐号所使用,主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的指令。
/boot 这个目录主要在放置开机会使用到的档案,包括Linux核心档案以及开机选单与开机所需设定档等等。 Linux kernel常用的档名为:vmlinuz,如果使用的是grub这个开机管理程式, 则还会存在/boot/grub/这个目录喔!
/dev 在Linux系统上,任何装置与周边设备都是以档案的型态存在于这个目录当中的。 你只要透过存取这个目录底下的某个档案,就等于存取某个装置啰~ 比要重要的档案有/dev/null, /dev/zero, /dev/tty, /dev/lp*, /dev/hd*, /dev/sd*等等
/etc 系统主要的设定档几乎都放置在这个目录内,例如人员的帐号密码档、 各种服务的启始档等等。一般来说,这个目录下的各档案属性是可以让一般使用者查阅的, 但是只有root有权力修改。FHS建议不要放置可执行档(binary)在这个目录中喔。比较重要的档案有: /etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/ 等等。另外,其下重要的目录有:

  • /etc/init.d/:所有服务的预设启动 script 都是放在这里的,例如要启动或者关闭 iptables 的话:‘ /etc/init.d/iptables start’、‘/etc/init.d/iptables stop’
  • /etc/xinetd.d/:这就是所谓的super daemon管理的各项服务的设定档目录。
  • /etc/X11/:与 X Window 有关的各种设定档都在这里,尤其是 xorg.conf 这个 X Server 的设定档。
/home 这是系统预设的使用者家目录(home directory)。在你新增一个一般使用者帐号时, 预设的使用者家目录都会规范到这里来。比较重要的是,家目录有两种代号喔:
~:代表目前这个使用者的家目录,而
~dmtsai :则代表 dmtsai 的家目录!
/lib 系统的函式库非常的多,而/lib放置的则是在开机时会用到的函式库,
以及在/bin或/sbin底下的指令会呼叫的函式库而已。
什么是函式库呢?你可以将他想成是‘外挂’,某些指令必须要有这些‘外挂’才能够顺利完成程式的执行之意。 尤其重要的是/lib/modules/这个目录, 因为该目录会放置核心相关的模组(驱动程式)喔!
/media media是‘媒体’的英文,顾名思义,这个/media底下放置的就是可移除的装置啦!
包括软碟、光碟、DVD等等装置都暂时挂载于此。常见的档名有:/media/floppy, /media/cdrom等等。
/mnt 如果你想要暂时挂载某些额外的装置,一般建议你可以放置到这个目录中。
在古早时候,这个目录的用途与/media相同啦!只是有了/media之后,这个目录就用来暂时挂载用了。
/opt 这个是给第三方协力软体放置的目录。什么是第三方协力软体啊?
举例来说,KDE这个桌面管理系统是一个独立的计划,不过他可以安装到Linux系统中,因此KDE的软体就建议放置到此目录下了。
另外,如果你想要自行安装额外的软体(非原本的distribution提供的),那么也能够将你的软体安装到这里来。
不过,以前的Linux系统中,我们还是习惯放置在/usr/local目录下呢!
/root 系统管理员(root)的家目录。之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时,
该目录就能够拥有root的家目录,所以我们会希望root的家目录与根目录放置在同一个分割槽中。
/sbin Linux有非常多指令是用来设定系统环境的,这些指令只有root才能够利用来‘设定’系统,其他使用者最多只能用来‘查询’而已。 放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。
至于某些伺服器软体程式,一般则放置到/usr/sbin/当中。至于本机自行安装的软体所产生的系统执行档(system binary),
则放置到/usr/local/sbin/当中了。常见的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。
/srv srv可以视为‘service’的缩写,是一些网路服务启动之后,这些服务所需要取用的资料目录。 常见的服务例如WWW,
FTP等等。举例来说,WWW伺服器需要的网页资料就可以放置在/srv/www/里面。
/tmp 这是让一般使用者或者是正在执行的程序暂时放置档案的地方。 这个目录是任何人都能够存取的,所以你需要定期的清理一下。当然,重要资料不可放置在此目录啊!
因为FHS甚至建议在开机时,应该要将/tmp下的资料都删除唷!

事实上FHS针对根目录所定义的标准就仅有上面的咚咚,不过我们的Linux底下还有许多目录你也需要了解一下的。 底下是几个在Linux当中也是非常重要的目录喔:

目录 应放置档案内容
/lost+found 这个目录是使用标准的ext2/ext3档案系统格式才会产生的一个目录,目的在于当档案系统发生错误时, 将一些遗失的片段放置到这个目录下。这个目录通常会在分割槽的最顶层存在, 例如你加装一颗硬碟于/disk中,那在这个系统下就会自动产生一个这样的目录‘/disk/lost+found’
/proc 这个目录本身是一个‘虚拟档案系统(virtual filesystem)’喔!他放置的资料都是在记忆体当中, 例如系统核心、行程资讯(process)、周边装置的状态及网路状态等等。因为这个目录下的资料都是在记忆体当中, 所以本身不占任何硬碟空间啊!比较重要的档案例如:/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/* 等等。
/sys 这个目录其实跟/proc非常类似,也是一个虚拟的档案系统,主要也是记录与核心相关的资讯。 包括目前已载入的核心模组与核心侦测到的硬体装置资讯等等。这个目录同样不占硬碟容量喔!

除了这些目录的内容之外,另外要注意的是,因为根目录与开机有关,开机过程中仅有根目录会被挂载, 其他分割槽则是在开机完成之后才会持续的进行挂载的行为。就是因为如此,因此根目录下与开机过程有关的目录, 就不能够与根目录放到不同的分割槽去!那哪些目录不可与根目录分开呢?有底下这些:

  • /etc:设定档
  • /bin:重要执行档
  • /dev:所需要的装置档案
  • /lib:执行档所需的函式库与核心所需的模组
  • /sbin:重要的系统执行档

这五个目录千万不可与根目录分开在不同的分割槽!请背下来啊! 好了,谈完了根目录,接下来我们就来谈谈/usr以及/var啰!先看/usr里面有些什么东西:

很多读者都会误会/usr为user的缩写,其实usr是Unix Software Resource的缩写, 也就是‘Unix作业系统软体资源’所放置的目录,而不是使用者的资料啦!这点要注意。 FHS建议所有软体开发者,应该将他们的资料合理的分别放置到这个目录下的次目录,而不要自行建立该软体自己独立的目录。

因为是所有系统预设的软体(distribution发布者提供的软体)都会放置到/usr底下,因此这个目录有点类似Windows 系统的‘C:\Windows\ + C:\Program files\’这两个目录的综合体,系统刚安装完毕时,这个目录会占用最多的硬碟容量。 一般来说,/usr的次目录建议有底下这些:

目录 应放置档案内容
/usr/X11R6/ 为X Window System重要资料所放置的目录,之所以取名为X11R6是因为最后的X版本为第11版,且该版的第6次释出之意。
/usr/bin/ 绝大部分的使用者可使用指令都放在这里!请注意到他与/bin的不同之处。(是否与开机过程有关)
/usr/include/ c/c++等程式语言的档头(header)与包含档(include)放置处,当我们以tarball方式 (*.tar.gz 的方式安装软体)安装某些资料时,会使用到里头的许多包含档喔!
/usr/lib/ 包含各应用软体的函式库、目标档案(object file),以及不被一般使用者惯用的执行档或脚本(script)。 某些软体会提供一些特殊的指令来进行伺服器的设定,这些指令也不会经常被系统管理员操作, 那就会被摆放到这个目录下啦。要注意的是,如果你使用的是X86_64的Linux系统, 那可能会有/usr/lib64/目录产生喔!
/usr/local/ 系统管理员在本机自行安装自己下载的软体(非distribution预设提供者),建议安装到此目录, 这样会比较便于管理。举例来说,你的distribution提供的软体较旧,你想安装较新的软体但又不想移除旧版, 此时你可以将新版软体安装于/usr/local/目录下,可与原先的旧版软体有分别啦! 你可以自行到/usr/local去看看,该目录下也是具有bin, etc, include, lib...的次目录喔!
/usr/sbin/ 非系统正常运作所需要的系统指令。最常见的就是某些网路伺服器软体的服务指令(daemon)啰!
/usr/share/ 放置共享文件的地方,在这个目录下放置的资料几乎是不分硬体架构均可读取的资料, 因为几乎都是文字档案嘛!在此目录下常见的还有这些次目录:

  • /usr/share/man:线上说明文件
  • /usr/share/doc:软体杂项的文件说明
  • /usr/share/zoneinfo:与时区有关的时区档案
/usr/src/ 一般原始码建议放置到这里,src有source的意思。至于核心原始码则建议放置到/usr/src/linux/目录下。
  • /var 的意义与内容:

如果/usr是安装时会占用较大硬碟容量的目录,那么/var就是在系统运作后才会渐渐占用硬碟容量的目录。 因为/var目录主要针对常态性变动的档案,包括快取(cache)、登录档(log file)以及某些软体运作所产生的档案, 包括程序档案(lock file, run file),或者例如MySQL资料库的档案等等。常见的次目录有:

目录 应放置档案内容
/var/cache/ 应用程式本身运作过程中会产生的一些暂存档;
/var/lib/ 程式本身执行的过程中,需要使用到的资料档案放置的目录。在此目录下各自的软体应该要有各自的目录。 举例来说,MySQL的资料库放置到/var/lib/mysql/而rpm的资料库则放到/var/lib/rpm去!
/var/lock/ 某些装置或者是档案资源一次只能被一个应用程式所使用,如果同时有两个程式使用该装置时, 就可能产生一些错误的状况,因此就得要将该装置上锁(lock),以确保该装置只会给单一软体所使用。 举例来说,烧录机正在烧录一块光碟,你想一下,会不会有两个人同时在使用一个烧录机烧片? 如果两个人同时烧录,那片子写入的是谁的资料?所以当第一个人在烧录时该烧录机就会被上锁, 第二个人就得要该装置被解除锁定(就是前一个人用完了)才能够继续使用啰。
/var/log/ 重要到不行!这是登录档放置的目录!里面比较重要的档案如/var/log/messages, /var/log/wtmp(记录登入者的资讯)等。
/var/mail/ 放置个人电子邮件信箱的目录,不过这个目录也被放置到/var/spool/mail/目录中! 通常这两个目录是互为连结档啦!
/var/run/ 某些程式或者是服务启动后,会将他们的PID放置在这个目录下喔! 至于PID的意义我们会在后续章节提到的。
/var/spool/ 这个目录通常放置一些伫列资料,所谓的‘伫列’就是排队等待其他程式使用的资料啦! 这些资料被使用后通常都会被删除。举例来说,系统收到新信会放置到/var/spool/mail/中, 但使用者收下该信件后该封信原则上就会被删除。信件如果暂时寄不出去会被放到/var/spool/mqueue/中, 等到被送出后就被删除。如果是工作排程资料(crontab),就会被放置到/var/spool/cron/目录中!

linux 文件目录解释笔记(未完待续...)的更多相关文章

  1. 构建Linux根文件系统(未完待续)

          所谓制作根文件系统, 就是创建各种目录, 并且在里面创建各种文件. 比如在/bin ./sbin 目录下存放各种可执行程序, 在/etc 目录下存放配置文件, 在/lib 目录下存放库文件 ...

  2. Go web编程学习笔记——未完待续

    1. 1).GOPATH设置 先设置自己的GOPATH,可以在本机中运行$PATH进行查看: userdeMacBook-Pro:~ user$ $GOPATH -bash: /Users/user/ ...

  3. linux学习笔记---未完待续,缓慢更新

    做为linux菜鸟,由于work的需要,慢慢的开始接触学习linux. <鸟哥的linux私房菜>学习笔记. 一.基础命令操作 1.显示日期的命令 date 执行date命令后,显示结果为 ...

  4. jQuery 学习笔记(未完待续)

    一.jQuery概述    宗旨: Write Less, Do More.    基础知识:        1.符号$代替document.getElementById()函数        2.使 ...

  5. oracle-绑定变量学习笔记(未完待续)

    --定义变量SQL> var a number; --给绑定变量赋值SQL> exec :a :=123; PL/SQL procedure successfully completed. ...

  6. LINUX的命令(未完待续)

    遇到忘了的Linux命令,复习之后,把它记在这里,供以后复习. ^C:刚开始在看视频的时候发现上面有cd ^C,还以为这是个什么命令,其实^C这不是输入进去的,当你按了Ctrl+C之后就会出现^C,C ...

  7. Java并发笔记-未完待续待详解

    为什么需要并行? – 业务要求 – 性能 并行计算还出于业务模型的需要 – 并不是为了提高系统性能,而是确实在业务上需要多个执行单元. – 比如HTTP服务器,为每一个Socket连接新建一个处理线程 ...

  8. Java学习笔记(未完待续)

    变量的作用域(scope)是指变量可以在程序中引用的范围.在方法中定义的变量称为局部变量(local variable).局部变量的作用域从声明变量的地方开始,直到包含该变量的块结束为止.局部变量都必 ...

  9. Greys学习笔记(未完待续)

    Greys介绍 greys-anatomy是一个Java线上诊断工具,取名来自美剧<实习医生格雷>,由菜鸟-杜琨同学开发维护.比我们常用的脚本工具btrace提供更多的功能,greys采用 ...

随机推荐

  1. Spring Cloud Hystrix原理篇(十一)

    一.Hystrix处理流程 Hystrix流程图如下: Hystrix整个工作流如下: 构造一个 HystrixCommand或HystrixObservableCommand对象,用于封装请求,并在 ...

  2. SpringBoot框架中解决日期展示问题

    解决日期展示问题(返回的json中日期的格式是:"birthday":"1988-08-07T15:00:00.000+0000");需要转化成指定的格式(年月 ...

  3. 强化学习 1 --- 马尔科夫决策过程详解(MDP)

    强化学习 --- 马尔科夫决策过程(MDP) 1.强化学习介绍 ​ 强化学习任务通常使用马尔可夫决策过程(Markov Decision Process,简称MDP)来描述,具体而言:机器处在一个环境 ...

  4. 2021升级版微服务教程3—Eureka完全使用指南

    2021升级版SpringCloud教程从入门到实战精通「H版&alibaba&链路追踪&日志&事务&锁」 默认文件1610014380163 教程全目录「含视 ...

  5. Linux下的screen和作业任务管理

    一.screen 首先介绍下screen,screen是Linux下的一个任务容器,开启了之后就可以让任务在后台执行而不会被网络中断或者是终端退出而影响到. 在Linux中有一些耗时比较久的操作(例如 ...

  6. 【Java基础】面向对象中

    面向对象中 这一章主要涉及面向对象的三大特征,包括封装.继承.多态.(抽象). 封装 程序设计追求"高内聚,低耦合": 高内聚 :类的内部数据操作细节自己完成,不允许外部干涉: 低 ...

  7. 【JavaWeb】Filter 过滤器

    Filter 过滤器 简介 Filter 过滤器是 JavaWeb 三大组件之一 Filter 过滤器是 JavaEE 的规范,也就是接口 Filter 过滤器的作用是 拦截请求,过滤响应 拦截请求的 ...

  8. Redis实战篇(一)搭建Redis实例

    今天是Redis实战系列的第一讲,先从如何搭建一个Redis实例开始. 下面介绍如何在Docker.Windows.Linux下安装. Docker下安装 1.查看可用的 Redis 版本 访问 Re ...

  9. 浅谈JVM垃圾回收

    JVM内存区域 要想搞懂啊垃圾回收机制,首先就要知道垃圾回收主要回收的是哪些数据,这些数据主要在哪一块区域. Java8和Java8之前的相同点有很多. 都有虚拟机栈,本地方法栈,程序计数器,这三个是 ...

  10. Writing in the science: Introducion

    1.what makes a good writing? 2.what makes a good writer? 1) have something to say 2) logical thinkin ...