使用新的替代品改进旧的命令行工具。在Linux/Unix系统的日常使用中,我们需要用到很多命令行工具来完成工作,以及了解和管理我们的系统,比如用du来监控磁盘利用率,用top来显示系统资源。有些工具历史悠久。例如,top于1984年首次发布,而du于1971年首次出现。多年来,这些工具已经现代化并移植到不同的系统,但总体上它们仍然保留了最初的想法、外观和感觉。这些工具对许多系统管理员的工作流程来说都非常出色且必不可少。但近年来,开源社区开发了许多更有优势的替代工具。虽然有些工具很华丽,但其他工具却大大增加了它们的实用性,使它们成为现代系统的绝佳选择。在本文中,我将介绍标准Linux命令行工具的五种替代方法。du的替代品:ncduNCursesDiskUsage(NCursesDiskUsage,ncdu)工具提供与du类似的结果,但其基于curses的交互界面可以显示占用大部分磁盘空间的目录。首先,Ncdu需要花一些时间分析磁盘,然后按最常用的顺序显示目录或文件,如下图:ncdu1.14.2~使用方向键导航,按?寻求帮助---/home/rgerardi---------------------------------------------------------96.7GiB[##########]/libvirt33.9GiB[###]/.crc7.0GiB[]/项目。4.7GiB[]/下载。3.9GiB[]/.local2.5GiB[]/.minishift2.4GiB[]/.vagrant.d.1.9GiB[]/.config.1.8GiB[]/.cache1.7GiB[]/Videos1.1GiB[]/go692.6MiB[]/Documents.591.5MiB[]/tmp139.2MiB[]/.var104.4MiB[]/.oh-my-zsh82.0MiB[]/scripts55.8MiB[]/.mozilla54.6MiB[]/.kube41.8MiB[]/.vim31.5MiB[]/.ansible31.3MiB[]/.gem26.5MiB[]/.VIM_UNDO_FILES15.3MiB[]/Personal2.6MiB[].ansible_module_generated1.4MiB[]/backgrounds944.0KiB[]/Pictures644.0KiB[].zsh_history536.0KiB[]/.ansible_async总磁盘使用量:159.4GiB表观大小:280.8GiB您可以通过每个方向的项目4导航到5:results如果在选定的结果上按Enter,ncdu将显示此目录的内容:---/home/rgerardi/libvirt---------------------------------------------------/..91.3GiB[##########]/图片5.3GiB[]/media您可以深入查看各个目录,找出哪些文件占用的磁盘空间最多。使用向左箭头键返回到上一个目录。默认情况下,您可以按d键删除文件,但ncdu会在删除文件之前要求确认。如果要防止意外删除,可以使用-r选项设置只读访问权限:ncdu-r。ncdu适用于许多平台和Linux发行版。例如,您可以使用dnf从官方存储库直接将其安装到Fedora上:$sudodnfinstallncdu有关该工具的更多信息,请参见:https://dev.yorhel.nl/ncdu。top的替代:htophtop是一个类似于top的交互式进程浏览器,提供更好的用户体验。默认情况下,htop显示与top相同的指标,并且颜色漂亮。默认的htop如下:与默认的top相比:另外htop的top还提供了系统的概览信息,底部的命令栏显示了功能键命令。也可以按F2进入设置页面自定义界面。在设置页面中,您可以更改其颜色、添加或删除指标、更改概览栏的显示选项。虽然最新版本的top也可以通过配置达到类似的效果,但是htop提供的默认配置更合理,更易于作为进程浏览器使用。如果您想了解有关该项目的更多信息,请查看htop主页(https://hisham.hm/htop/)。推荐一个SpringBoot基础教程和实例:https://github.com/javastacks...man的替代品:tldrtldr命令行工具展示了可以简化的命令文档,大部分文档都提供了例子。它是tldr页面项目(https://tldr.sh/)的客户端。这个工具不能代替人。手册页仍然是许多工具的规范和完整的信息来源。但是,在某些情况下,人的内容太多了。有时,您不需要有关命令的所有信息。您只需要记住基本选项。例如,curl命令的手册页将近3,000行。相比之下,curl的tldr只有40行,如下所示:$tldrcurl#curlTransfersdatafromortoaserver。支持大多数协议,包括HTTP、FTP和POP3。更多信息:.-将URL的内容下载到文件中:curlhttp://example.com-ofilename-下载文件,将输出保存在指示的文件名下URL:curl-Ohttp://example.com/filename-下载文件,遵循[L]位置重定向,并自动[C]继续(恢复)先前的文件传输:curl-O-L-C-http://example.com/filename-发送表单编码数据(类型为`application/x-www-form-urlencoded`的POST请求):curl-d'name=bob'http://example.com/form-使用自定义HTTP方法发送带有额外标头的请求:curl-H'X-My-Header:123'-XPUThttp://example.com-以JSON格式发送数据,指定适当的内容类型标头:curl-d'{"name":"bob"}'-H'Content-Type:application/json'http://example.com/users/1234...TRUNCATEDOUTPUTTLDR的全称是“toolong;did'ttread”(太长;未读),是一个网络流行语,意思是文章太长了。但是内容太长了。在Fedora中,tldr客户端是用Python编写的。你可以使用dnf安装它。有关其他客户端选项,请参阅tldr页面项目(https://tldr.sh/)。通常,tldr工具需要访问互联网才能查询tldr页面。Fedora中的Python客户端允许您下载和缓存这些页面以供离线访问。有关tldr的更多信息,请运行tldrtldr。另外,Linux系列面试题和答案都整理好了。微信搜索Java技术栈,后台发送:面试,可以在线阅读。使用sed/grep查找JSON数据的替代方法:jqjq是JSON的命令行处理器。类似于sed或grep,但主要用于处理JSON数据。如果您是一名开发人员或系统管理员,其日常任务需要使用JSON,那么这是您工具箱中必不可少的工具。jq相对于grep和sed等一般文本处理工具的主要优势在于它了解JSON数据结构,您可以使用单个表达式创建复杂的查询。为了说明这一点,假设您正在尝试在以下JSON文件中查找容器的名称:{"apiVersion":"v1","kind":"Pod","metadata":{"labels":{"app":“myapp”},“name”:“myapp”,“namespace”:“project1”},“spec”:{“containers”:[{“command”:[“sleep”,“3000”],“image":"busybox","imagePullPolicy":"IfNotPresent","name":"busybox"},{"name":"nginx","image":"nginx","resources":{},"imagePullPolicy":"IfNotPresent"}],"restartPolicy":"Never"}}如果直接用grep查询name,结果是:$grepnamek8s-pod.json"name":"myapp","namespace":"project1""name":"busybox""name":"nginx",grep将返回所有包含单词name的行。您可以在grep中添加一些其他选项来限制查询结果并通过正则表达式操作查找容器的名称。当使用jq得到想要的结果时,你只需要使用一个模拟向下导航数据结构的表达式,像这样:$jq'.spec.containers[].name'k8s-pod.json"busybox""nginx"此命令返回两个容器的名称。如果只想查看第二个容器的名称,可以在表达式中添加数组元素索引:$jq'.spec.containers[1].name'k8s-pod.json"nginx"因为jq理解数据structure,因此即使文件格式略有变化,它也会给出相同的结果。但是对于grep和se,稍微改变一下格式就会得到完全不同的结果。jq还有很多功能,我需要另外写一篇文章来介绍它的所有功能。有关详细信息,请参阅jq项目页面(https://stedolan.github.io/jq/)、联机帮助页或tldrjq。find的替代方法:fdfd是find命令的一种简单快速的替代方法。它的目的不是取代find的功能,而是提供一些在某些情况下非常有用的合理默认值。例如,在包含Git存储库的目录中搜索源代码文件时,fd会自动排除隐藏文件和目录(包括.git目录),并忽略.gitignore文件中的模式。通常,它查询速度更快并提供更相关的结果。默认情况下,fd对当前目录执行不区分大小写的模式搜索并输出彩色结果。使用find进行相同的搜索时,您需要提供额外的命令行参数。例如,要搜索当前目录下的所有markdown文件(即.md或.MD文件),find命令如下:$find.-iname"*.md"$查找。-iname"*.md"和下面的fdsearch可以返回相同的结果:$fd.md在某些情况下,fd还需要其他选项。例如,如果您希望搜索包括隐藏的文件和目录,则必须使用选项-H,但find不会。fd可用于许多Linux发行版。使用标准存储库在Fedora中安装fd:$sudodnfinstallfd-find有关详细信息,请参阅fd的GitHub存储库(https://github.com/sharkdp/fd/)。具有经过验证的实用程序的优秀替代品虽然我仍然习惯使用旧工具,尤其是在远程连接到服务器时,但新的替代品提供了额外的好处并且在许多情况下都很有用。特别是帮助我在Linux台式机和笔记本电脑上进行管理和工作。您是否使用其他工具进行工作流程?请在下面发表评论。原文:https://opensource.com/articl...作者:RicardoGerardi译者:万悦责任编辑:涂敏出品:CSDN(ID:CSDNnews)近期文章推荐:1.1,000+Java面试题和答案排序(2021最新版)2.别再满屏if/else了,试试策略模式,太爽了!!3.操!Java中xx≠null的新语法是什么?4、SpringBoot2.5发布,深色模式太炸了!5.《Java开发手册(嵩山版)》最新发布,赶快下载吧!感觉不错,别忘了点赞+转发!