当前位置: 首页 > Linux

AlternativestoLinux5BasicCommandLineTools_0

时间:2023-04-06 23:22:15 Linux

在日常使用Linux/Unix系统时,我们使用许多命令行工具来完成我们的工作以及了解和管理我们的系统,例如du用于监控磁盘利用率,top用于显示系统资源。其中一些工具已经存在了很长时间。例如,top于1984年首次发布,而du的首次发布可追溯到1971年。多年来,这些工具已经过现代化改造并移植到不同的系统,但总的来说,它们仍然忠实于它们最初的想法和经验。这些都是很棒的工具,对许多系统管理员的工作流程来说必不可少。然而,近年来,开源社区开发了提供额外好处的替代工具。虽然有些很华而不实,但另一些则大大提高了可用性,使它们成为现代系统的最佳选择。这包括以下五个标准Linux命令行工具的替代品。1ncduNCurses磁盘利用率(ncdu)工具是du的替代品,它提供与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.8GiB615每个项目使用5个箭头键导航到0如果您在目录条目上按Enter,ncdu将显示该目录的内容:---/home/rgerardi/libvirt-------------------------------------------------/..91.3GiB[##########]/images5.3GiB[]/media您可以使用它向下钻取目录并找出哪些文件占用了最多的磁盘空间,然后使用向左箭头键返回上一级。默认情况下,您可以使用ncdu按d键删除文件,它会在删除前与您确认删除请求。如果要禁用此行为以防止意外,请使用-r选项进行只读访问:ncdu-r。ncdu适用于许多平台和Linux发行版。例如,您可以使用dnf直接从官方存储库将其安装到Fedora上:$sudodnfinstallncdu要了解有关此工具的更多信息,请查看ncdu页面。https://dev.yorhel.nl/ncdu2htophtop是top的替代品,是一个类似于top的交互式流程查看器,但开箱即用的用户体验更好。默认情况下,htop以宜人的颜色显示与top相同的指标。默认情况下,htop是这样的:相比之下,top默认是这样的:此外,htop在顶部提供系统概览信息,在底部提供命令栏,可以使用功能键触发的命令,而且,你还可以按F2进入设置界面自定义。您可以更改其颜色、添加或删除指标,或者更改概览栏的显示选项。虽然使用最新版本的top您也可以配置以实现类似的结果,但htop提供了更合理的默认配置,这使其成为一个漂亮且易于使用的进程查看器。要了解有关此项目的更多信息,请查看htop主页。https://hisham.hm/htop/3作为man替代品的tldrtldr命令行工具显示简化的命令使用信息,主要包括示例。它是作为社区项目的tldr页面的客户端。这个工具不能代替人。手册页仍然是许多工具的规范和完整的信息来源。然而,在某些情况下,人提供了太多的信息。有时,您不需要命令的所有信息;您只是想记住基本选项。例如,curl命令的手册页有将近3000行长。相反,curl的tldr页面只有40行,如下所示:$tldrcurl#curl从服务器传输数据或向服务器传输数据。支持大多数协议,包括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;didn'tread”的缩写,意思是总结一篇很长的文章。这个名字非常适合这个工具,因为手册页虽然有用,但有时太长了。在Fedora中,tldr客户端是用Python编写的。你可以使用dnf安装它。对于其他客户端选项,请参阅tldr页面项目页面。https://tldr.sh/通常,tldr工具需要互联网访问权限才能查看tldr页面。Fedora中的Python客户端允许您下载和缓存这些页面以供离线访问。要了解有关tldr的更多信息,请使用tldrtldr。4jqjq是sed/grep的替代品,是一个类似于sed或grep的命令行JSON处理器,但专为处理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知道数据结构,因此即使文件格式稍有变化,它也会给出相同的结果。并且grep和sed只需稍微改变格式就可以给出不同的结果。jq具有如此多的特性,需要另一篇文章才能涵盖所有这些特性。有关详细信息,请参阅jq项目页面、手册页或tldrjq。https://stedolan.github.io/jq/5fdfd作为find替代品是find命令的简单快速替代品。它无意取代find提供的全部功能;相反,它提供了一些在某些情况下非常有用的合理默认值。例如,在包含Git存储库的目录中搜索源代码文件时,fd会自动排除隐藏文件和目录,包括.git目录,并忽略.gitignore文件中的模式。一般来说,它搜索速度更快,并在您第一次搜索时提供更相关的结果。默认情况下,fd对当前目录中的模式执行不区分大小写的搜索,并且输出是彩色的。使用find进行相同的搜索需要您提供额外的命令行参数。例如,要搜索当前目录下的所有markdown文件(.md或.MD),find命令如下:-iname"*.md"使用fd执行相同的搜索:$fd.md在某些情况下,fd需要额外的选项;例如,如果要包括隐藏文件和目录,则必须使用选项-H,而在find中则不需要。fd可用于许多Linux发行版。它可以通过执行以下命令使用标准存储库安装在Fedora中:$sudodnfinstallfd-find有关更多信息,请查看fdGitHub存储库。https://github.com/sharkdp/fd/6其他替代方案虽然我仍然大量使用所有旧的基本工具,尤其是在远程连接到服务器时,但这些替代方案提供了一些在许多场景中非常有用的额外好处。特别是,它们对我在Linux台式机和笔记本电脑上的工作非常有用。您的工作流程中是否使用了其他工具?欢迎在下方评论区补充。7关于作者RicardoGerardi是RedHatCanada的高级顾问,专门研究基于Ansible和Openshift的IT自动化。他在电信行业拥有丰富的经验,曾在TELUS担任高级架构师,并在IBM巴西和IBM加拿大担任网络管理解决方案高级顾问和售前专家13年。Ricardo是一名Linux爱好者已有20多年。他目前的兴趣是用Go编程来hack东西...以上是良虚教程网为小伙伴们分享的5款Linux基础命令行工具的替代方法。以上就是良序教程网为各位小伙伴们分享的Linux相关知识。