文件目录结构

闲话篇:

  linux我也是最近才开始学,写随笔是为分享学习经验的同时也留着供自己以后来参考。因为linux一切皆文件的基本哲学思想。所以我决定从文件目录开始写。

正文:

  首先linux文件系统格式为ext3/4(ext是extended的缩写,意为扩展,全称linux扩展文件系统),这个简单提下。

  然后linux文件系统是树状结构,所有的文件皆在一个叫 / 的目录下,所以这个 / 也叫做根目录。

  而根目录(/)下的一级文件目录大多也是规定好的,由下图这几个关键目录(骨干)组成,这些目录(文件夹)下各自存放了用于完成不同工作的文件,下图截取自fhs文档,感兴趣的可以访问这个网站查看并下载最新的fhs的pdf文档http://www.pathname.com/fhs/ ,这个文档是专门讲linux文件系统的,最权威

 下面就是我的翻译工作:

  /bin :存放基本的二进制指令文件,一般我们在Linux命令行里输的命令都是来自于/bin目录下

  /boot :存放系统的开机引导文件,内核会根据/boot分区下的文件配置一步步加载磁盘内的文件开机,相当于Windows的引导分区,占用空间不大,一般几百M

  /dev :存放访问硬件设备的文件,用来访问硬盘,内存等各个硬件

  /etc :存放系统配置文件,开机登陆界面,命令行字符格式,用户管理都在这个目录下可以改,相当于Windows下的注册表

  /lib :存放静态库文件,应该是给开发程序调用的,相当于Windows下的system32目录

  /media :作为可移动存储设备的挂载点,用来访问u盘,cd光盘的内容

  /mnt :作为暂时访问其他文件系统的挂载点,应该访问windows分区或其他文件格式的设备用的,fhs文档里对他就四行讲解,所以我觉得不重要(其实是我没怎么理解)

  /opt :存放附加程序安装包的,也就是后来自己想下的软件安装包可以放这里,我就理解了这些,要求挺多的,详见fhs文档3.13处,感觉不重要

  /sbin :存放给系统还有root用户调用的基本二进制文件,许多时候普通用户执行命令提示权限不足的命令大多放在这个文件目录下,还有就是在/usr/sbin目录下

  /srv :存放系统服务产生的数据,但我在centos7系统上查看了它里面的内容,结果连个隐藏文件都没有,结合fhs文档所言,这个文档具体做什么没明确规定(可能是我翻译问题,但感觉这个不重要)

  /tmp :存放临时数据的文件,这个目录可以,一般我想做什么实验都在这个目录,做完实验就把文件清了,所以是垃圾文件集中地,一般存储空间不够就问他要点比较安全

  /usr :存放共用的可读文件(不可写,也就是里面文件内容大多不能改的),linux文件系统第二重要的目录(第一重要的目录被我扔了不好意思),它里面的/bin子目录下存放了大多数用户使用的命令,/include子目录下放了c语言的头文件,/lib子目录下放了库文件,还有/local,/sbin,/share这些子目录都相当于工具包,可以理解为Windows下program文件夹,里面有各类软件还有软件用到的库文件,头文件,总之对这个目录能去用里面的工具但不能去乱改里面的内容

  /var :存放变量数据,跟/tmp目录差不多,也是临时数据,但它里面放的不是垃圾文件,它更倾向于记录,它里面记录了所有程序的日志还有系统日志等,当然这些日志文件也是可以删的,当然要空间首选还是/tmp目录

与第三方系统比较:

  许多基于linux底层的第三方系统都继承了一个好习惯,如下图,左图是我的虚拟机装的centos7系统下执行tree命令看到的根目录结构,可以跟右图对比:一个不漏

  甚至还多了/home目录,这个目录挺重要,相当于Windows下的user目录,所有用户的文件都在这个目录下,简单提下

                                             

 如果你也有装有centos系统的主机可以执行以下命令查看

  1. 安装tree软件,一般默认可能没安装,可以先在命令行里输个tree看看找不找得到这个命令,没有就执行下面这条命令安装tree,如果提示权限不足的话命令前面加个sudo

  yum -y install tree

  2.tree的用法,下面的命令是查看根目录 / 下的一级目录,这里-L 后面跟的1就是查看一级目录,2就是二级目录

  tree -L  /

  3.查看tree的所有用法的帮助,下面两种命令都可以查看这个命令的细致用法

  man tree
  tree --help

  玩法很多,自行体验咯

奇怪的地方:

  既然都看到这里了,我就再写点linux文件系统里神奇的地方吧,就在我们提过的/dev目录下,有三个特殊的子目录,如下图所示,还有神奇的英语介绍

  下面又是我的奇怪翻译:

  /dev/null :所有写到这个设备(目录)下的数据都是被删除的,从这里读数据只会返回EOF状态,其实就是回收站,你可以把不要的垃圾文件mv(move,移动命令)到这里。

  /dev/zero :这个设备是用来输出0的,任何写到这个设备的数据都会被扔掉,只能从这个设备里读取数值0,但这有什么用呢,如果你要测试硬盘性能,可以从这个设备里读数据0写到文件里看看用了多少时间。如下面的命令就是从zero设备里读取0写到我们要测试的boot分区里的1gb文件,bs设置块大小1m,count也就是写入块的个数为1024,那么总共就是写入1个g的内容然后会返回测试数据,多大的数据用了多久完成,速度是xxxM/s

  dd if=/dev/zero of=/boot/1gb.file bs=1M count=

  /dev/tty :这个设备相当于终端进程,一旦这个设备打开,所有读写操作都会像实际打开的终端一样在它上面实现(显示),也就是你打开tty,就能控制对应tty窗口的输入输出,终端(terminal)你可以理解成Windows下的桌面,现在windows10可以开多个桌面,而linux也有多个终端可以输入输出显示。   

互动环节:

  最后想请教各位,linux文件系统里第一重要的目录是哪个?还有那些我感觉不重要的目录是不是我遗忘了什么?写了随笔才发现原来自己还是挺多不清楚的。有问题还望大家及时指出,别让我坑害了像我一样的新人。

linux学习--1. 文件系统的更多相关文章

  1. Linux学习笔记-文件系统和基本命令

    目录 分区设备文件名 分区 挂载 文件目录 文件处理命令 目录处理命令 硬件设备文件名 IDE硬盘 /dev/hd[a-d] USB硬盘 /dev/sd[a-p] 光驱 /dev/cdrom或者/de ...

  2. (一)linux 学习 -- 在文件系统中跳转

    The Linux Command Line 读书笔记 - 部分内容来自 http://billie66.github.io/TLCL/book/chap03.html 文章目录 文件系统 根目录 打 ...

  3. Linux学习之文件系统常用命令(七)

    Linux文件系统常用命令 目录 df命令 du命令 fsck命令 dump2fs命令 df命令 df命令 统计文件系统的占有情况,分区用了多少空间,还剩多少空间 df [选项] [挂载点] 选项: ...

  4. Linux学习—导航文件系统

    与windows相同,Linux操作系统也是以被称之为分层目录结构的方式来组织文件的.这意味着文件是以树形结构的目录中进行组织的,该树形结构目录可能包含文件和其他目录.文件系统的第一个目录叫做根目录, ...

  5. Linux学习之文件系统权限及表示

    三类人 用户主(user:u):文件的所有者 同组人(group:g):与文件主同组的用户 其他人(other:o):除用户主和同组人外的其他所有人 三种权限 读权限(r):指用户对文件或目录的读许可 ...

  6. (大数据工程师学习路径)第一步 Linux 基础入门----文件系统操作与磁盘管理

    介绍 本节的文件系统操作的内容十分简单,只会包含几个命令的几个参数的讲解,但掌握这些也将对你在学习后续其他内容的过程中有极大帮助. 因为本课程的定位为入门基础,尽快上手,故没有打算涉及太多理论内容,前 ...

  7. Linux学习之CentOS(三)--初识linux的文件系统以及用户组等概念

    Linux学习之CentOS(三)--初识linux的文件系统以及用户组等概念 进入到了Linux学习之CentOS第三篇了,这篇文章主要记录下对linux文件系统的初步认识,以及用户组.用户权限.文 ...

  8. Linux学习笔记(一) 文件系统

    对于每一个 Linux 学习者来说,了解 Linux 文件系统的结构是十分有必要的 因为在 Linux 中一切皆文件,可以说只有深入了解 Linux 的文件系统,才会对 Linux 有更深刻的理解 L ...

  9. Linux学习笔记之 Btrfs文件系统简介及使用

    Btrfs 也有一个重要的缺点,当 BTree 中某个节点出现错误时,文件系统将失去该节点之下的所有的文件信息.而 ext2/3 却避免了这种被称为”错误扩散”的问题. Btrfs相关介绍: Btrf ...

随机推荐

  1. 真机调试报The executable was signed with invalid entitlements.错误

    真机运行时,提示The executable was signed with invalid entitlements.(The entitlements specified in your appl ...

  2. css 透明度

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...

  3. JavaScript(2)---DOM详解

    JavaScript(2)---DOM详解 一.DOM概念 什么是DOM DOM全称为文本对象模型(Document Object Model),它定义了所有HTML元素的对象和属性,以及访问他们的方 ...

  4. go编写简单接口的过程

    环境 系统 Windows server 2016 Datacener go version go1.13.3 windows/amd64 数据库 Microsoft SQL Server 2014( ...

  5. 强大的 Python 任务自动化工具!invoke 十分钟入门指南

    接着前面的<tox 教程>,以及刚翻译好的<nox文档>,我们继续聊聊 Python 任务自动化的话题. nox 的作者在去年的 Pycon US 上,做了一场题为<Br ...

  6. Windows 下部署Subversion

    前言 此文章介绍用户在windows环境下部署svn服务,部署svn服务的方式并不是唯一的,我这里仅仅列出了其中很普通的一种,若使用者有其他喜欢的方式也可自行选择 名词介绍 VisualSVN Ser ...

  7. SpringCloud与微服务Ⅱ --- 微服务概述

    一.什么是微服务 1) Martin Fowler论文对微服务的阐述(中文版) 2) 对单一应用进行拆分 3) 每一个独立的应用都有一个独立的进程 4) 拥有自己独立的数据库 5) 微服务化的核心就是 ...

  8. 有基因ID或者基因名,如何拿到对应的KEGG通路图?

    1.https://www.kegg.jp/kegg/tool/map_pathway2.html 2.如下图,筛选出基因所在的通路,并标上不同的颜色. 3.结果页面如下,有些基因会找不到对应的通路, ...

  9. DOCKER 学习笔记4 认识DockerCompose 多容器编排

    前言 通过上一节的学习,学会了如何在Linux 环境下搭建Docker并且部署Springboot 项目,并且成功的跑了起来,当然,在生产环境中,不只是需要一个后端的Web 项目,还需要比如 Ngin ...

  10. input输入框联想功能

    一直想找一个可以连接后台,可以根据后台内容的input输入框,可以实现联想功能,网上找到一个简单的静态页面的输入框联想,经过一番修改之后终于可以实现读取自己定义的数组的联想了,其实也比较简单就是格式的 ...