/
    /bin 存放【二进制可执行命令】目录,与usr/bin相比,它是系统性的。主要放置一些系统的必备执行档。例如:cat、cp、chmod df、dmesg、gzip、kill、ls、  mkdir、more、mount、rm、su、tar等。

 /boot 内核和其它系统启动期间使用文件

/home【用户主目录的基点】目录
        user01
        user02
    /lib 存放【标准程序设计库】目录,又叫【动态链接共享库】目录
    /etc 存放【系统管理和配置文件】目录,所有的配置文件几乎都在此处
    /dev 存放【所有设备文件,设备特殊文件】目录,如声卡文件,磁盘文件等
    /usr 最庞大的目录,存放【应用程序和文件】目录,Unix System Resource,即Unix系统资源的缩写
        local    
            bin存放【本地增加的命令】目录
            lib存放【本地增加的库】目录
        X11R6存放【X window】的目录
        bin存放众多的【(一般性/系统)应用程序】目录,主要放置一些应用软件工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 zip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget等。存放二进制可执行程序,里面的程序可以直接通过命令行调用,而不需要进入程序所在的文件夹。
        sbin存放【超级用户的一些管理程序】目录,与/sbin相比,此文件下的属于超级用户所有。放置一些网路管理的必备程序。例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等
        doc存放【Linux文档】目录
        include存放Linux下【开发和编译应用程序所需头文件】目录(比如:curses库的头文件)
        lib 存放【常用的动态链接库】和【软件包的配置文件】目录(比如:curses库的库文件)
        man【帮助文档目录】
        src【源代码目录】
            linux 【Linux内核的源代码】    
    /proc【虚拟目录,是系统内存的映射,可直接访问这个目录来获取系统信息】
    /root 系统管理员的主目录

 /sbin 主要放置一些系统管理必备程序。例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。
    /var 存放【系统产生的经常变化文件】目录,例如:打印机,邮件,新闻等假脱机目录
    /tmp 存放【公用临时文件】目录
    /mnt 挂载外部介质(设备)的目录(比如:usb等)
    /opt存放第三方软件的目录[Eg:svn等;但oracle,websphere等不认为自己是第三方软件,反而认为是linux的一员,故而放在usr下]

++++++++++++++++++++++++++++++++++++++++++++++++++++++

注意事项:软件/库(/lib/modules:4.4.0-98-generic ...)/可执行二进制程序(bin:grep ls tar echo cp cat mkdir ln rm kill sh su gzip等)的区别,以及与二者存放目录的区别

  /bin:系统

  /sbin:

  /usr/bin:

  /usr/sbin:

  /usr/lib:存放系统级动态链接库

       /lib:放置root和内核所需so或者a之类的库文件,而/usr/lib是普通用户能够使用的。/lib:内核级;/usr/lib:系统级;/usr/local/lib:用户级

   /usr/local:用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。主要存放那些手动安装的软件,即不是通过“新立得”或apt-get安装的软件。它和/usr目录具有相类似的目录结构。

  /usr/:系统级的目录,可以理解为C:/Windows/,/usr/lib理解为C:/Windows/System32。推荐:让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/usr/local目录下面

  /usr/src:系统级的源码目录

  /usr/local/src:用户级的源码目录

  /opt:用户级的程序目录,可以理解为D:/Software,opt有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接rm -rf掉即可。在硬盘容量不够时,也可将/opt单独挂载到其他磁盘上使用。

++++++++++++++++++++++++++++++++++++++++++++++++++++++

 Linux中,以include<fileName[.h]>为例,编译时:

      ①然后搜索-I指定的目录

        ②再搜索gcc的环境变量CPLUS_INCLUDE_PATH(C程序使用的是C_INCLUDE_PATH)

      ③最后搜索gcc的内定目录

        编译器优先查找标准路径

        /usr/include,/usr/local/include,/usr/lib/gcc-lib/i386-linux/<version>/include

      (最后一个是gcc程序的库文件地址,各个用户的系统上可能不一样)

              (gcc在默认情况下,都会指定到/usr/include文件夹寻找头文件)

    

    首先检索标准路径,看看这些文件夹下是否有该头文件;如果没有,也不会检索当前文件所在路径,并将报错

  Linux中,以include<”fileName.suffix“>为例,编译时:

    首先检索文件的当前路径;如果没有,再检索标准路径

       ①先搜索当前目录

       ②然后搜索-I指定的目录

       ③再搜索gcc的环境变量CPLUS_INCLUDE_PATH(C程序使用的是C_INCLUDE_PATH)

       ④最后搜索gcc的内定目录(即 上述的标准路径)

++++++++++++++++++++++++++++++++++++++++++++++++++++++

  以图形界面库curses为例,apt-get自动安装后,将会把curses库的头文件放置在/usr/include文件夹下,将curses库的库文件放置在usr/lib文件夹下,在调用以该库的C/C++文件执行时,需要手动加上动态链接库curses,命令行编译:g++/gcc program.c/cpp -o  program.out -l curses

  揣测:第三方库安装在/lib下呢?是否就不需要加后缀命令 gcc/g++ -l curses 了呢?

  [备注:gcc/g++ -l argLibName:-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了[gcc -l参数和-L参数](https://www.cnblogs.com/benio/archive/2010/10/25/1860394.html)]

参考文献:

  [Ubuntu安装的三种方式 ](https://mystery0.vip/2017/09/06/Ubuntu%E5%AE%89%E8%A3%85%E7%9A%84%E4%B8%89%E7%A7%8D%E6%96%B9%E5%BC%8F/) {备注:好基友的经典博文,适宜阅读,内附 Ubuntu(包括虚拟机/双系统)安装的严谨教程linux的目录重要见解}

  【/bin、/sbin、/usr/bin、/usr/sbin目录Linux执行文档的区别】(https://www.cnblogs.com/zhouhbing/p/3997282.html)

  【Linux 软件安装到 /usr,/usr/local/ 还是 /opt 目录? 】(http://blog.csdn.net/aqxin/article/details/48324377) 

  【【转】Linux 里有/lib和/usr/lib,这两个目录下的库文件有什么区别吗?如果没区别为什么又要分开放呢】(http://blog.csdn.net/fengyunjh/article/details/6232894)

  【Linux C开发--头文件查找、动态库搜索】(http://blog.csdn.net/huangjm_13/article/details/21160445)

  【 Linux下头文件搜索路径 】(http://blog.csdn.net/lwb102063/article/details/50283507)

Linux之目录结构解析的更多相关文章

  1. InfluxDB源码目录结构解析

    操作系统 : CentOS7.3.1611_x64 go语言版本:1.8.3 linux/amd64 InfluxDB版本:1.1.0 influxdata主目录结构 [root@localhost ...

  2. iOS沙盒目录结构解析

    iOS沙盒目录结构解析 原文地址:http://blog.csdn.net/wzzvictory/article/details/18269713     出于安全考虑,iOS系统的沙盒机制规定每个应 ...

  3. Linux 标准目录结构

    初学Linux,首先需要弄清Linux 标准目录结构 / root --- 启动Linux时使用的一些核心文件.如操作系统内核.引导程序Grub等. home --- 存储普通用户的个人文件 ftp ...

  4. 【转】 Linux下目录结构

    装完Linux,首先需要弄清Linux 标准目录结构 / root — 启动Linux时使用的一些核心文件.如操作系统内核.引导程序Grub等. home — 存储普通用户的个人文件 ftp — 用户 ...

  5. 从零单排Linux – 3 – 目录结构

    从零单排Linux – 3 – 目录结构 1.FHS标准(filesystem hierarchy standard) why? –> 为了规范,还有为了linux的发展 重点 –> 规范 ...

  6. 【转】Linux 标准目录结构

    初学Linux,首先需要弄清Linux 标准目录结构 / root --- 启动Linux时使用的一些核心文件.如操作系统内核.引导程序Grub等. home --- 存储普通用户的个人文件 ftp ...

  7. linux标准目录结构

    初学Linux,首先需要弄清Linux 标准目录结构 / root --- 启动Linux时使用的一些核心文件.如操作系统内核.引导程序Grub等. home --- 存储普通用户的个人文件 ftp ...

  8. Linux学习——目录结构

    在Linux当中,一切皆为文件,包括目录也属于文件.FHS(Filesystem Hierarchy Standard)的出现对文件目录系统做出了统一规范. Linux的目录结构: / - 根 /bi ...

  9. 【Linux学习】Linux文件系统2—linux常用目录结构、绝对路径、相对路径

    Linux文件系统2-linux常用目录结构.绝对路径.相对路径 一. 常见目录结构总结 Linux目录结构就是"树形结构",常见的目录结构: /bin  系统需要的命令位于此目录 ...

随机推荐

  1. Ubuntu 16.04 root环境变量不生效问题解决方案

    在Ubuntu 16.04中配置JDK环境变量,但是在切换到root时不生效 . 在/etc/profile中添加如下: export JAVA_HOME=/opt/java/jdk1..0_151 ...

  2. NOIP2018滚粗记

    NOIP2018滚粗记 day 0 上午,说是可以休息,然后睡到快9点起来吃个早饭去了机房.刷了几个板子就十二点了 下午大概就是看别人总结,颓知乎,完全没心思写代码. 晚上不要求,然后在寝室颓了一下, ...

  3. 我是如何沉迷于linux系统的?

    Linux?这个对大多数人来说,是一个陌生的词.曾经的我,对这个也是一无所知的,我没有编程背景,我的专业知识是英语,而不是计算机语言. 我是如何和这个词搭上联系的呢?还是缘于一段一次奇妙的社团活动,我 ...

  4. JavaScript实现两小时倒计时

    [构思] 因为只需要的是两小时,所以时间直接写死,然后通过setInterval每1000ms对时间进行减1操作 前期未考虑到当时分秒小于10的状态,所以后面又加上了一个checkTime()来进行限 ...

  5. day25 上山练习 计算圆练习

    # 练习一:在终端输出如下信息 # 小明,10岁,男,上山去砍柴 # 小明,10岁,男,开车去东北 # 小明,10岁,男,最爱大保健 # 老李,90岁,男,上山去砍柴 # 老李,90岁,男,开车去东北 ...

  6. EFCodeFirst快速搭建入门

    EFCodeFirst快速搭建入门 1.新建Model类库项目. 添加EntityFramework.dll的引用. 编写实体类Course,Student. namespace EFCodeFirs ...

  7. 【洛谷P4054】计数问题

    题目大意:维护 N*M 个点,每个点有三个权值,支持单点修改,查询矩形区间内权值等于某个值的点的个数. 题解:矩阵可以看成两个维度,权值为第三个维度,为一个三维偏序维护问题.发现第三维仅仅为单点修改和 ...

  8. vuejs怎么在服务器部署?(知乎)

    作者:知乎用户链接:https://www.zhihu.com/question/46630687/answer/157166318来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  9. (stripTrailingZeros)A == B hdu2054

    A == B ? Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  10. SQL Server 关于CROSS APPLY 和 OUTER APPLY应用

    先看看语法: <left_table_expression>  {cross|outer} apply<right_table_expression> 再让我们了解一下appl ...