首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从零实现操作系统-Lab 1: Unix utilities

命令行参数作为字符串传递可以使用atoi将其转换为整数(参考 user/ulib.c)。 使用系统调用sleep(参考 user/usys.S 和 kernel/sysproc.c)。...close(child_fd[0]);// 为什么要关掉child_fd[0] 理解是,如果要写入到child_fd[1],避免一写入就被读取,那么我们就要关闭child_fd[0],读写不能被同时开启...将 32 位int写入管道是最简单不是使用格式化 ASCII I/O。...测试结果 4. find 4.1 实验要求 编写一个简单版本 UNIX 查找程序:在目录树中查找名称与字符串匹配所有文件。...代码在文件user/find.c中实现。 提示: 查看 user/ls.c 以了解如何读取目录。 使用递归允许查找下降到子目录。 不要递归到“。” 和 ”..”。

1.1K20

Linux操作系统几种删除目录命令方法

在Linux中有很多方法可以删除目录,在图形化界面可以利用文件管理器,或者通过终端删除。本文将介绍在文本界面使用命令删除目录。提示:删除前确认目录是否正确,防止误删。...可以添加参数用来删除目录。例如,递归地删除目录,使用递归选项-r或-R,如果目录是受写保护,则会提示是否继续删除目录和目录中文件作为一个整体。-f 强制删除不被提示。...[root@localhost test]# rm -rf MyDocuments/ 可以在单个命令中删除多个目录,如下面的命令所示。命令删除所有目录和它们子目录,不提示删除。...[root@localhost test]# rm -rf dir1 dir2 dir3 使用find命令 Find命令帮助用户根据特定表达式搜索文件和目录。...-type d -empty -delete -empty 只对空目录进行限制 -delete 删除包括子目录在内所有空目录

9K20
您找到你想要的搜索结果了吗?
是的
没有找到

探索Linux世界:基本指令(文件查看、时间相关、grep、打包压缩及相关知识)

1.1输出重定向和追加重定向 输出重定向和追加重定向是Shell中非常有用功能,可以将命令输出结果保存到文件中,不是在终端上显示(这也是为什么叫做重定向)。...文件末尾 重定向操作说明 覆盖写入使用输出重定向会覆盖目标文件内容,如果文件不存在则会创建新文件并写入输出。...常用查看日志文件 -f 循环读取 -n 显示行数 5.1输入重定向(<) 输入重定向允许将文件内容作为命令输入,不是从键盘输入。...这是因为find命令会递归地查找指定路径下所有文件和目录,不仅仅是文件名匹配部分 7.1which 指令 功能:查找文件所在路径 7.2whereis 指令 功能:找到与要查找名开头相同文件路径...因为默认uniq(unique),只对相邻进行处理,所以我们一般是先用sort后再用unique,这也就需要管道了 去除排序后文本中重复行: sort file.txt | uniq 仅显示重复

11710

学习LAMBDA函数:将Excel公式转换为自定义函数(下)

然后在工作表任何地方,都可以引用MYFUNCTION,在整个工作表中重新使用该自定义功能。 递归 重用函数是利用LAMBDA充分理由,此外还可以执行递归。...重用自定义函数 在Excel中使用公式一个更具挑战部分是,经常会得到相当复杂公式,这些公式在工作表中被多次重复使用(通常只需复制/粘贴)。...此外,每当复杂公式反复重复,不是只定义一次然后引用时,就会增加错误风险。例如,如果有一些站点ID看起来像“105532-872332-WA-73”,那么上面的公式将无法使用这些站点ID。...2.可组合/可读-如果不是原作者,很难知道这个公式意图是什么,也很难将此逻辑与其他逻辑结合使用,例如如果想获取站点ID并根据计算位置进行查找。...不仅仅是数字和字符串 如果你一直关注Excel改进,可能会注意到Excel中可以使用数据类型有两个显著改进: 1.动态数组-可以传递值数组,不是将单个值传递给函数,函数也可以返回值数组。

2.3K80

Linux 命令完全手册「建议收藏」

Linux 中 find 命令 find 命令可以用来按特定模式搜索文件和文件夹。它以递归方式进行搜索。 让我们通过几个例子来学习它用法。...你可以使用 grep 在文件中进行搜索,或者与管道符配合使用,将输出结果传递到其他命令。...你必须使用 -r 选项来进行递归比较(进入子目录): 如果你只对哪个文件存在差异感兴趣,而非关注文件内容,可以使用 r 和 q 参数: 它还支持更多参数,你可以用 man 页面来探索,只需键入 man...如果你正在编辑一个文件夹,你可以使用 -r(递归)参数将权限应用到该文件夹中每个文件。 使用数字参数速度更快,但我认为当你不是每天都使用的话,是很难记住它们。数字在此代表任一角色权限。...要列出所有进程,我们需要给 ps 传递一些参数。 最常使用命令是 ps ax: a 参数用来同时列出其他用户进程。x 显示那些未与终端相连进程(不是由用户通过终端发起)。

4.2K30

如何写出专业数据科学代码?你需要知道这6点

这是你将传递到函数中信息。 函数体。这是定义函数功能地方。通常,我会为函数编写代码,并首先使用现有的数据结构进行测试,然后将代码放入函数中。 返回值。这是你函数在完成编写后将返回内容。...如果你有更多编程经验,你可能会好奇为什么选择谈论函数,不是类或其他相关概念从[面向对象编程]。认为函数式编程适合于很多数据科学工作,所以这是将用来向你展示模块化代码示例一般框架。...随着这个领域发展,数据科学代码进行代码审查可能变得更加常见……但同时,你可以通过一些测试来帮助审查代码是否正确。 测试使用一小段代码检查你代码是否正常工作。 测试用例不必写得很复杂!...使用测试检查代码是否正确可以帮助快速捕获错误,从而节省时间。 可读 ---- 「可读」代码是易于阅读和理解代码,即使这是你第一次看到这段代码。...它允许你做使用正则表达式能做相同操作(如查找、提取和替换文本),但速度要快得多。 只有在没有现有解决方案情况下花时间编写代码才能节省时间,因为你可以在现有工作基础上构建,不是从头开始。

1.1K10

文件系统特殊命令一览表

. #5.采用递归和通配符进行查询指定目录和所有子目录中得文件 dir *.exe /S #6.批处理中可以使用批量后缀名查找指定目录中文件 @dir > 1.txt /s /a /b d:\*.mp4.../N 复制带有非 8dot3 名称文件时尽可能使用短文件名 /Y 不使用确认是否要覆盖现有目标文件提示 /-Y 使用确认是否要覆盖现有目标文件提示.../Z 用重新启动模式复制已联网文件 L 如果源是符号链接,请将链接复制到目标不是源链接指向实际文件 命令行开关 /Y 可以在 COPYCMD...,不是当前用户 /R 递归(recursion): 指示工具运行于指定目录和子目录里文件上 /D prompt...当前用户在一个目录里没有“列出文件夹”权限时,使用默认答案当在子目录里进行递归 (/R) 操作时会发生这种情况 可以是: N 无,R 读取, W 写入, C 更改(

2.9K32

从0开始Python学习013编写一个Python脚本

目标目录是我们想要存储备份文件地方,它由target_dir变量指定。zip归档名称是目前日期和时间(),我们使用time.strftime()函数获得。...根据命令输出,我们打印对应消息,显示备份是否创建成功。 版本二 ---- 第一个脚本已经可以工作了,然而我们还可以对他进行优化,使它更强大。...使用os.sep而非直接使用字符,会使我们程序具有移植可以在上述这些系统下工作。...这些环节可以概括如下: 什么(分析) 如何(设计) 编写(实施) 测试测试与调试) 使用(实施或开发) 维护(优化) 重要 我们创建这个备份脚本过程是编写程序推荐方法——进行分析与设计。...开始时实施一个简单版本。对它进行测试与调试。使用它以确信它如预期那样地工作。再增加任何你想要特性,根据需要一次次重复这个编写-测试使用周期。记住“软件是长出来不是建造”。

76120

函数式编程,真香

总之,当我们在设计应用程序时候,我们应该考虑是否遵守了以下设计原则。 扩展性--是否需要不断地重构代码来支持额外功能? 易模块化--如果更改了一个文件,另一个文件是否会受到影响?...重用--是否有很多重复代码? --给这些函数添加单元测试是否纠结? 易推理性--代码是否非结构化严重并难以推理?...,如果是要将文本写入文件,不是非 HTML,或者想重复显示 Hello World。...总结 使用纯函数代码绝不会更改或破坏全局状态,有助于提高代码测试和可维护 函数式编程采用声明式风格,易于推理,提高代码可读。...函数式编程将函数视为积木,通过一等高阶函数来提高代码模块化和重用可以利用响应式编程组合各个函数来降低事件驱动程序复杂(这点后面可能会单独拿一篇来进行讲解)。 「一个有温度前端号」

77120

使用 Moq 测试.NET Core 应用 -- Mock 属性

添加这个属性在业务上意思就是体检室是否可以使用. 如果不可以使用的话, 那么球员转会操作应该被推迟. 所以还需要为转会结果枚举添加一个推迟: ?...就是从内到外一层一层mock. 这么做是没问题, 测试也会通过: ? 但是这样做很麻烦, Moq则提供了一种简单方式来处理这种多层/递归mock: ? 这样写即可. 测试同样会通过: ?...但是DefaultValue这个属性只对引用类型起作用(对值类型不起作用), 像这种递归mock, 它会递归创建所需引用类型, 但是最后IsAvailable这个值类型是不起作用....不过测试仍然是可以通过, 因为改逻辑了: ? 注意, 这个默认值只对宽松(Loose) mock, 起作用.针对Strict mock, 仍然需要设定最后一层属性值....然后在审批类里, 设置了这个属性值: ? 上面的代码也就是说, mock对象某个属性在测试时候它值会发生变化. Moq可以记住这些mock属性变化值..... 新写一个测试: ?

2.6K40

建立数据驱动,关键字驱动和混合Selenium框架这些你了解吗

例如,如果您想修改用于登录功能代码,则可以进行修改,不必同时修改同一代码中任何其他相关部分。 除此之外,您还可以轻松控制需要测试数据量。...因此,我们使用Apache POI 读取/写入任何Microsoft Office文档。您可以从此处下载Apache POI(JAR文件集)。...已经导入了Apache POI XSSF库,该库用于读取数据或将数据写入excel文件。在这里,创建了一个构造函数(相同方法对象)以传递值:工作表编号,行编号和列编号。...使用此博客中上面显示示例,我们可以通过将要执行方法存储在excel文件中(关键字驱动方法)并将这些方法名称传递给Java Reflection Class(数据驱动方法)来构建混合框架,不是创建...在下面的代码片段中查看修改后“ DriverScript”类。 在这里,不是使用多个If / Else循环,而是使用数据驱动方法从excel文件中读取方法名称

93520

教你Linux find命令实例教程:15个find命令用法

这导致find命令返回与列表中文件或目录名称匹配任何文件或目录名称。 不在列表中查找 使用上一个示例中提到相同文件列表,您还可以使用find来搜索与文本文件内模式不符任何文件。...在-maxdepth之后指定一个数字,以指示查找应递归搜索子目录数。 仅搜索当前目录中文件,递归搜索: $ find ....,则可以使用find进行递归搜索,并按文件和目录大小输出排序列表。...ls -l {} \; 按时间排序 要按文件修改时间对查找结果进行排序,您可以使用-printf选项以排序方式列出时间,然后将其输出到sort实用程序。...$ find /path/to/search -printf "%T+\t%p\n" | sort 此命令将对旧文件进行排序。如果您希望较新文件首先显示,只需传递-r(反向)选项即可进行排序。

2.4K10

文件查找下载命令

例如[^0-9]代表匹配一个不是数字字符 #其他参数: -print0 : 不换行打印find结果,结果之间采用空格进行分割; -path : 过滤指定目录 -prune : 表示过滤指定子目录...-mindepth,-maxdepth : 设置层级目录 案例示例: #示例0.可以查看当前目录所有嵌套文件 find . find . | grep .txt #使用管道符 #示例1.通过指定文件名称进行搜寻...-U, --user-agent=AGENT 标识为 AGENT 不是 Wget/VERSION。...ntlm身份验证 -P/--ftp-port 使用端口地址,不是使用PASV -q 作为第一个参数,关闭 .curlrc -Q/--quote 文件传输前,发送命令到服务器...http://blog.51yip.com/wp-content/uploads/2010/[0-9][0-9]/aaaaa.jpg #选项-o将下载数据写入到指定名称文件中,并使用--progress

2.5K20

PHP技巧和窍门来简化你代码

谢谢阅读 相关内容 对而言,使用PHP一直是最有趣经历,无论是从事大型项目还是小型项目,并在每次旅行中都学到一些新东西。 将分享一些小技巧,这些技巧可以帮助大家减少几行代码。...$user) { trigger_error("User id is invalid"); } echo $user; 技巧5 :(递归优先于重复) 认为此技巧非常简单,请尝试使用递归不要重复很多次...这不仅是为了避免重复,而且还可以加快工作流程并提高代码可读。...有时,我们带来图书馆会给我们带来更多问题,不是帮助我们。听起来好像我完全在破坏开源软件包,不是自己也写开源软件包,所以显然不是!...谢谢阅读 这些是在PHP之旅中发现一些技巧和窍门,其中一些可能对您有用,另一些则可能不起作用,请随时选择自己喜欢并坚持使用

3.1K40

日拱一卒,麻省理工教你CS基础,那些酷炫无比命令行工具

在bash中进行比较时候,使用双方括号[[ ]]而非单括号[]。这样会降低犯错几率,虽然它对于sh来说不是很便携。大家可以查阅一下这两者区别。...在脚本当中写入shebang是一个很好习惯,当你不确定命令调用程序在什么位置时,可以使用env命令,可以增加你脚本可移植。 env将会使用我们上节课提到PATH环境变量来寻找合适程序。...所以这两种方法在数据时效和性能上有一个权衡,另外,find和类似的工具可以根据其他一些特性比如文件大小、修改时间、权限等进行查找。locate只能使用文件名。...在这里,它将可以在你历史记录中进行模糊匹配,并且以一种方便和舒服方式进行展示。 另外一个很喜欢关于历史记录工具是自动提示功能,最早被fish shell使用。...练习 阅读man ls并且写一个ls命令,使得它完成以下格式: 包括所有文件,包括隐藏文件 将文件大小以人们阅读形式展示比如(454M 不是 454279954) 文件按照最近访问时间排序 输出彩色结果

1.5K40

pickle —— Python 对象序列化(python=3.8)

,尽管在大多数时候它会接着以 utf-8 编码), pickle 是一个二进制序列化格式;  JSON 是我们可以直观阅读 pickle 不是;  JSON是互操作,在Python系统之外广泛使用...pickle.dumps(obj, protocol=None, *, fix_imports=True)   将 obj 打包以后对象作为 bytes 类型直接返回,不是将其写入到文件。 ...尝试打包递归层级很深对象时,可能会超出最大递归层级限制,此时会抛出 RecursionError 异常,可以通过 sys.setrecursionlimit() 调整递归层级,不过请谨慎使用这个函数,...(具体是使用 append() 还是 extend() 取决于 pickle 协议版本以及待插入元素项数,所以这两个方法必须同时被类支持。)  可选元素,一个返回连续键值对迭代器(不是序列)。...与其名称所提示不同,Unpickler.find_class() 会在执行对任何全局对象(例如一个类或一个函数)请求时被调用。 因此可以完全禁止全局对象或是将它们限制在一个安全子集中。

1.2K20

JavaScript 编程精解 中文第三版 三、函数

当多个绑定具有相同名称时例外 - 在这种情况下,代码只能看到最内层那个。 例如,当halve函数中代码引用n时,它看到它自己n,不是全局n。...如果只有一个参数名称,则可以省略参数列表周围括号。 如果主体是单个表达式,不是大括号中块,则表达式将从函数返回。...引用来自周围局部作用域绑定函数称为(一个)闭包。 这种行为不仅可以让您免于担心绑定生命周期,而且还可以以创造方式使用函数值。...如果您担心速度太慢 - 通常不是这样,因为大多数代码执行不足以花费大量时间 - 您可以事后进行测量并在必要时进行改进。 递归并不总是循环低效率替代方法。 递归比循环更容易解决解决一些问题。...当你不确定纯函数是否正常工作时,你可以通过简单地调用它来测试它,并且知道如果它在当前上下文中工作,它将在任何上下文中工作。 非纯函数往往需要更多脚手架来测试

89170
领券