5个Linux常用命令的现代化替代品,用着超赞!
11月11日 渡缘祠投稿 在日常使用LinuxUnix系统时,我们会使用许多命令行工具来完成我们的工作,并理解和管理我们的系统,像du用于监视磁盘利用率,top用于显示系统资源。其中一些工具已经存在很长时间了。例如,top于1984年首次发布,而du的首次发布要追溯到1971年。
多年来,这些工具已经被现代化并移植到不同的系统,但是,通常,它们仍然延续着它们最初的思想和体验。
这些都是很好的工具,对于许多系统管理员的工作流来说都是必不可少的。然而,最近几年,开源社区已经开发出了可以带来额外好处的替代工具。虽然有些华而不实,但另外一些则极大地提高了可用性,使它们成为现代化系统上的最佳选择。这包括以下五个标准Linux命令行工具的替代品。
1作为du替代品的ncdu
NCurses磁盘利用率(ncdu)工具提供了与du类似的结果,但是在一个基于curses的交互式界面中,它重点关注那些占用磁盘空间比较多的目录。
ncdu会花一些时间分析磁盘,然后根据你最常用的目录或文件显示结果,如下所示:ncdu1。14。2Usethearrowkeystonavigate,press?forhelphomergerardi96。7GiB〔〕libvirt33。9GiB〔〕。crc7。0GiB〔〕Projects。4。7GiB〔〕Downloads。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〔〕。ohmyzsh82。0MiB〔〕scripts55。8MiB〔〕。mozilla54。6MiB〔〕。kube41。8MiB〔〕。vim31。5MiB〔〕。ansible31。3MiB〔〕。gem26。5MiB〔〕。VIMUNDOFILES15。3MiB〔〕Personal2。6MiB〔〕。ansiblemodulegenerated1。4MiB〔〕backgrounds944。0KiB〔〕Pictures644。0KiB〔〕。zshhistory536。0KiB〔〕。ansibleasyncTotaldiskusage:159。4GiBApparentsize:280。8GiBItems:561540
使用方向键导航到每个条目。如果你在一个目录条目上按下Enter键,ncdu将显示该目录的内容:homergerardilibvirt。。91。3GiB〔〕images5。3GiB〔〕media
你可以使用它下钻目录并查找哪些文件占用的磁盘空间最多,使用左箭头键可以返回上一级目录。在默认情况下,可以按下d键使用ncdu删除文件,在删除之前,它会跟你确认删除请求。如果你想禁用此行为以防止发生意外,请使用r选项进行只读访问:ncdur。
ncdu可用于许多平台和Linux发行版。例如,你可以使用dnf直接从官方存储库把它安装到Fedora上:sudodnfinstallncdu
要了解关于这个工具的更多信息,请查看ncdu页面。
https:dev。yorhel。nlncdu
2作为top替代品的htop
htop是一个类似于top的交互式流程查看器,但它提供了更好的开箱即用的用户体验。默认情况下,htop会用令人愉快的彩色显示与top相同的指标。
默认情况下,htop是这样的:
相比之下,top默认是这样的:
此外,htop在顶部提供了系统概览信息,在底部提供了一个命令栏,可以使用功能键来触发命令,而且,你还可以按F2进入设置界面对它进行定制。你可以更改其颜色、添加或删除指标,或更改概览栏的显示选项。
虽然对于最新版本的top,你也可以通过配置实现类似的结果,但htop提供了更合理的默认配置,这使得它成为一个漂亮且易于使用的流程查看器。
要了解关于这个项目的更多信息,请查看htop首页。
https:hisham。hmhtop
3作为man替代品的tldr
tldr命令行工具显示简化的命令用法信息,主要包括示例。它是作为社区项目tldrpages的客户端。
这个工具不能代替man。man页面仍然是许多工具规范而完整的信息源。然而,在某些情况下,man提供的信息太多了。有时候,你不需要一个命令的所有信息;你只是试着记住基本的选项。例如,curl命令的man页面几乎有3000行。相反,curl的tldr页面只有40行,如下所示:tldrcurlcurlTransfersdatafromortoaserver。Supportsmostprotocols,includingHTTP,FTP,andPOP3。Moreinformation:https:curl。haxx。se。DownloadthecontentsofanURLtoafile:curlhttp:example。comofilenameDownloadafile,savingtheoutputunderthefilenameindicatedbytheURL:curlOhttp:example。comfilenameDownloadafile,following〔L〕ocationredirects,andautomatically〔C〕ontinuing(resuming)apreviousfiletransfer:curlOLChttp:example。comfilenameSendformencodeddata(POSTrequestoftypeapplicationxwwwformurlencoded):curldnamebobhttp:example。comformSendarequestwithanextraheader,usingacustomHTTPmethod:curlHXMyHeader:123XPUThttp:example。comSenddatainJSONformat,specifyingtheappropriatecontenttypeheader:curld{name:bob}HContentType:applicationjsonhttp:example。comusers1234。。。TRUNCATEDOUTPUT
TLDR是网络俚语didntread的缩写,指对一篇很长的文章进行总结。这个名称很适合这个工具,因为man页面虽然有用,但有时太长了。
在Fedora中,tldr客户端是用Python编写的。你可以使用dnf安装它。要了解其他客户端选项,请参阅tldrpages项目页面。
https:tldr。sh
一般来说,tldr工具需要访问互联网以查阅tldrpages。Fedora中的Python客户端允许你下载并缓存这些页面以供脱机访问。
要了解有关tldr的更多信息,可以使用tldrtldr。
4作为sedgrep替代品的jq
jq是一个命令行JSON处理器,类似于sed或grep,但专门设计用于处理JSON数据。如果你是在日常任务中会用到JSON的开发人员或系统管理员,那么这是你工具箱中必不可少的工具。
与grep和sed等通用文本处理工具相比,jq的主要优点是它理解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,则写法如下:grepnamek8spod。jsonname:myapp,namespace:project1name:busyboxname:nginx,
grep返回包含单词name的所有行。你可以向grep添加更多选项来限制它,借助一些正则表达式操作来找到容器的名称。如果是使用jq获得你想要的结果,则可以使用一个表达式来模拟向下导航数据结构,如下所示:jq。spec。containers〔〕。namek8spod。jsonbusyboxnginx
这个命令提供这两个容器的名称。如果你只是在查找第二个容器的名称,则可以在表达式中添加数组元素索引:jq。spec。containers〔1〕。namek8spod。jsonnginx
因为jq知道数据结构,所以即使文件格式稍有变化,它也能提供相同的结果。而只要格式稍有变化,grep和sed就可能提供不同的结果。
jq有许多特性,要介绍所有这些特性的话,需要另写一篇文章。要了解更多信息,请参阅jq项目页、man页面或tldrjq。
https:stedolan。github。iojq
5作为find替代品的fd
fd是find命令的一个简单而快速的替代品。它的目的不是取代find提供的全部功能;相反,它提供了一些合理的默认值,在某些情况下非常有用。
例如,在包含Git存储库的目录中搜索源代码文件时,fd会自动排除隐藏的文件和目录,包括。。git目录,并忽略。gitignore文件中的模式。一般来说,它的搜索速度更快,而且第一次搜索时提供了更多相关的结果。
默认情况下,fd在当前目录中执行不区分大小写的模式搜索,输出是彩色的。使用find进行相同的搜索需要你提供额外的命令行参数。例如,在当前目录中搜索所有的markdown文件(。md或。MD),find命令如下:find。iname。md
使用fd进行同样的搜索:fd。md
在某些情况下,fd需要额外的选项;例如,如果你想包含隐藏文件和目录,则必须使用选项H,而这在find中是不需要的。
fd可用于许多Linux发行版。执行以下命令,可以使用标准存储库在Fedora中安装:sudodnfinstallfdfind
要了解更多信息,请查阅fdGitHub存储库。
https:github。comsharkdpfd
投诉 评论