linux学习--1. 文件系统
文件目录结构
闲话篇:
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. 文件系统的更多相关文章
- Linux学习笔记-文件系统和基本命令
目录 分区设备文件名 分区 挂载 文件目录 文件处理命令 目录处理命令 硬件设备文件名 IDE硬盘 /dev/hd[a-d] USB硬盘 /dev/sd[a-p] 光驱 /dev/cdrom或者/de ...
- (一)linux 学习 -- 在文件系统中跳转
The Linux Command Line 读书笔记 - 部分内容来自 http://billie66.github.io/TLCL/book/chap03.html 文章目录 文件系统 根目录 打 ...
- Linux学习之文件系统常用命令(七)
Linux文件系统常用命令 目录 df命令 du命令 fsck命令 dump2fs命令 df命令 df命令 统计文件系统的占有情况,分区用了多少空间,还剩多少空间 df [选项] [挂载点] 选项: ...
- Linux学习—导航文件系统
与windows相同,Linux操作系统也是以被称之为分层目录结构的方式来组织文件的.这意味着文件是以树形结构的目录中进行组织的,该树形结构目录可能包含文件和其他目录.文件系统的第一个目录叫做根目录, ...
- Linux学习之文件系统权限及表示
三类人 用户主(user:u):文件的所有者 同组人(group:g):与文件主同组的用户 其他人(other:o):除用户主和同组人外的其他所有人 三种权限 读权限(r):指用户对文件或目录的读许可 ...
- (大数据工程师学习路径)第一步 Linux 基础入门----文件系统操作与磁盘管理
介绍 本节的文件系统操作的内容十分简单,只会包含几个命令的几个参数的讲解,但掌握这些也将对你在学习后续其他内容的过程中有极大帮助. 因为本课程的定位为入门基础,尽快上手,故没有打算涉及太多理论内容,前 ...
- Linux学习之CentOS(三)--初识linux的文件系统以及用户组等概念
Linux学习之CentOS(三)--初识linux的文件系统以及用户组等概念 进入到了Linux学习之CentOS第三篇了,这篇文章主要记录下对linux文件系统的初步认识,以及用户组.用户权限.文 ...
- Linux学习笔记(一) 文件系统
对于每一个 Linux 学习者来说,了解 Linux 文件系统的结构是十分有必要的 因为在 Linux 中一切皆文件,可以说只有深入了解 Linux 的文件系统,才会对 Linux 有更深刻的理解 L ...
- Linux学习笔记之 Btrfs文件系统简介及使用
Btrfs 也有一个重要的缺点,当 BTree 中某个节点出现错误时,文件系统将失去该节点之下的所有的文件信息.而 ext2/3 却避免了这种被称为”错误扩散”的问题. Btrfs相关介绍: Btrf ...
随机推荐
- Springboot + 持久层框架JOOQ
简介 官网链接 JOOQ是一套持久层框架,主要特点是: 逆向工程,自动根据数据库结构生成对应的类 流式的API,像写SQL一样 提供类型安全的SQL查询,JOOQ的主要优势,可以帮助我们在写SQL时就 ...
- python 找到项目使用的所有组件和版本
1.下载模块 pip3 install -i https://pypi.douban.com/simple pipreqs 2.生成文件 pipreqs ./ --encoding=utf-8
- 个人第四次作业AIpha2版本测试(最终版)
这个作业属于哪个课程 软件工程 作业要求在哪里 作业要求 团队名称 RainbowPlan团队博客 这个作业目标 手动测试非本团队的小组程序,是否可以正常登录,正常运行 一.测试人员信息 测试人员 姓 ...
- 02--java--环境搭建
第一步,下载JDK 去ORACLE官网http://www.oracle.com下载 有安装版和绿色版,安装版一路下一步,绿色版解压缩压缩包就行了 安装版直接自动配置环境变量,绿色版需要自己配置环境变 ...
- c/python 的区别
c python ...
- 使用ob缓存简单实现页面静态化
<?php //接收新闻id,传统的方法查询数据库并显示数据 $id=intval($_GET['id']); //先判断该新闻对于的静态页面是否存在,如果有,则直接返回,如果 //没有,则查询 ...
- zerotier 远程办公方案
武汉新肺炎疫情下,搞得人心惶惶.很多公司都要求前期远程办公 我厂日常有在家远程应急支持的情况,所以公司很早就有VPN服务.只需要申请VPN服务,开通之后就可以连上公司各种公共资源. 然而对于一些非公共 ...
- Centos 7 部署lnmp集群架构
前言介绍 lnmp的全程是 linux + nginx + mysql + php; lnmp就是上述系统及应用程序的简写组合: lnmp其实已经代表了一个用户正常对一个页面请求的流程,nginx接收 ...
- springBoot 启动没有数据库配置报错
在没有配置数据库的时候, 直接启动springBoot 项目 会有报错 Description: Failed to configure a DataSource: 'url' attribute i ...
- 什么是ip地址、子网掩码、网关和DNS?
什么是ip地址? IP是32位二进制数据,通常以十进制表示,并以“.”分隔.IP地址是一种逻辑地地址,用来标识网络中一个个主机,IP有唯一性,即每台机器的IP在全世界是唯一的. IP地址=网络地址+主 ...