刚接触 linux 的 新手,总会被五花八门的目录搞蒙,今天一条视频带你彻底搞懂 linux 根目录下核心目录的作用。首先你要知道, linux 的 一切都从斜杠开始,也就是根目录, 所有目录文件、设备都挂载在他下面,就像大树的主干。接下来是 b, 这里存放着系统必备的基础命令,像 l、 s、 c、 d、 c、 p 这些咱们天天用的命令都在这里,所有用户都能执行。然后是斜杠, etc 系统的核心配置文件几乎都藏在这里,不管是系统设置还是服务配置,找他就对了。这可是运维工程师最常光顾的目录。 普通用户的个人数据存在哪里呢?当然是后目录,每个普通用户在这里都有个同名文件夹,就像咱们自己的小房间。那超级管理员、 root 用户呢?他有专属的入点, 目录权限最高,普通用户可进不去哦。系统运行中那些会不断变化的文件,比如日制缓存都放在外玩目录, 它就像个动态仓库,数据随时在更新。最后是斜杠 u、 s 二目录,大部分用户安装的软件共享库和帮助文档都在这里,相当于系统的应用商店。以上就是 linux 跟目录下最核心的目录功能,关注我,带你解锁更多 linux 与我为干货!
粉丝44获赞124

用微软来跑 linux 太卡了,给大家一个更简单的方式,五分钟搞定。我们先打开命令行,输一个 power shell, 以管理员身份运行。我们先把 wsl 装上,可以在 wsl 当中再装我们的 linux, 那 先设置它的版本, wsl 刚刚 set, 我 们用 wsl 二,然后你输 wsl, 刚刚 install 就 开始安装。 接下来让我们创建一个默认的用户,比如我输 us 一, 关于它的密码一和新密码,现在我们就进入到了 linux 系统当中,我们看一下当前目录, 在这个位置你可以进到加目录 cd, 大家熟悉的这个 linux 系统来了,是哪里呢? home us 一, 我们看 home 下都有什么?大家看有你的 us 一 装完了,我们看好不好用。我们可以从这个 windows 的 这个目录当中大家看,找到你刚装的这个午饭图。 装完之后呢?大家找到这个目录不? usr 一, 是不是找到你自己了?如果你有什么程序,你要去编程,要修改,可以把它拿过来。我这 d 盘有一个网络的程序,我把它粘到 linux 当中,怎么粘呢?非常的方便,那直接在这里粘贴, 那么 cd 来看,是不是程序就已经有了?那你可以把这个程序打开,然后进行我们日常的编程了。总结一下,对于 wsl 来说,它占的资源确实是比较少的, 我们就从一个单内存的情况,如果你用 wsl 来运行 linux 系统的话,内存基本上大于四个 g, 就 可以非常流畅的运行。而如果你用 vm 二再加 linux 这种方式呢? 你至少要八个 g, 它才能够保证不卡顿。我们将来如果写一些 c 代码做 linux 应用层开发,软件开发用 wsl 加 linux 是 非常好用的,一点问题没有。当然如果你将来做底层开发驱动开发, 就还要回到微软加 linux 这种方式,因为 wsl 这种方式它是共享的 windows 内核,它没有独立的 linux 内核,所以没有办法完成内核的编页驱动的调试。

今天我们要解锁的是安装考里 linus, 这是你踏入黑客世界的第一张入场券,如果你不懂它有多野,记住这句江湖黑话,考里学的好,劳饭吃到饱,别觉得夸张,这系统内置了几百种攻防神器,既是白帽手里的手术刀,也是黑客眼里的摇钱树。想不想知道怎么驾驭它?废话不多说,直接开干。 在之前的视频里,我们已经下载好了凯里、 linus 和 winmore, 并且顺利安装了 winmore, 那 今天我们就来完成凯里的安装。 在开始安装之前,我们需要做一些准备工作。把下载好的 kelly 压缩包夹到一个纯英文路径的文件夹中。现在我们来操作一下。首先打开之前下载 kelly 用的浏览器,在浏览器的右上角这三个小点中找到下载列表, 然后找到我们之前下载好的 kelly 压缩包,进入到压缩包所在的文件夹当中,我们可以右击鼠标去复制这一个压缩包。 接着为了确保路径是纯英文,我们需要在 d 盘或 e 盘这类非系统盘上,也就是除 c 盘之外的其他词盘新建一个英文名的文件夹,然后将我们刚刚复制的压缩包粘贴进去。 那这里我是选择 d 盘。在 d 盘当中,我们来新建一个文件夹,可以用拼音,但是不可以包含特殊字母。 我们进入这一个新建的文件夹当中,右击鼠标去进行粘贴。最后在这个文件夹里右击压缩包,选择己压缩到当前文件夹。我们可以使用电脑自带的己压缩工具,也可以使用其他的工具, 那我使用的是七 zip, 如果需要使用七 zip, 但是找不到同学也可以留言。好啦,准备工作就这么简单,接下来我们就正式进入安装环节。安装的第一步是打开 winmore, 打开 winmore 之后,界面看起来可能稍微有点复杂, 别慌,我们可以将它简单分成三大块,最顶上的是菜单栏,左侧是列表区,后续我们打开的所有虚拟机都可以在列表里面查看。 右侧是主窗口,第一次打开右边通常会显示一个主页,上面有三个选项。由于我们之前下载的 kelly 是 winmore 镜像版,所以我们直接使用打开虚拟机就可以了。接下来我们点击这个打开虚拟机, 然后找到我们刚刚解压缩的 kelly 文件夹,在 d 盘我们新建的文件夹系统当中, 然后点进去。进入之后我们会看到一个点 v m x 结尾的文件,它就是启动 k l 的 钥匙。如果你找不到这个文件,说明之前的解锁可能出现了问题,建议重新操作一遍。 顺利找到的同学,欢迎在弹幕里面刷,找到给我点反馈哦。接下来我们选中这个点 v m x 文件,然后点击打开 文本框,会自动把 k 里虚拟机加载到左侧的列表当中,右侧也会出现虚拟机对应的一些信息与操作选项,这里会有一个开启此虚拟机的操作按钮,我们双击接下来就静等待系统的启动。如果在启动过程当中出现弹框, 一般直接确定或者点试就可以了。到完成后就会进入 kelly 的 登录界面,默认用户名和密码都是 kelly, 输入之后点击 log in。 恭喜你就成功进入了系统, 到这一步,你的 kelly 就 已经安装完成了。如果你在操作中遇到问题,别担心,随时留言,我会尽快帮你解答。安装后,如果你想关闭虚拟机名称后面的小叉,然后点击挂起, 等待它挂起结束后,我们直接关闭 word 就 可以。最后简单总结一下今天整个安装过程,其实就是一个三步口诀,一、背背镜像。二、开开为 word。 三、选择选择点 vmx 文件,然后打开。 为了方便大家学习,我将今天的安装步骤制作了一份图文教程,如果需要可以在评论区告诉我,下个视频学习。我将今天的安装步骤制作了一份图文教程,我们下个视频再见!

皇宫皇宫在 linux 里找文件好难啊,总不能一个个文件加翻吧?有没有捷径呀?必须有! 神器范的命令安排上,不管是找特定名字、特定大小的文件,它都能秒找到。先学最常用的,按名称找,比如想在 home 目录找 test t, 就 说这个命令回车瞬间定位是不是超方便,还能按大小找。 比如清理大文件时,用这个命令找大于三十米的文件,一目了然。把加换成减,就能找小于指定大小的了。划重点,记公式范带加查找路径、加查找条件、加具体内容, 掌握这几个核心参数,找文件再也不头疼!想知道怎么找最近修改的文件,还能批量处理,找到的文件下期详细讲!好兄弟记得来蹲哦!

工作中最常使用的十五条滤镜词命令一、 ls 夜出目录下文件和子目录。 ls 杠 l 显示文件详细信息,比如权限、所有者大小,修改时间等。 ls 杠 a 是 显示所有文件包含隐藏文件。二、 cd 切换工作目录 cd 波浪线是切换到当前的 home 目录。 cd 点点是切换到上紧目录。三、 dw 显示当前目录的绝对路径。四、 cat 查看文件内容,比如 cat text 点 log。 五、 tail 查看文件末尾内容,比如 tail 杠 f text 点 log。 六、 grab 文本筛选 grab arrow text 点 log 在 text 点 log 中搜索包含 arrow 的 行。七、 ps, 查看进程 ps 杠一 f 显示所有进程的详细信息。八、 kill 终止进程 kill 杠九一二三,强制终止 pid 为一二三的进程。九、 make d i r 创建目录 make d i r test 杠铝泡子创建这个 test 铝泡子的目录。十、 rm 删除文件或目录使用时候需谨慎, r m 太点 log 就是 删除这个文件。十一、 cp 复制文件或者目录。十二、 mv 移动或者重命名 mv old name 点 t s d new name 点 t s d 将文件名重命名为 new name。 十三、 d f 查看此盘空间 d f 杠 h 显示磁盘的容量和可用空间。十四、 c h mod 修改文件或目录的权限,比如 c h mod。 七五五,文件设置文件权限为所有者权限。十五、 find 查找文件或目录 find 杠 word 杠 log 杠 name 星点 log 在 这个目录下查找所有点 log 后缀的文件。

好的兄弟们久等了啊,整理资料比我想象中的更耗时间啊!咱们第一期的技术干货内容呢,总算是正式整理好了,从系统安装到桌面命令行,到目录结构和系统管理,那么咱们话不多说,直接开始。 有没有人跟我一样,刚学运维的时候呢,被系统安装命令行文件系统搞到怀疑人生,装系统崩,敲命令错,删,文件荒,越学越焦虑,甚至想放弃的评论区扣个一让我看一下啊!其实我真的太懂这种无力感了,我刚学那会啊, 踩了坑都能绕地球半圈。装系统要么硬件不兼容,白下载一下午,要么分区瞎搞,开机直接黑屏,命令行记混一个字母报错,报半天找不到问题,文件目录分不清,手滑上错东西,急得直冒冷汗。新手学运维呢,最可怕的不是学不会,是瞎学,踩坑没人指,白白的浪费时间。所以今天不搞虚的,不玩套路,直接上硬货。就是我现在打开给大家看的这个思维导图啊, 专门针对新手避坑,把咱们学运为最常踩的雷点,最难的卡点全部梳理的明明白白。大家领到我的资料以后,对照着查看,这份学习技巧,可以让你少走很多弯路。先说说系统安装,这是新手入门的第一个大坎, 很多小白一上来就随便下载一个镜像在那瞎分区,以为能装就行,结果要么装不上,要么装网卡的没法用,白白的忙活一下午。我把镜像怎么选,分区怎么规划,硬件怎么匹配,这些避坑点全部标上了,避开就能一次装到成功,不用反复返工, nice! 再就是桌面和命令行新手必踩的第二个坑,刚开始习惯用桌面,结果服务器桌面巨卡,还占资源,切换命令行又记不住指令, 分不清权限,要么点半天没反应,要么手滑上了系统文件,哭都来不及。其实不用死记硬背,摸清核心逻辑,知道哪些操作绝对不能碰,慢慢练就能上手。我都帮你们整理清楚了,大家跟着去排查,就能快速的把桌面和命令行操作给完全弄明白。 还有文件系统新手最容易忽略的坑, linus 的 目录一大堆,哪个存配置,哪个存日制,哪个存预户数据,记都记不住,更别说权限管理了,一不小心就把重要文件权限搞乱,别人访问不了,自己也改不了。上班第一天就踩雷,太尴尬了。这些坑思维导图里面全部有解决方案, 牛逼!我知道咱们新手学运维,尤其是转行过来的兄弟,本来就有压力,没人带没人教,踩坑只能自己扛,越学越迷茫,甚至怀疑自己是不是不适合做运维。其实不是你不行啊,是你没找对方法,没有避开那些新手必踩的坑。这份思维导图呢,我特意没有放复杂的命令,主要就是怕新手朋友们看不懂,全是新手能看得懂、用得上的注意事项和 避坑技巧,不管你是刚入门的小白,还是想转行做运维的家人们,拿过去就能用,直接避开新手期百分之八十的坑。这些资料呢,依旧还是免费分享给大家,想要的粉丝评论区扣三个一,我拉你们进粉丝群, 资料统一发在群里,主打一个真诚关注我,下一期咱们讲新手必用的常用命令,相关的不讲复杂的,只讲能直接上手的,从零到一血运尾,再也不踩坑,不累耗,咱们下期再见!

大家好,今天这期视频我将给大家带来 mx 轴云图开发包的技术分享。这款开发包是围绕 mx cad 构建的完整 cad 云化解决方案工程集合 区别于单一的 sdk, 它整合了后台图纸转换、服务接口,开发前端项目示意、 mx cad 延伸编辑与浏览的全链路能力,是一套开箱即用的 cad 云化工程包, 能帮助开发者快速落地 cad 云系统的开发与部署,适配 windows linux 多操作系统,是 cad 云化开发的高效解决方案。 首先我们要获取 web cadsdk 开发包,可以打开官方网址,在页面中找到开发包下载区域,根据自身使用的 windows 或 linux 系统选择对应版本,即可启动下载,为后续 cad 云化开发做好准备。 mx pro 云图开发包是一个完整的前后端一体化工程,将压缩包解压到本地后,你会看到三个核心部分,并目录包含后台服务组建, s i c 是 前端势力源码以及根目录下的启动脚本,可一键拉起整套服务。 无论是 windows 还是 linux, mx joe 云图开发包的核心架构完全一致,都包含并后台服务 s r c 前端视力和启动工具、功能、目录结构、接口设计全部相同。 你看到的是一套统一的 cad 云化工程,区别仅在于启动方式, windows 上双击 mx 三 server x 即可一键运行, 而 linux 用户需要执行 start demo sh 脚本以及查看 linux demo 启动说明 txt 文本,所以平台不同操作略有差异,但核心能力始终如一。 下面我将以 windows 为例来讲解一站式入口中所包含的内容, linux 系统下也是同理,只不过操作方式变成了启动脚本后,直接访问对应的视力地址。双击 mx 三 server x 后,启动程序会自动运行后台服务。 第一步,点击开始 web 服务,这将启动三千端口的前端视力站和一千三百三十七端口的 node js 接口。服务 第二步,我们来一次体验各项功能。点击启动浏览器查看演示,可自动打开本地视屏页面,直接在浏览器中无插件预览 d w g 图纸,体验清亮高效的在线 cad 浏览能力。 wilbras 是 基于 vivo 的 清亮级图纸浏览组建,支持快速加载 d w g 文件,适用于指读场景。 brassframe 则是通过以 frame 方式嵌入 cad 浏览器,便于集成到现有管理系统中。 启动 mx cad 打开的是完整的在线编辑器,支持图层管理、实体编辑、标注、修改等全功能操作,相当于一个网页版 cad 客户端。启动 mx cad 三 d 提供三维模型查看能力,适用于建筑、机械等需要。三 d 可化的场景 mx cad gis 和 cad gis 是 空间数据融合方案,可将 cad 图形叠加在地图、底图上,实践工程图纸与地理信息的联动展示。 点击打开 g i s demo 目录,可进入 g i s 视力源码,方便开发者二次开发。 no j s 服务测试页面提供了接口调用测试工具,你可以上传 d w g 文件,直接测试、转换、提取图源等功能,无需写代码即可验证服务状态。 打开 mx cad 代码开发目录和打开 browse 代码目录分别指向编辑器和浏览组建的源马路境, 便与你进行定制化开发。转换 d w g 到梦想文件格式是调用包内的转换程序,可将标准 d、 w、 g 转换为 max web 格式,提升后续加载性能。 点击观云按钮,可查看当前 mx 三 server 的 版本信息,有助于开发者确认运行环境与文档或 s、 d、 k 的 兼容性,也为问题排查提供基础依据。 这些功能全部基于同一套 mxdraw 云图架构,模块清晰,接口开放,真正实现了 cad 云化的一站式部署, 并目录承载全部后端能力。包含 mxdraw 云图开发包的全部后端组建,包括图纸转换引擎、 mx cad cad 核心服务 mxdraw server 和基于 note g s 的 restful 接口服务 mx service code。 其中, mx cad 提供图纸格式转换的核心程序,负责将 d、 w、 g 等原始 cad 文件转换为 mxdraw 专用的清亮 web 格式。 mxdraw server 是 一个基于 express 的 nosgs 服务,运行在幺三三七端口,里面封装了图纸上传、图纸裁剪、格式转换等 restful 接口。 mx service code 包含图纸后台处理功能,可在后台实现调用强大的 cad 能力,比如后台提取图纸数据、输出 json 文件。 s r c 目录包含 mxdraw 云图开发包的前端势力项目,包含图纸浏览、在线编辑、 g i s 融合等场景,提供 v o、 react 和原声 h t、 m l 等多种技术站的可运行源码,便于快速集成与二次开发。 进入 sample 目录,你会看到多个前端视力 app 是 通用嵌入视力源码目录,它们分别基于 vivo、 react 或纯 html 编辑,开箱即用,是你集成 mxdraw 能力的最佳起点。 brows 是 指读浏览版 cad 项目视力原码目录。 idt 是 编辑版 cad 项目视力原码目录,其中包含了二 d 项目和三 d 项目。 gis 是 实现 cad 与地图融合的项目。视力原码目录 t s web 目录是 mx 轴云图开发包中负责 web 前端服务托管与接口代理的核心组建及与 node js 与 express 框架构建。 它不执行 cad 图形计算,而是作为用户浏览器与后端 cad 引擎之间的桥梁,提供页面加载、资源分发和轻量级 api 转发能力。 无论是 windows 还是 linux, mx pro 云图开发包在项目结构和功能能力上完全一致, 你看到的并目录都包含 mx cad、 mxdraw server 和 mx service code src。 三炮下也都有 brass、 edit、 gis 等完整的前端势力。这意味着你在仁义平台开发的逻辑都可以无缝迁移到另一个平台。 唯一的区别在于启动和部署的操作方式,在 windows 上双击 mx 三 server x 即可一键启动后台服务和前端演示。 而在 linux 环境中,由于系统权限依赖库和进程管理机制不同,你需要先阅读根目录下的 linux demo 启动说明 txt, 再执行 start demo s h 脚本来正确出场服务。 所以请放心,核心不变,接口不变,架构不变,你只需根据操作系统调整启动步骤。 以上就是 mx pro 云图开发包的核心结构与使用方式,希望对你快速上手有所帮助,感谢观看,谢谢大家!

欢迎来到六十秒掌握 linux 命令第四集,今天我们来聊聊 mkdi 二,你的文件是不是也乱糟糟的?没关系,一个命令就能帮你快速建立秩序。 这个命令就是 mkdi 二,也就是 nick directory 的 缩写,专门用来创建新目录。最简单的用法就是这样, mkdi 二后面直接跟上你想创建的目录名, 想一次创建好几个也行,把名字用空格隔开,一次搞定。但如果我想创建一个文件夹里的文件夹,也就是嵌套目录,该怎么办呢?直接这么试,你会发现出错了, 因为他说父母录 project 不 存在。别急,解决方案来了,用上这个强大的 dash p 选项,你看,加了 p, 它就会自动创建所有需要的父母录,是不是超级好用?想知道它到底创建了什么?加上 vs 选项,它就会把创建过程打印出来, 甚至还能用 m 选项,在创建的时候就直接设定好目录的权限。所以记住了 p、 v, m 这三个选项,让你对创建目录卤入之长。 哦对了,万一遇到 permission denied 权限不够的提示怎么办?很简单,在命令最前面加上速度,获取管理员权限就行了。再来个小技巧,如果目录名里有空格,记得一定要用引号把它包起来。 来,我们快速总结一下,多用 p 空格加引号,全线问题找速度!好了,现在你已经完全掌握 m, k, d, r 了,打算先整理哪个项目呢?

测试工程师的日常离不开 linux 命令的高效操作,今天带大家快速学习测试工程师常用的 linux 核心命令,从而帮助大家快速搭建测试环境,定位 bug 分 析日制,让我们的测试效率翻倍。 相关的文档呢,我已经整理好,大家如果有需要可以直接找我要。我将测试工程师常用的核心命令分为以下六个模块,第一个呢就是我们了解一下 linux 的 常规的文件系统的组成, 第二个的话就是我们系统的命令,第三个文件管理命令,第四个文本内容查看命令,第五个文本查找命令,第六个文件编辑命令。 首先我们来看一下常规的 linux 文件系统,它包含的具体的目录大概是什么样子的,那我们要看到这些目录呢,我们得先连接我们远程的服务器,这里呢我使用的是 finalise 这样的一个工具来进行连接, 我们新建 s h 连接,然后在这里呢输入我们的主机,也就是我们服务器的 ip, 然后输入你的用户名密码,点击确定, 然后我们点击连接,就可以连接我们远程的服务器,这里呢我是使用的阿里云的一个服务器, 那我们来看一下在我们这个服务器里面具体的一个基本的文件目录大概有哪一些,我们会有这个并目录, ot, dv, etc 等等,然后每一个文件呢,它都一般都是用来装对应的具体的一个内容,这里呢我们在使用的时候最好就按照规范来放置的具体的一个内容。那我们第二款呢,就是来看一下我们系统的一个命令, 我们在实际的测试过程当中,经常要去看一下我们这个 ip 地址,那么看 ip 地址呢就会常用的有三个看法,一个呢是 ipa ip address, 然后 if config 是 我们用的最多的,我们来看一下这个呢,我们就可以看到具体的这个 ip 地址, 然后 ip address 也是一样,然后还有我们就是 if config 可以 看到我们具体的这一些地址的一些内容,这样的话我们就可以了解具体的一个服务它的一个地址。 那我们第二个呢就是我们要去看我们这个服务能不能拼的通,也就是看我们这个服务器有没有挂,那我们就可以通过聘领领来拼具体的这个 ip。 那 我们这里假设用一个本地幺二七点零点零零点幺来拼一下 这里呢我们可以看到它具体的一个反馈都是一个正常的,那我们这个拼是没有问题的。接下来我们可以去查看系统的一个时间, 我们可以用 date 命令这个系统的时间我们在什么场景之下会使用呢?就是我们涉及到测海外项目的时候,因为不管是像英国啊还是美国啊,它的 时区和我们都不一样,所以呢它的时间都不一样,那这里针对于服务器时区的这个使用以及它的时间的展示都会存在一个误差,那我们要准确的去判定到底是哪一块有问题的话,那我们就可以通过 date 命令看一下服务器设置的一个时区。 那第四个呢就是我们这个清屏的这个命令,我们在页面上敲的多了之后,不想展示那么多,那我们就通过 clear 把它清掉, 这个是我们几个简单的一个命令,那么接下来就来看一下我们常用的一些命令,就是我们查看服务器的一个进程信息,这个我们用的最多的是通过 ps 杠 e f, 然后再加上管道符 来去筛选我们想要筛选的具体的一个服务。比如说我们想搜索买收口,然后它就会去将买收口相关的服务的一个进程,包括它的 pid 以及它的一个进程信息给大家展示出来。 这个我们主要是来看某一个服务它有没有正常的运行,以及它运行过程当中有没有具体的一个异常。然后接下来呢就是我们这个 top 命令, top 命令呢,它可以用来实时查看系统的一个进程,同时呢它也是我们在性能测试里面 做性能监控最常用的一个命令,它可以查看具体的 cpu 内存,它的一个具体的一个占用,以及具体是哪一个服务占了多少,这样的话我们就可以清晰的看到具体是哪一个服务有性能的一个问题。 再接下来呢我们是杀死进程,这个是我们发现某一个服务,假设我们在系统的这个运营过程当中有一个服务,他频繁的占用我们的这个进程,但是呢他又没有什么作用,那我们就可以通过 kill 命令把它进程杀死。 kill 呢我们也有一个强制的,就是杠九就可以强制关闭某一个进程,这个进程呢我们后面跟着是进程的 pid, 也就是我们刚刚通过那个 ps 杠 e f 查看到的那个具体的内容。 然后再接下来我们就是更改这个系统的这个权限,这个权限呢,大家可以在下面这里可以清晰的看到, 这是它的一个具体的权限,它会分为这个啊 w 叉,也就是我们可读、可写、可执行这三个权限。如果我们 change mode 直接是 change mode 七七七,那就证明是赋予它最大权限, 这个是分组的一个具体的一个实现。然后再接下来的话,就是我们这个文件管理的一个命令,这个主要是查看文件 以及切换目录等等具体的一个命令,我们具体来看一下。第一个呢,我们通过 u s 这样的一些命令可以来查看我们具体的一个文件的一个展示,那么比如说通过 u s 杠 l 就 可以看到我们当前目录下它的具体的一个目录的一个展示,具体的一个内容, 然后我们想要切换到某一个目录,下面就通过 cd 命令进行一个切换。比如说我们要切换到这个 o p t 这样的一个目录,我们通过 cd o p t 进来之后, 然后我们这里面就可以通过 a o s 杠 u 再来查看它,就会是具体的这个目录里面它的一个内容。那么要往上的话,我们可以通过具体的 cd 报号往上一层级去进行跳转。 如果你想要查看你当前的这个层级是哪一个层级,我们就可以通过 p w、 d 来进行一个查看,这个就是 opt 这个层级,这个是简单的一个查看,那我们要新建一个文件夹 或者新建我们这个目录,那我们用到的命令呢?这两个一定要做一个区分啊,新建文件夹和新建目录,我们可以这样去记哈,因为新建文件夹文件夹呢,它的缩写呢就是其实就是一个 d i r, 那 我们 mk 呢?就是 mk e make d i r make dear, 那 我们这个就是新建文件夹, 比如说我们现在随便新建一个 s 吧,然后我们再点 s 杠 a, 大家就可以看到这里呢,我们可以刷新就可以看到这样的一个文件夹, 那我们要新建一个文件呢,就通过 touch 命令 touch, 比如说 s 点 t f t 新建一个 t f t 文档,那么 a s 杠就可以查看到最新的新建的这个文档, 这里呢也可以刷新的同步。那我们新建完之后,如果发现这个东西不是我想要的,那我们就涉及到删除的这样一个命令,我们可以通过 im 去删除我们这个 s 点具体的这个文件,这里呢它会让你去做一个确定,那我们确定了之后,我们就可以看到具体的这个文件对应的一个删除, 这里我们刚刚没有敲这个,然后我们还可以就是删除我们的这个文件夹,删除我们文件夹这个 s, 那 我们再来看一下 s 杠,哎呦,刚刚这两个文件就被删除了,这个就是我们简单的一个删除,删除呢,我们也有个强制删除 im 杠 rf, 然后我们又会涉及到就是拷贝移动或者修改文件的这个命名这样的一些操作。那么拷贝和移动呢?我们可以用 cp 一个 copy 这样的一个命令,比如说,呃,我这里先新建一个文件,然后我们将这个文件就复制, 就还是当前这个目录这里呢?如果你不给他呃切换其他的这个目录的话,那他就会提示当前有一个相同的了,那我们就可以呃去进行文件命名的一个修改, 那我们这里呢就可以通过这个 mv 命令,有时候我们把 s 点 txt 改成 s 一 点 txt, 这个呢它会是将我们这个文件名进行一个改动,那我们来刷新看一下,这里呢就变成了 s 一 点 t, s, e。 再接下来呢,我们会涉及到压缩和解压的这个命令,这里呢这个踏命令 我们是最常用的一种压缩方式。然后还有我们这个呃 ar 和 zip 命令,它的具体的一个解压这里呢? tab 命令会跟具体的一个参数,这里包括杠 z、 杠 x、 杠 b、 杠 f 具体的一个内容,杠 z 的 话就是支持这个 g zip 解压文件, 然后杠 x 的 话就是从压缩的这个文件中提取文件,然后杠 v 的 话就是显示我们的这个操作过程。杠 f 的 话就是指定压缩这个文件, 假设我们要压缩一个它包的,那我们就横杠 z、 x, v, f 进行一个解压,那我们要压缩的话就把 z 改成了 c, c 的 话就代表建立新的压缩这个文件。然后第四块的话就是我们这个文本内容的这个查看的命令, 这个我们会涉及到几个命令,都是可以进行查看的,但是呢它的这个查看分前后以及它具体的一个设置不太一样。比如说第一个这个看命令,它就是查看文件当中的全部信息, 它适合查看小文档,因为大文档它的内容比较多,你全部展示出来,你看以及翻页就比较麻烦,所以我们就会使用到这个 hit 命令, 类似命令来查看部分,这个呢 hit 呢,它可以去通过杠 n 设置查看前几行,然后类似命令呢,它是以分页的方式来查看,然后还有一个 tail 命令, tail 命令就和 hit 它是相反的, hit 呢,是显示文件的前几行,然后 tail 命令呢,它就是显示文件的最后几行, 也就是最新的一个日制,因为我们写日制肯定是最从后面新增最新的一个内容,那我们在实际的查看日制过程当中,我们用的最多的就是这个 tail 杠 f 这样的一个命令,杠 f 呢是代表实时滚动,那我们就可以实时的看到最新的一个日制,那我们这里呢,我们 往这个 s 一 里面去写一些东西,我们随便输入一些内容,然后保存退出,然后我们现在通过这个 cat 命令来查看这个文件,我们就会展示所有的一个内容。 然后我们如果是通过 hit 命令,我们加一个刚刚展示前五行,那我们就是只会展示前面一二三四五。那反过来呢,我们这个 tail 杠 f, 然后以及我们这个文件, 它就是从后面来展示,如果你不加杠 n 的 话,默认的就是后十行,黑的也是一样,不加杠 n, 它默认的是前十行。 那我们再来看一下类似这样的一个命令,它这个呢就是一个分页展示,大家就可以看到具体的一个分页,往下翻它就会进行一个分页,当然这里具体的一个内容没有那么多,它分页展示的效果就没有那么明显, 这个就是我们查看,那接下来呢,我们再来看一下文本的查找,文本的查找呢,主要是通过 find 命令或者通过管道符来进行一个筛选。 我们来看一下,就跟我们在我们 windows 目录下面,你要去找一个具体的一个文件,那我们就通过 windows 的 那个搜索功能来进行查找。那在我们 linux 下面,我们是通过这个 find 命令进行查找,比如说我现在想要查找我们这个某个路径下面,比如说 o p t, 然后名称是 s e 的, 我们这个具体的一个内容哈, 他就去展示,那我们再来看一个哈,我们找一个买收口,他就会展示出来所有的成绩里面的一个买收口,这个就是我们 find 命令去搜索对应的这个关键词的。然后再接下来呢就是我们这个管道服配合我们这个命令执行的。 我们这个管道服刚刚我们 ps 杠 e、 f 也用到了,现在呢,我们呃 ps 杠 a u x 它也是用来去查看具体的一个服务器进程的,那我们现在通过这样的一个命令来查一个 s h d 的 这样的一个进程, 看一下系统里面有没有管道服的作用呢?其实就是一个筛选的一个作用,我们就可以看到具体的一个服务的一个信息,但如果我们把这个管道服去掉,它就会展示所有的进程, 这个就是管道服的一个筛选功能。然后再接下来呢就是我们这个文件内容的一个查找,这个就是查找到具体的文件里面包含的一些内容了,那比如说我们现在我想要去看某一个文件里面是否包含 test, 那 我们先把这个文件里面去加一个,加一个 test, 然后我们就通过 group menu, 然后来搜索 test, 在 哪个文件里面搜索呢? o p t 下面的 s e 点 t s t 大家就可以看到,可以搜到这个关键的内容,那这个看的还不是很明显,那我们来搜索一个里面有多个内容的,比如说我们搜索九刚,我们那个文件里面有很多的九,大家就可以看到它会把所有的九都搜索出来, 然后如果你想要知道它到底在哪一行,我们肯定不可能说想知道这个搜索出来就这么一个数字,放在这对我们来说没什么作用,那我们要知道它的这个关键词在哪一行,那我们就加一个杠 n, 这个呢就会展示我们具体在哪一行, 为什么要做这样的一个操作呢?这个是我们要对具体的某一个配置文件进行修改的时候,我们要针对性的去找到某一个关键词,他到底在哪一行,我们才好针对性的去快速的找到。这个就是我们这个的具体的一个应用的一个场景。 那再往下的话就是我们文件的一个编辑,这个刚刚也用到了具体的这个命令,也就是我们的 vm 这样的一个命令。在我们 vm 或者 vi 命令下面呢,它总共分为三个模式,我先直接进来, 第一个模式呢叫命令模式,第二个叫输入模式,第三个叫底线命令模式。然后命令模式呢,我们是按 a 进行一个切换,然后我们输入模式,按这个 i 进行一个切换,然后底线模式就通过 esc 回退,然后通过冒号,也就是我们这样执行保存退出这样的一个 操作。那我们来看一下这个底线的这个命令模式,也就是我们刚刚保存退出的。 我们冒号之后,如果是单纯的是 q, 它只是退出程序,然后单纯的 w, 它就是保存文件,然后 wq 也是我刚刚使用的,就是保存退出。如果你在实际的保存退出过程当中发现退不出去,那我们就加一个感叹号,强制保存退出, 也就是 wq 冒号强制保存退出,这个就是我们的命令模式。那我们再接下来来看一下我们这个油标切换到输入模式, 输入模式呢,我们按这个 i、 o、 a 这样的一个字母就进行输入模式的一个切换了。切换到输入模式之后呢,我们就可以输入我们具体的一个内容了,比如说按 a, 它这里就显示成插入了,然后回退,我再按 i 又显示插入,再按这个 o 也是显示插入,我们就可以去进行具体的一个内容的一个输入了。 然后呢我们就要来给大家讲一下我们进入这个模式之后他的一些简单的操作,比如说我们光标的移动, 我们就可以通过上下具体的这个翻页来进行内容的一个切换。同时呢我们还可以通过这个 g g, 大 写的 g n g 去进行具体的一个移动,比如说我们这个他两个小 g, 他 就会直接切换到第一行, 两个小 g 直接切换到第一行,再翻到下面切换到第一行,那如果我们是大 g, 就 切换到最后一行,如果是呃我们要指定具体的某一行五大 g, 它就会切换到,直接切换到五,这个就是我们和刚刚具体的某一个功能, 就是我们通过 group 找到具体的行数在哪一行的时候,我们就可以通过刚刚这个命令直接切换过去,这样就可以快速的切换到我们具体的内容所在的地方,进行配置文件的一个修改。然后再往下呢就是我们一个简单的进阶,也就是搜索替换。 在我们 v i 命令下要进行搜索的话,它有两个常用的方式,一个是斜杠,比如说我们搜索 t x t, 它会高亮显示到这儿,然后如果我们搜索九,它就会高亮的显示这个所有的这个九,那这里它又有个冒号来去搜索冒号呢?它是代表什么意思? 它是光标向上去寻找,然后斜杠呢是光标向下去寻找,这个就是我们两者之间的一个区别, 然后我们要显示行号,我们就可以通过冒号 set n u 就 可以将我们这个文件每一行的这个行号给它展示出来。然后再往下呢就是我们要实现这个某一个内容的一个替换,快速的替换,也就是我们刚刚要去寻找到它, 寻找到它,然后将具体内容替换,那我们就可以通过这样的一个 mini 来替换,比如说我们想把第几行到第几行寻找某个制服,然后将它替换成另外一个制服,比如说我们就把刚刚那个 tft 来进行一个替换冒号,然后从第一行到最后一行, 然后我们要将 test 递换成 word, 然后我们寻找替换,大家可以看到就实时的替换成我们这个 word 了,这个就是在我们 vi 命令下的一个搜索替换,这样的一个具体的一个操作,这个是属于 vi 命令的简单的进阶, 这个大家掌握了之后,在面试过程当中就可以呃主动的去把这个进阶的东西给它输出出来,然后再接下来就是我们具体的内容的一个删除复制粘贴,这个就比较简单了,比如说我们到这个九, 我们一个小 x 就是 向后删除一个字母,然后大写的 x 向前删除一个字母,然后如果你想连续的向后删除多个字母的话,那我们就可以在这输一个二 x 去进行一个删除。然后我们如果想剪切你所在的这一行,比如说我们到这 d d, 他 就是把这个 word 这个内容给他剪切掉了, 然后就是我们复制,比如说我现在放在这个九上面刚刚剪切的内容进行具体的一个复制了, 这个就是粘贴复制,我们就将刚刚剪切的内容进行粘贴复制了,这个就是我们文件编辑涉及到的具体的一些操作。以上的话就是我们作为一个软件测试工程师常用的 linux 的 命令, 掌握了这些命令呢,测试环境的搭建,日制的排查,新增的监控都能够轻松的搞定。那么你在平时使用过程当中最常用的是哪一个 linux 命令?大家可以一起来分享一下你的实战经验。

六十秒掌握 linux 命令,今天咱们来看一个定位神迹。哎,你是不是也经常在终端里转来转去,一下就不知道自己在哪了?别慌,有个命令,它就是你在终端里的专属 gps, 帮你瞬间定位。 这个命令就是 pwd 全昌式打印工作目录,专门告诉你当前的确切位置, 咱们来上手试试。先切换目录,比如进到这个 vlog 里面。好的,用 cd 命令一下就进来了。那么现在我们到底在哪呢?敲一下 pwd 就 知道了, 看他马上就打印出了完整的绝对路径,这下就清楚了。嗯,但有个情况比较特殊,就是符号连接,也就是快捷方式。那会怎么样呢?好,我们现在就来建一个叫 my log 的 连接,让它指向杠 y, 杠 log, 先用 r n 杠 s 创建好,然后 cd 进去这个新的 my log 目录,这时候再用 p w、 d, 你 看它显示的是连接的路径,不是真实的那个。 这就引出了两个关键概念,逻辑路径和物理路径。你看,用杠 l 显示的就是逻辑路径,而杠 p 呢,就显示真实的物理路径。 所以说,关键就看你的任务需要哪一种路径了。这一点啊,在写自动化脚本的时候尤其重要。 在脚本里,我们通常会把 pwd 的 结果存造一个变量里,方便后面用。就像这样,用 pwd p 杠 p 就 能确保你拿到的是真实的物理路径。好了,快速总结一下, 默认 p w d 显示逻辑路径,杠 p 显示物理真实路径,在脚本里可以用它来存变量。那么问题来了,你的下一个脚本到底需要逻路径还是物理路径呢?

去去,我们 browser 啊,就是我们装的这个浏览器啊,它们的主要放的位置都是放在这里,比如说我们上的 v s code 啊,这些也会放在这里面。 看我们装的 v s code 的 其实就是 code, 它们主要放的路径都在这里,这里就是 就是我们常见的 app, 通过 app get 这样安装的软件都是在放在这里面的,然后另外的话就是 d m 我 们就不用管了,这个跟我们常见的就是可能这个就没有太大的意义了,这有些什么应用的软件程序之类的,我们可以不忽略,它可以用的上, 然后另外一个就是引入的,引入的,我们可能在装一些软件的时候,我们比如说 ap t get 浏览器,某些叉叉叉,这一个具体的上第一位,然后或者内部库之类的,他的头文件一般就是会放在这些位置来的。比如说我们可以做个举例, ap t get is, 哎呀,我看有个什么,我给你们举个什么来, ok, s s, 我们 s, 我 找一个 dv 的 文件给大家展示一下,这样我们我们 s 应该是叫 label, 我 们比如说我们可常见的用的 label 之类的,哈,我们 open s s, 就 以这个 skip 吧,我们就以 skip dv 吧,所以这块我们就举个例,具体它用的是什么我们就不关心了。 好,我们可以用这个,这个盘大家用的比较多一点。 boost 库,比如说我们 boost 库有这么多的 label 库,我们比如说我们要装一个 label boost, 嗯,装一个 logo 吧,装一个 logo, 装一个 duv 的 版本,它问一下,我们点一试, 这里的话,因为这个有点大,所以可能需要花个一两分钟 变成这样了,而现在这个 u 盘图上面的默认的系统,这块装的 boss 的 logo 还会提示你有些什么建议安装的,你可以自己去选择安装。刚才我们进了这里面, 正在正在解包, 好,我们装完了,我们可以看一下这里应该是会有一个 boost 的 目录了,可以看见没有,这块就是我们当你使用 a p d g 的 安装一些,安装一些 u 盘图给你提供的三方库软件的时候,这时候你安装的头文件就可就在这个 user include 的 下面 对应的一些文件夹,所以大家有大家如果说是在用 a p d get 安装一些开发环境的时候,然后使用某一些头文件的时候,大家可以在这个目录下面去找寻你安装的三方软件, 想要观看完整视频可以在这里找到我哦。更多汽车专业知识尽在搞一下汽车电子。

lenox macos 下安装 tano o s 客户端,登录 tano o s, 点击部署,选择 lenox macos 展示安装命令, 打开命令终端,切换到安装目录,下载 tano o s 客户端解压,进入解压目录, 拷贝客户端安装命令到终端运行,安装成系统服务, 拷贝客户端,启动命令到终端运行。客户端安装完成, 刷新页面可以看到客户端已上线,点击进入可以操作设备,现在可以验证 tano o s 提供的功能,以云盘方式访问和操作设备上的文件。 提供命令交互方式操作设备 s s h 功能,访问设备所在网络内的其他机器。 我的应用功能,将设备所在网络内的 web 应用提供公网地址访问。

做软件测试的,谁没被 linux 命令难住过?服务器出问题,急着登上去排查,结果对着黑窗口一脸懵。想查报错日期敲不对命令 搜关键字不知道加啥参数,搭个测试环境更是步步错光,着急啥用没有。其实咱测试岗根本不用死记几百个 linux 命令,高频用到的就二十来个,把这些练熟,百分之九十五的工作场景都能应对。 我按实际工作需求分好了类,记起来超省心。查日历这块, tell f 实时看滚动的报错信息, grab 高量搜关键字,再配合 last 翻页,海量日历里纠问题贼快。搭测试环境, cd 切目录 l s 看文件, cp 和 mv 挪测试包是基础, vm 改配置 s c p 或 r z 传文件 这些每天都得用。服务器卡了就用 top 看 cpu 内存, free man 看剩余内存, 一眼判断是程序还是资源的问题,要备份数据,传日制套儿,打包解压的命令,记牢,省时又省力。 不用备一堆用不上的命令,把这些核心的练手,日常工作顺风顺水,面试备问也能对答如流。我把这些高频命令整理成了速查手册,按场景分类,还配了实操例子,一看就会。想要这份 linux 命令速查手册的评论区扣 linux, 关注我直接发你。

今天我们想聊一聊 linux 的 文件系统以及这个虚拟文件系统 vfs 到底是怎么工作的,然后包括文件的 i o 到底有哪些类型?最后我们会聊一聊怎么去监控和优化文件系统的性能。嗯, 这几个方面都挺关键的,那我们就直接开始吧。好的,我们首先要探讨的主题是 linux 的 核心设计哲学, 一切皆文件。 linux 是 怎么把各种各样的资源都统一成文件来管理的呢?其实在 linux 里面,几乎所有的资源都会被当做文件来看待哦。不管是普通的文文档目录,还是说一个硬件设备,比如硬盘,又或者是一个打印机, 甚至是一个网络套接字,它们都被抽象成了文件,然后用一套统一的方式来管理哦。所以程序员不管是要操作硬件还是要操作目录,用的基本都是同一套系统调用吗?没错没错,就是用 open write、 write 这些系统调用就可以操作所有的资源。对,这样的话, 编程的接口就变得非常的统一,然后系统资源管理也会变得简单很多。那缩影节点也就是 enod, 它在文件系统里面到底扮演了一个什么样的角色?其实可以把 enod 看作是文件的身份证,它里面存储了这个文件的所有元数据, 比如说文件的类型,访问权限,文件的所有者和所属组,还有文件的大小,以及这个文件的创建、修改和访问时间,然后还有指向文件数据快的指征啊。 这么说 innote 里面其实并不保存文件名喽?对的, innote 里面是不保存文件名的,系统是通过 innote 号来区分不同的文件,而不是文件名, 然后 innote 本身是存储在磁盘上的,每一个 innote 都占据一定的空间。明白了,那目录像也就是 directory, 它到底是怎么帮助我们在文件系统里面进行导航的? 目录项其实是内核在内存里面维护的一种数据结构,它记录了文件名对应的 innote 指征,还有就是目录的层级关系, 所以有了它之后,系统在查找路径的时候就会非常的快。所以说目录项其实就是连接文件名和 innote 之间的一座桥嘛。没错没错,目录项里面有文件名和 innote 指征,然后还有指向父目录和子目录的指征, 它是一个在内存里面的缓存,不是永久存储的,而且它是一个多对一的关系,也就是说多个目录像可以指向同一个 in node, 这也就是为什么会有硬链接这个东西。原来如此,那我们想要访问一个文件的时候,系统到底是怎么一步一步找到这个文件呢?是这样的,当用户输入一个文件的路径名之后, 系统首先会去便利目录像的缓存,然后根据这个路径名找到对应的音斗的号,拿到这个音斗的号之后呢,就会去磁盘上面把相应的音斗的结构读出来, 最后通过音斗的里面的指针就可以找到存储文件内容的数据块,然后把数据读出来。哦,我还有一个问题啊,就是磁盘是怎么通过这三个分区,超级块、 in node 区和数据块区来协同工作的?超级块它是整个文件系统的大脑, 它保存了整个文件系统的信息,比如文件系统的类型,总块数、空闲块数,还有 inote 的 总数。 然后 inote 区就是专门用来存放所有文件的 inote 结构的,记录了每个文件的原信息。 最后数据快区就是真正用来存放文件内容和目录的 dantry 信息的地方。嗯,我们现在来了解一下虚拟文件系统 v f s, 它到底是怎么解决不同文件系统的接口不统一的问题的。其实 linux 下面是可以支持很多种文件系统的嘛,比如说 excel 四 x f s, n f s 等等。 然后每一个文件系统的实现细节都是不一样的,那 v f s 就 定义了一套标准的数据结构和接口,比如说 open read 这样的接口,然后所有的文件系统都必须要实现这些接口, 所以这样的话,用户和内核就可以通过这套统一的接口来访问各种不同的文件系统,而不需要关心具体的实现细节。所以说 v f s 就 相当于一个翻译,把上层的统一调用,翻译成各个文件系统自己能懂的命令。对,没错没错,它就是相当于一个翻译官 接收了用户的这些统一的调用之后,会根据不同的文件系统翻译成对应的具体的函数去执行, 然后把各种复杂的差异屏蔽掉,让你感觉好像操作所有的文件系统都是一样的。我想知道 vfs 具体的四层价格模型是哪四层?从最上面开始的话,第一层就是应用层,应用层的进程通过系统调用接口和文件系统打交道。 然后第二层就是 vfs 层,它是整个架构的核心抽象层,主要是提供了一套统一的虚拟文件系统接口,屏蔽掉了下面各种不同文件系统的差异。所以用户进城其实是完全不用关心底层用的是什么文件系统的,对吗?完全不用关心。再往下第三层就是具体的文件系统层, 比如 x t 四, x f s 等等,它们负责真正的文件操作逻辑。最后第四层就是缓存和块儿设备层,这里面包括了页缓存、目录像缓存,还有块儿设备驱动, 主要是负责和物理磁盘高效的交互。 linux 支持这么多种文件系统,它们主要是分成哪几大类呢? linux 支持的文件系统主要有三大类,第一类就是基于磁盘的文件系统,比如 x t 四 x f s b t r f s 还有 n t f s 这种,它们的数据都是保存在本地的物理磁盘上面的,是可以长久保存的。明白了,那第二类呢?第二类是基于内存的文件系统,比如斜杠 pro k s s 还有 t m p f s 这些文件系统的数据其实都是保存在内存里面的,所以它的访问速度会非常的快,但是机器重启之后数据就会丢失。然后第三类是网络文件系统,比如说 n f s s m b c i f 还有 c f f s 这种,就是通过网络协议去访问远程服务器上面的文件。嗯, 然后我们来进入一个比较关键的话题,就是文件 i o 的 分类,文件 i o 到底有几种分类方式?然后每一种分类里面不同的类型到底有什么区别? 文件 i o 其实有四个比较关键的分类维度,第一个维度就是缓冲 i o 和非缓冲 i o, 这个主要的区别就是说是不是用标准库里面的缓存机制, 缓冲 i o 会通过减少系统调用的次数来提升效率,然后非缓冲 i o 就是 直接去操作文件。原来是这样,那第二个分类维度是什么呢?第二个维度就是主色 i o 和非主色 i o, 这个主要是看应用程序在等待 i o 数据的时候是不是会被挂起, 主色 i o 就是 进程会一直卡在那里,而非主色 i o 会立刻返回一个错误或者状态。然后第三个维度是直接 i o 和非直接 i o, 这个是看要不要绕开操作系统的夜缓存,像数据库这种就会经常用直接 i o 来自己管理缓存。 最后一个维度是同步 i o 和异步 i o, 这个是看应用程序要不要等 i o 操作彻底完成。异步 i o 就是 发出请求之后可以继续往下执行,等操作真正完成了之后会收到一个通知。我想问一下,缓冲 i o 和非缓冲 i o 在 标准库和操作系统这两个层面 数据的流向到底有什么区别?在标准库这个层面的话,缓冲 i o 就是 说你调用了 print 这种函数之后,数据其实是先被放到了标准库自己的缓存里面, 然后等缓存满了,或者说你手动刷新了之后,才会一起调用系统调用,把数据写到内核里面,这样的话就可以减少系统调用的次数,提升整体的效率。 然后非缓冲 io 就 不会经过标准库的缓存,它会直接调用 right 这种系统调用把数据交给内核, 这个就适合那种你要非常精确地去控制写的时机的场景。那如果从操作系统这个层面来看的话,直接 i o 和非直接 i o 又有什么不同呢?非直接 i o 就是 最常见的方式,数据会先被写到操作系统的页缓存里面, 然后内核会在合适的时候再一步地把数据刷到磁盘上面,这个就可以减少很多对磁盘的实际的 i o 操作。 而直接 i o 呢,就是你加上了 o d do x 这个标志之后,数据就会直接从你的应用的地址空间写到磁盘上面,完全不经过夜。缓存 这个在数据库这种场景下面用的比较多,因为数据库需要自己去精确的管理缓存和数据落盘的时机。那主色 i o 和非主色 i o 到底是怎么影响程序的等待状态的?主色 i o 就是 你调用了一个 i o 函数之后,如果数据还没有准备好的话,程序就会一直停在那里, 直到数据准备好并且传输完成了,才会继续执行,这是系统默认的 i o 行为。然后非阻设 i o 就是 不管数据有没有准备好,它都会立刻返回,如果数据没有准备好的话,就会返回一个错误,那程序也就可以去做其他的事情了,不用在这里死等。 同步 i o 和异步 i o 又是怎么决定程序获取 i o 结果的方式的呢?同步 i o 就是 你发起了一个 i o 请求之后,必须要等到整个操作彻底完成了,才可以拿到结果,继续往下执行。无论是阻色的还是非阻色的,不断轮循, 只要是等结果的都属于同步 i o, 然后异步 i o 就是 你发起了请求之后,马上就可以继续往下执行了。内核会在后台处理这个 i o 操作,等操作完成了之后,再通过信号,比如说 siggo 来通知你,你的程序再来处理这个结果, 这种方式的效率是最高的。 ok, 那 我们再来聊一聊文件系统的性能观测和调优。有哪些常用的工具可以帮我们来监控和分析文件系统的性能呢?比如说我们可以用 d f 命令加上杠 h 参数,就可以很直观地看到硬盘空间的使用情况。 然后如果加上杠 i 的 话,还可以查看到 innote 的 使用情况,这个在你磁盘明明还有空间,但是却创建不了文件的时候特别有用。那除了 d f 之外,还有什么其他的命令可以帮我们更深入的分析问题呢?还有 free 命令,可以看系统的内存和缓存的使用情况。 重点关注 cash 的 这部分,这个是页缓存的大小,页缓存对于文件系统的性能来说是非常关键的,缓存越充足的话,文件的读写就会越快。 然后还有 slab top 命令,可以看内核的 slab 分 配器的使用情况,特别是关注 dntree 和 in node catch 这两个,这两个缓存的大小直接影响到路径查找的效率。没错,今天我们把 linux 的 文件系统从 inot, dntree 到 vfs, 再到各种 i o 模型都串讲了一遍,最后还聊了一些性能监控的实用工具,希望对大家理解和优化 linux 系统有所帮助。嗯,感谢大家的收听。

在 linus 系统中有很多重要的目录,下面是一些常见的目录及其作用的介绍。跟目录,它是文件系统的入口,包含了整个系统所有其他的目录和文件。 根下的病二进制文件目录,这个目录包含了许多用户级别的 linus meaning, 如 cat, l, s, c, p, m, v 等。 跟下的 boot 启动目录,这个目录包含了 linus 启动时需要的文件,如内核文件、引导程序和配置文件等。跟下的 d, e, v 设备目录,这个目录包含了所有的设备文件,包括硬件、设备文件和虚拟设备文件等。 跟下的 etc 系统配置文件目录,这个目录包含了所有系统级别的配置文件,如网络用户管理、 安全和软件服务配置等。跟下的 home 用户主目录,这个目录包含了系统中每个用户的主目录,可以存储用户文件文档和其他个人文件。 跟下的 mt 挂载点目录,此目录通常用于临时挂载其他文件系统或设备,他是一个常用但不是必须的目录。跟下的 opt 可选应用程序目录,这个目录包含了所有可选的应用程序和软件包,如第三方应用程序和商业软件等。 跟下的 s, b 系统二进制文件目录,这个目录包含了只能由系统管理员运行的系统命令,如系统管理、调试和维护等等, 这些是 linus 系统中一些最常见的目录。 linus 的目录结构是非常清晰和有组织结构的,熟悉 linus 目录结构对于管理和维护 linus 系统而言非常重要。