linux 基础(4)文件结构标准 FHS

使用 linux 进行各种各样开发的人实在太多了,因此一套统一的“什么文件存放在哪里”的规范应运而生,被称为 FHS(Filesystem Hierarchy Standard)。

FHS 首先将文件分为四类:1)可分享的文件,指可以分享给其他系统拿去共享挂载的目录;不可分享的,指只与本机运行相关的没有分享意义的文件。2)不常变的文件,指随着系统更新一般不会改变的配置文件;可变动的文件,指经常改变的文件。

例子 可分享的 不可分享的
不变的 应用程序 配置文件 内核文件
变动的 邮件 程序运行的临时文件

FHS 定义了这三个目录:

  • /(root 根目录)
  • /usr (Unix software resources 软件存放 注意并不是 user 的缩写)
  • /var (variable)

根目录 /

根目录是系统最重要的目录,他和系统的开启、运行修复等息息相关。根目录通常需要这些目录:

目录 内容
/bin 放置 cat,cp这样基本命令的目录,与/usr中的命令的区别是,他们在单人维护模式荏苒能使用
/boot 这个目录主要在放置开机会使用到的文件,包括Linux核心文件以及开机菜单与开机所需配置文件等等。
/dev linux中,目录以特殊文件的形式存在,通过存储这里的文件操控设备
/etc 储存各种配置文件
/lib 储存函数库
/media 放置各种媒体储存设备
/mnt 用于挂载设备
/opt 用于安装第三方软件
/run 储存开机后的运行信息
/sbin 储存系统相关的高级命令,他们用于系统修复管理,一般只有root可以使用
/srv 服务service,用于放置一些服务所需的数据
/tmp 所有程序都可以使用的临时文件目录
/home 存放使用者的主文件夹
/lib64 储存64位的函数库
/root root 用户的主文件夹
/lost+found 文件系统发生错误时,一些数据会存放到这里
/proc /sys 储存系统核心,网络信息等,这个目录位于内存中,不占用磁盘
/var 第二层 FHS
/usr 第二层 FHS

如果使用救援模式,/etc、 /bin、 /dev、 /lib、 /sbin 通常是最重要的目录,他们要与根目录挂载到一起。

/usr 目录

usr 意为 Unix software resources,即存放程序的地方,相当于 Win 中的C:\Program Files。所有软件都应该把它们的数据安放在这个目录下。一般来说,/usr 下需要这些目录。

目录 内容
/usr/bin 一般用户能使用的指令,往往与 /bin 链接到一起,他们的内容是相同的
/usr/lib/ 储存函数库,往往与 /lib 链接到一起,他们的内容是相同的
/usr/local 一般来讲,不是通过;应用包管理而自行安装的软件建议集合到这里,local 下同样具有 bin,lib 等目录
/usr/sbin 储存正常运行以外的高级命令,通常链接到 /sbin
/usr/share/ 一些可分享的数据,通常是一些文档说明,之下有 man doc 等目录
/usr/games/ 游戏
/usr/include/ 储存 c 和 c++ 的库头文件
/usr/libexec 储存一些不惯用的脚本
/usr/src 存放一些程序的源代码

/var 目录

这个目录储存程序运行时的各种数据,包括高速缓存(cache)、登录文件(log file)以及某些软件运行所产生的文件, 包括程序文件(lock file, run file)。通常拥有这些子目录。

目录 内容
/var/cache 储存程序运行的一些暂存数据
/var/lib 储存程序需要的数据文件,如 Mysql 的数据库
/var/lock 管理上锁的设备文件
/var/log 放置登录文件
/var/mail 储存个人邮箱
/var/run 储存应用运行后的一些信息,链接到/run
/var/spool 储存暂未使用,排队等待使用的一些数据
本文转载于网络 如有侵权请联系删除

相关文章

  • androidのretrofit2调用接口

    所谓理解,通常不过是误解的总合。——村上春树《斯普特尼克恋人》 安卓调用接口首先引入依赖implementation'com.android.volley:volley:1.1.1' implementation'com.squareup.retrofit2:retrofit:2.9.0' implementation'com.squareup.retrofit2:converter-gson:2.1.0' implementation'com.squareup.okhttp3:logging-interceptor:3.3.0' implementation'com.squareup.okhttp3:okhttp-urlconnection:3.3.0'复制然后编写主配置类packagecom.example.interfacecall.net; importandroid.util.Log; importcom.android.volley.BuildConfig; import

  • 打开隐藏文件的操作方法

    很多时候,我们都会发现我的电脑C盘明明是空的,但是一到属性中查看却发现有东西占用了空间,这是怎么回事呢?是因为这些文件隐藏起来了,只是我们看不到。那么要怎么将隐藏文件显示出来呢?下面我给大家分享显示隐藏文件的方法。我们日常在玩电脑的时候经常会因为各种原因,产生很多的无法查看的隐藏文件,其实这也是电脑的初始设置。所以,今天我就来给大家说说怎么显示隐藏文件夹这个问题。1,首先,打开“计算机”,点击计算机页面中的“组织”,然后选择“文件夹和搜索选项”。如图下所示;文件系统软件图解12,切换到“查看”选项卡窗口中,如图下所示: 文件夹系统软件图解23,最后在高级设置中下拉,找到“隐藏文件和显示文件”点击展开,在“显示隐藏的文件、文件夹和驱动器”的前面带上勾勾。如图下所示;如何打开隐藏文件夹系统软件图解34,点击确定后,隐藏文件就被显到桌面上了文件夹系统软件图解4以上陈述就是打开隐藏文件的操作方法啦~

  • Angularjs动态加载ECharts(一)

    今早发现,directive写的echarts组件,虽然能够获取到Controller中的数据,但是当我使用$http请求到的数据,想传到directive却总是获取不到,知道这是异步问题,图表加载后,数据才请求到,所以图表加载不了数据 解决方法使用ng-if,判断,如果有数据才显示,完美解决<realtem-datang-if="data"id="temdata"legend="legend"item="item"data="data"></realtem-data>复制其余代码controller代码app.controller("temdataCtrl",function($scope,$http,$log){ $http({ method:"get", url:"http://..:3000/tem", headers:{ "content-type":"applic

  • 免广告、快人一步、信仰充值…我们为何愿意为内容付费?

    作者| 余洁 腾讯研究院研究员暑期档来了,你抢了音乐、视频、读书平台的大甩卖会员吗? 从某个时候起,内容产品开始和实物商品一样,被加入了人们的购物清单里。我们已经走过了互联网早期随意复制的蛮荒时代,“羊毛出在猪身上”的广告时代,以及“内容是不是免费的”大讨论时代,如今,内容消费开始形成气候。在各大泛娱乐平台,会员制已成为一种最主流的付费方式。会员权益动辄十项八项,这些“全家桶式”的增值服务,对用户真的有价值和吸引力吗?很多时候,我们认为买会员就是买内容,但在视频平台,相当多的内容依然是免费开放的,用户到底在为何而买单?为什么有的时候,人们愿意为内容主动打赏乃至成倍地重复购买?在行业发展的多岔路口,回到用户,有助于我们把握消费规律、提供更有价值的内容。今天我们就试着从用户视角,聊一聊人们真实的内容消费动机:一为内容本身买单为内容本身付费,典型的方式有两种:一是购买内容的视听期限。比如平台会员(按月付费)、观影券(期限多为48小时);另一种更趋近直接购买内容,例如数字专辑或单曲、网络小说的章节付费。对用户而言,最大的差别在于,是单次还是反复使用内容。文娱节目多为消耗品,内容池丰富,单片的复

  • ​想知道与你最般配的伴侣长什么样?这个“夫妻相”生成器要火

    各种奇形怪状的AI生成器都有。 前一段时间,AI科技大本营(ID:rgznai100)盘点了诸多有意思的AI生成器,包括特效生成器、内容生成器、人脸生成器等等(见文末文章链接)。 这不,又一位作者使用pix2pix代码训练了一个““夫妻相””生成器。这个生成器只要输入你自己的人脸图片,就可自动可以生成与你最匹配的未来伴侣,让你在茫茫人海中,发现与你最般配的那张“夫妻脸”,或许可以助你尽早脱单(:衰GitHub上,作者给出了经过8800个步骤后的训练结果。该模型可以在短时间内拟合训练图像。她还给出了一个可能有用的ckpt模型文件下载地址:https://cloudstor.aarnet.edu.au/plus/s/YHDWgez1g3RFc6o配置环境应该是tensorflow==1.1...还需要下载VGG预训练权重:https://github.com/machrisaa/tensorflow-vgg快速开始下载训练图像并将其解压:https://cloudstor.aarnet.edu.au/plus/s/VWZJaWfbla3kFch运行bashautotest.sh作

  • asp dotnet core 通过图片统计 csdn 用户访问 缓存图片统计用户访问

    在csdn的访问统计里面,只能用csdn提供的访问统计,因为在csdn中不支持在博客加上js代码,也就是无法使用友盟等工具统计。通过在aspdotnetcore创建一个图片链接的方式,将这个链接作为图片放在csdn的博客,可以在链接被访问的时候统计用户访问新建一个aspdotnetcore项目,在自己的controler里面添加一个方法,这个方法的访问链接是xx.png假装这是一张图片,请看代码[Route("api/[controller]")] [ApiController] publicclassImageController:ControllerBase { [Route("csdn/Image.png")] [HttpGet] publicFileResultGetCSDNImage() { //忽略代码 } }复制在csdn上通过访问我的域名对应的链接就可以调用GetCSDNImage方法![](http://bulleimage.service.walterlv.com/api/image/csdn/image.png)复制注意

  • 通往架构师路上的经验总结

    前言:我先介绍一下我的新同事,据说他是美国篮球运动员詹姆斯的死忠粉,公司好多同事都这么叫他James,有8年开发经验的架构师,之前在AL待过,我一听说是AL的,啧啧啧........,就有种莫名的种亲切感,就立马找新同事聊了起来。我们在空余的时间聊了很久,也聊了好多。毕竟之前都在AL待过,感觉话题还是有的。在聊天过程中,我们也聊到了他为什么离开AL,也聊到了他在成为架构师的道路上的辛酸历程,聊过后,才发现,离开AL的原因和他的架构师之路和我的很是相似。都是经历不知多少个日夜磨砺出来的辛酸历程。现在回想过去,在看现在的自己,感觉之前的辛酸都是值得的。好了,我在这里就不跟大家扯这么多了,今天的这篇文章,主要是我们两在聊天讨论的过程中,产生了很多在成为架构师的过程中的一些共鸣点,既然我们所经历的点有共鸣,那么我相信跟大家的也相差不大,所以,这篇文章仅供大家参考学习以及在成为架构师的道路上应该掌握的知识点和经验。相信你在看完这篇文章后,你有一个明确的目标以及一个通往架构师路上正确的方向。困扰架构师日常问题架构师应不应该写代码为什么别人的系统总是那么烂成为架构师最困难的门槛是什么?如何更高效的学

  • 面向工程师的最佳统计机器学习课程,Fall 2017 美国圣母大学,28章节详细讲述(附PPT下载,课程目录视频)

    【导读】美国圣母大学2017年新开课程《给科学家和工程师的统计学习》StatisticalComputingforScientistsandEngineers涵盖了统计学习中的几乎所有重要知识,包括《概率与统计、信息论、多维高斯分布、最大后验估计、贝叶斯统计、指数族分布、贝叶斯线性回归、蒙特卡洛方法、重要性采样、吉布斯采样、状态空间模型、EM算法、主成分分析、连续隐变量模型、核方法与高斯过程等》,并提供视频,PPT,课程作业及其参考答案与代码,还有大量参考学习资源,是不可多得的统计学习课程。统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。它和现在火热的机器学习和深度学习的目的一样都是为了找到或者能够无限接近一个“上帝函数”——一个能够完美利用数据解决现实各种问题的模型或者方法。统计学习依托背后的数学理论,在远早于机器学习大爆发的这十年,率先从解释因果的能力的角度,努力寻找上帝函数。统计学习相较于机器学习最大的优势就是可解释性好,比如在小样本下,逻辑回归作为基础的线性分类器预测效果通常不比神经网络和其他ensembled算法差,且解释能力更强。当数据

  • 微服务(三)——Eureka服务注册与发现&Eureka集群

    Eureka服务注册与发现Eureka基础知识什么是服务治理SpringCloud封装了Netflix公司开发的Eureka模块来实现服务治理在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。什么是服务注册与发现Eureka采用了CS的设计架构,EurekaSever作为服务注册功能的服务器,它是服务注册中心。而系统中的其他微服务,使用Eureka的客户端连接到EurekaServer并维持心跳连接。这样系统的维护人员就可以通过EurekaServer来监控系统中各个微服务是否正常运行。在服务注册与发现中,有一个注册中心。当服务器启动的时候,会把当前自己服务器的信息比如服务地址通讯地址等以别名方式注册到注册中心上。另一方(消费者服务提供者),以该别名的方式去注册中心上获取到实际的服务通讯地址,然后再实现本地RPC调用RPC远程调用框架核心设计思想:在于注册中心,因为使用注册中心管理每个服务与服务之间的一个依赖关系(服务治理概念)。在任何RPC远程框

  • Go单体服务开发最佳实践

    单体最佳实践的由来 对于很多初创公司来说,业务的早期我们更应该关注于业务价值的交付,并且此时用户体量也很小,QPS也非常低,我们应该使用更简单的技术架构来加速业务价值的交付,此时单体的优势就体现出来了。 正如我直播分享时经常提到,我们在使用单体快速交付业务价值的同时,也需要为业务的发展预留可能性,我们可以在单体里面清晰的拆分业务模块。 go-zero社区里也有很多小伙伴在问,咱们单体开发的最佳实践应该是怎样的。 而go-zero作为一个被广泛使用的渐进式微服务框架来说,也是我在多个大型项目完整发展过程中沉淀出来的,自然我们也充分考虑了单体服务开发的场景。 如图所示的使用go-zero的单体架构,也可以支撑很大体量的业务规模,其中Service是单体服务的多个Pod。 我就通过本文详细跟大家分享一下如何使用go-zero快速开发一个有多个模块的单体服务。 单体示例 我们用一个上传下载的单体服务来讲解go-zero单体服务开发的最佳实践,为啥用这么个示例呢? go-zero社区里经常有同学会问上传文件怎么定义API文件,然后用goctl自动生成。初见此类问题会觉得比较奇怪,为啥不

  • 威尔逊定理

    \((p-1)!\equiv-1(\%p)\)

  • 数据结构笔记七:查找

    目录查找查找的基本概念顺序查找算法思想顺序查找的实现查找效率分析顺序查找的优化(对有序表)顺序查找的优化(被查概论不相等)折半查找算法思想查找效率分析折半查找判定树的构造查找效率分块查找算法思想查找效率分析(ASL)拓展B树B树的核心特性B的插入B树删除B+树B+树的查找B树VSB+树散列查找散列表处理冲突拉链法开放地址法再散列法 查找 查找的基本概念 查找——在数据集合中寻找满足某种条件的数据元素的过程称为查找 查找表(查找结构)——用于查找的数据集合称为查找表,它由同一类型的数据元素(或记录)组成 关键字——数据元素中唯一标识该元素的某个数据项的值,使用基于关键字的查找,查找结果应该时唯一的。 查找长度——在查找运算中,需要对比关键字的次数称为查找长度 平均查找长度(ASL)——所有查找过程中进行关键字的比较次数的平均值 \[ASL=\sum_{i=1}^nP_iC_i \]顺序查找 算法思想 顺序查找,又叫“线性查找”,通常用于线性表 算法思想:从头到jio挨个找 顺序查找的实现 typedefstruct{ ElemType*elem; intTableLen; }SSTab

  • java &amp; spring 注解 备忘

        复制   javadeprecated注解 1/** 2*Generalserviceforallcommonbusinesslogic. 3* 4*@authorwanghaipeng,haipeng.wang@leyantech.com 5*@date2018/10/18下午10:03. 6* 7*@deprecateduse{@linkCommonBizServiceV2}instead. 8*/ 9@Deprecated 10publicObjectxxxx()复制    

  • 手动搭建 redis 集群

    转自http://meia.fun/article/1544161420745 手动搭建redis集群 redis基本命令: 启动redis服务:redis-serverxxx.conf 连接redis服务:redis-cli-hxx-pxx 停止redis服务:redis-cli-p{port}shutdown 单机模式主要配置: port:端口 logfile:日志文件 dir:redis工作目录(存放持久化文件和日志文件) dbfilename:数据库文件名 daemonize:是否已守护进程的方式启动redis 集群模式主要配置: cluster-enabled:是否开启集群 cluster-node-timeout:节点超时时间,单位毫秒 cluster-config-file:集群内部配置文件(此文件由redis自动生成,自动维护) 目录结构: redis:根目录 config:放置redis配置文件 data:dir配置的目录 log:放置logfile配置的日志文件 复制 集群搭建步骤 创建6个配置文件(至少6个节点才能保证组成完整高可用的redis集群

  • m96-97 lsc nc赛

     这一次lsc再一次一道题都没AC,看来lsc已经凉了! 出了分,旁边的_LH大喊了一声“woc,lsc,你真是太垃圾!”...........“好吧!” 我确实很垃圾!(大佬这次都没考,所以我更垃圾了).........sblscnc再现! ------------------------------------------------------------------------------     lsc表示T2过了30w的对拍,爆零了!   然后.......lemonNB      把我厌氧代码挽救,但是还是老样子,被旁边的_LH$\Huge巨$神嘲笑:“lsc就是lowB,没水平!” ........ ---------------------------------------------------------------------------------  

  • 前端打包bulid后代码 放在 后端项目什么位置

    前端打包后的样子:     2放在项目的那个位置 2.1对于index.html   寻找项目根url,找见首页url,就找见了index.html的存放位置了 2.2对于static文件夹   找跟项目根目录下的static文件夹->dist文件夹->替换其下面的static文件夹即可.  

  • Mysql服务器处理客户端请求流程

    在日常执行mysql语句的过程中,都是客户端进程向服务器进程发送一段文本(MySQL语句),服务器进程处理后再向客户端进程发送一段文本(处理结果).看似很简单,其实不然,这内容有很多东西是需要注意的.下面借用两张图来说明,其实两张图表示的意思都是一样. 上面的图对于中间的解析和优化不是很透彻,下面的图将解析和优化说的更明确. 接下来就分开说明下: 连接管理/连接器 连接器就是用来客户端和服务器进程之间建立连接的,这个方式有很多,比如说TCP/IP,命名管道或共享内存等等,这个阶段的连接需要客户端提供主机信息,用户名以及密码,服务器会对提供的信息进行认证,不仅仅是账户密码的匹配,还有权限的验证. 解析优化 解析优化阶段是非常重要的一个阶段,主要包括了查询缓存(8中取消),语法解析和查询优化. 查询缓存 这个的意思的Mysql服务器程序处理请求,会把刚刚请求过的查询请求和结果缓存起来,,下一次有一模一样的请求过来,直接从缓存中查找结果会更快.如何缓存的呢?其实就是键值对的形式,键就是查询的sql语句,值就是查询出来的结果. 注意重点是一模一样,也就是出现虽然查询的结果一样,但是不会命中

  • MFC之sqlite

    引用头文件和将生成的SQLite.dll加载到项目中 #include"sqlite3.h" 复制    1.动态加载sqlite //***********************数据库动态加载*****************************// typedefint(SQLITE_STDCALL*psqlite3_open)( constchar*filename,/*Databasefilename(UTF-8)*/ sqlite3**ppDb/*OUT:SQLitedbhandle*/ ); typedefint(SQLITE_STDCALL*psqlite3_get_table)( sqlite3*db,/*Anopendatabase*/ constchar*zSql,/*SQLtobeevaluated*/ char***pazResult,/*Resultsofthequery*/ int*pnRow,/*Numberofresultrowswrittenhere*/ int*pnColumn,/*Numberofresultcolumnswritte

  • DB2定时循环同步数据到MySQL

    1、安装TreeDMS后,登录系统并配置数据库连接信息。   2、输入查询SQL命令,查询需同步的数据,并确认来源表、目标表字段等信息。   3、配置【数据同步】任务,配置来源、目标信息,配置调度计划规则。   4、数据同步中的【执行动作】规则说明   【新增】仅新增数据,速度快  【更新】仅更新数据,按约束条件更新  【覆盖】存在就更新,不存在就新增 5、执行一次,测试数据同步效果,查看同步日志 6、通过SQL查询命令,查看目标表,确认同步效果。  

  • Linux UART介绍

    1.UART介绍 UART是一类tty设备,是一种串行端口终端,具体可参考<UART接口介绍>在Linux中UART属于tty驱动的一部分,具体实现包括驱动抽象层和硬件实现层 本文主要介绍了UART驱动抽象层,代码主要是drivers/tty/serial/serial_core.c 2.UART接口 UART抽象层提供了一系列API供硬件实现层使用,主要包括 /*注册/释放uart驱动*/ intuart_register_driver(structuart_driver*drv); voiduart_unregister_driver(structuart_driver*drv); /*添加uart端口/设备*/ intuart_add_one_port(structuart_driver*drv,structuart_port*uport); intuart_remove_one_port(structuart_driver*drv,structuart_port*uport); /*端口挂起和恢复*/ intuart_suspend_port(structuart

  • JS下拉列表

    方法一: <styletype="text/css"> *{margin:0pxauto;padding:0px} #menu{width:700px;height:40px;border:1pxsolid#999;margin-top:30px} .list{width:100px;height:40px;text-align:center;line-height:40px;vertical-align:middle;font-size:16px;font-family:微软雅黑;float:left} .list:hover{cursor:pointer;background-color:#63C;color:white} .ziwai{width:0px;height:0px;position:relative;float:left;top:40px;left:-100px} .zi{width:100px;height:100px;background-color:#6C3;display:none} </style> <body> &l

相关推荐

推荐阅读