使用新的替代工具来改进旧的命令行工具。

作者 | Ricardo Gerardi

译者 | 弯月,责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

以下为译文:

在Linux/Unix系统的日常使用中,我们需要使用很多命令行工具来完成工作,以及理解和管理我们的系统,例如使用du来监视磁盘利用率、top来显示系统资源。有些工具已经有很长的历史了。例如,top于1984年首次发布,而du的首次问世可追溯至1971年。

多年来,这些工具已经过现代化的改造,并移植到了不同的系统中,但总的来说,它们仍然保留了最初的想法、外观和感觉。

这些工具都非常优秀,对于许多系统管理员的工作流程来说都是必不可少的。但近年来,开源社区开发了不少更具优势的替代工具。虽然有些工具华而不实,但有些则大大提高了实用性,成为了现代系统的绝佳选择。 在本文中,我将介绍五种标准Linux命令行工具的替代品。

du的替代:ncdu

NCurses磁盘使用率(NCurses DiskUsage,即ncdu)工具提供了与du类似的结果,但其基于curses的交互式界面可以显示消耗了大部分磁盘空间的目录。

首先Ncdu需要花一些时间分析磁盘,然后按照最常用的顺序显示目录或文件,如下所示:

ncdu 1.14.2 ~ Use the arrow keys to navigate, press ? for help
--- /home/rgerardi ------------------------------------------------------------96.7 GiB [##########] /libvirt33.9 GiB [###       ] /.crc7.0 GiB [          ] /Projects
.   4.7 GiB [          ] /Downloads
.   3.9 GiB [          ] /.local2.5 GiB [          ] /.minishift2.4 GiB [          ] /.vagrant.d
.   1.9 GiB [          ] /.config
.   1.8 GiB [          ] /.cache1.7 GiB [          ] /Videos1.1 GiB [          ] /go692.6 MiB [          ] /Documents
. 591.5 MiB [          ] /tmp139.2 MiB [          ] /.var104.4 MiB [          ] /.oh-my-zsh82.0 MiB [          ] /scripts55.8 MiB [          ] /.mozilla54.6 MiB [          ] /.kube41.8 MiB [          ] /.vim31.5 MiB [          ] /.ansible31.3 MiB [          ] /.gem26.5 MiB [          ] /.VIM_UNDO_FILES15.3 MiB [          ] /Personal2.6 MiB [          ]  .ansible_module_generated1.4 MiB [          ] /backgrounds944.0 KiB [          ] /Pictures644.0 KiB [          ]  .zsh_history536.0 KiB [          ] /.ansible_asyncTotal disk usage: 159.4 GiB  Apparent size: 280.8 GiB  Items: 561540

你可以通过方向键导航到每个结果。如果在选中的结果上按下Enter,则ncdu将显示该目录的内容:

--- /home/rgerardi/libvirt ----------------------------------------------------/..91.3 GiB [##########] /images5.3 GiB [          ] /media

你可以深入各个目录,找出哪些文件占用的磁盘空间最多。使用左方向键可以返回到上一个目录。在默认情况下,你可以按d键删除文件,但在删除文件之前ncdu会要求确认。如果你想禁止删除操作以防止发生意外,则可以通过-r选项设置只读访问:ncdu -r。

ncdu可用于许多平台和Linux发行版。例如,你可以使用dnf从官方代码库直接将其安装在Fedora上:

$ sudo dnf install ncdu

更多有关该工具的信息,请参见:https://dev.yorhel.nl/ncdu。

top的替代:htop

htop是一个类似于top的交互式进程浏览器,提供了更好的用户体验。在默认情况下,htop显示的各项指标与top相同,而且是漂亮的彩色。

默认的htop如下所示:

与默认的top相比:

此外,htop的顶部还提供了系统的概述信息,底部的命令栏则显示了功能键命令,你还可以按下F2进入设置页面来自定义界面。在设置页面中,你可以更改其颜色,添加或删除指标、更改概述栏的显示选项。

虽然top的最新版本也可以通过配置获得相似的结果,但htop提供的默认配置更为合理,作为一个进程浏览器更加易于使用。

如果想了解有关该项目的更多信息,请查看htop主页(https://hisham.hm/htop/)。

man的替代:tldr

tldr命令行工具显示可以简化的命令文档,而且大部分文档都提供示例。它是tldr pages项目(https://tldr.sh/)的客户端。

这个工具不是man的替代品。man pages仍然是许多工具的规范以及完整的信息源。但是,在某些情况下,man的内容太多了。有时,你不需要有关命令的所有信息。你只需要记住基本选项。例如,curl命令的man page几乎有3,000行。相比之下,curl的tldr只有40行,如下所示:

$ tldr curl# curlTransfers data from or to a server.Supports most protocols, including HTTP, FTP, and POP3.More information: <https://curl.haxx.se>.- Download the contents of an URL to a file:curl http://example.com -o filename- Download a file, saving the output under the filename indicated by the URL:curl -O http://example.com/filename- Download a file, following [L]ocation redirects, and automatically [C]ontinuing (resuming) a previous file transfer:curl -O -L -C - http://example.com/filename- Send form-encoded data (POST request of type `application/x-www-form-urlencoded`):curl -d 'name=bob' http://example.com/form
- Send a request with an extra header, using a custom HTTP method:curl -H 'X-My-Header: 123' -X PUT http://example.com
- Send data in JSON format, specifying the appropriate content-type header:curl -d '{"name":"bob"}' -H 'Content-Type: application/json' http://example.com/users/1234... TRUNCATED OUTPUT

TLDR的全称是“too long; didn'tread”(太长;未读),这是一句网络流行语,表示文章太长。这个名字非常适合这个汇总工具,因为manpages虽然非常实用,但内容太长。

在Fedora中,tldr客户端是用Python编写的。你可以使用dnf安装。有关其他客户端选项,请参见tldr pages项目(https://tldr.sh/)。

通常,tldr工具需要访问互联网才能查询tldr页面。Fedora中的Python客户端允许你下载和缓存这些页面以供离线访问。

有关tldr的更多信息,请运行tldr tldr。

用sed/grep查找JSON数据的替代: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,则结果为:

$ grep name k8s-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和se来说,格式稍有变化提供的结果就会完全不同。

jq还有很多功能,我需要用另写一篇文章才能介绍其所有的功能。有关更多信息,请参见jq项目页面(https://stedolan.github.io/jq/)、manpages或tldr jq。

find的替代:fd

fd是find命令的一种简单快速的替代。它的目的不是替换find的功能,而是提供一些合理的默认值,在某些情况下非常有用。

例如,在包含Git代码库的目录中搜索源代码文件时,fd会自动排除隐藏的文件和目录(包括.git目录),并忽略.gitignore文件中的模式。通常,它可以更快地查询,并提供相关度更高的结果。

在默认情况下,fd会针对当前目录执行不区分大小写的模式搜索,并输出彩色的结果。使用find进行的相同搜索时,你需要提供其他命令行参数。例如,搜索当前目录中所有的markdown文件(即.md或.MD文件),find命令如下所示:

$ find . -iname "*.md"$ find . -iname "*.md"

而如下fd搜索能够返回相同的结果:

$ fd .md

在有些情况下,fd也需要其他选项。例如,如果想让搜索包括隐藏的文件和目录,则必须使用选项-H,而find则不需要。

fd可用于许多Linux发行版。在Fedora中安装fd可使用标准代码库:

$ sudo dnf install fd-find

有关更多信息,请请见fd的GitHub代码库(https://github.com/sharkdp/fd/)。

优秀的替代工具与久经考验的实用程序

尽管我还是习惯使用旧工具,尤其是在远程连接到服务器时,但新的替代工具提供了额外的好处,而且在许多情况下都很有帮助性。特别是帮助我在Linux台式机和笔记本电脑上管理和工作。

你是否使用其他工具来处理工作流程?请在下方留言。

原文:https://opensource.com/article/20/6/modern-linux-command-line-tools

本文为 CSDN 翻译,转载请注明来源出处。

更多精彩推荐
☞20年前的程序员什么样?从版主到架构大牛的成长之路
☞三分钟黑了阿里?马云下死命令留他?吴翰清辟谣:我没黑过阿里
☞外媒:美国考虑封杀TikTok等中国社交应用;微信小程序将支持分享到朋友圈;Kotlin 1.4-M3 发布 | 极客头条
☞云计算与星辰大海的结合——不要回答,来自百亿光年外的未知信号
☞用机器学习还原《隐秘的角落》那些被修改的台词
☞一文速览 Eth2.0 的 7 大客户端进展
点分享点点赞点在看

实用!五款新型 Linux 命令行工具相关推荐

  1. [转]12款最佳Linux命令行终端工具

    摘要 "工欲善其事必先利其器",作为菜鸟,也是从别人那里偷学来的一些东东.今天看到同事用到一个终端命令行工具,觉得自己弱爆了.然后在网上搜了下该工具.发现类似的工具还是挺多的,只是 ...

  2. linux 命令行 常用软件,12款最佳Linux命令行终端工具

    12款最佳Linux命令行终端工具 如果你跟我一样,整天要花大量的时间使用Linux命令行,而且正在寻找一些可替代系统自带的老旧且乏味的终端软件,那你真是找对了文章.我这里搜集了一些非常有趣的终端软件 ...

  3. linux top 命令可视化_12款最佳Linux命令行终端工具

    本文中,介绍了12款最佳Linux命令行终端工具,可以用来替代debian系的Linux原生终端.如果你每天需要花大量的时间使用Linux命令行,而且正在寻找一些可替代系统自带的老旧且乏味的终端软件, ...

  4. 21款最佳Linux命令行终端工具

    本文中,介绍了14款最佳Linux命令行终端工具,可以用来替代debian系的Linux原生终端.如果你每天需要花大量的时间使用Linux命令行,而且正在寻找一些可替代系统自带的老旧且乏味的终端软件, ...

  5. TaxonKit:小巧、高效、实用的NCBI分类学数据命令行工具

    TaxonKit: 小巧.高效.实用的NCBI分类学数据命令行工具集 宏基因组按:NCBI物种分类注释信息格式复杂,存在层级不整齐.缺失.名称变动等问题,在使用中存在一定困难.最近发现了一款分类信息查 ...

  6. 局域网网络流量监控_18个监控网络带宽的Linux命令行工具

    本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量分开来显示.一些命令可以显示单个进程所使用的带宽 ...

  7. linux rm替代命令_5种基本Linux命令行工具的现代替代品

    linux rm替代命令 在Linux / Unix系统的日常使用中,我们使用许多命令行工具来完成工作并理解和管理我们的系统,例如du用来监视磁盘利用率, top用来显示系统资源. 其中一些工具已经存 ...

  8. linux 命令行 过滤,利用linux命令行工具进行文本行过滤

    在日常工作中会遇到需要筛选过滤要查看的日志等文本文件的任务,例如需要查看日志文件的最后几行等. 下面总结一下常见的对文本行过滤的方法. 常用命令行工具 接下来主要使用的是head,tail,sed和a ...

  9. linux下磁盘高级工具,Linux命令行工具-di

    今天小编要跟大家分享的文章是关于Linux命令行工具-di.如果你是个Linux命令行用户,你肯定会使用df命令检查文件系统的磁盘使用情况.尽管df是一个受欢迎的命令,但仍然不能提供一些高级的功能,如 ...

最新文章

  1. 中科院博导: 读博士感到痛苦的五个原因
  2. 《强化学习周刊》第30期:Deep Mind开展人机交互的新试点研究、MIT提出神经进化优化框架...
  3. 14、四大组件--Service
  4. 基于Springboot实现校友录管理系统
  5. [Codeforces Round #162 (Div. 2)]A. Colorful Stones (Simplified Edition)
  6. 开心网外挂开发之 XML序列化于反序列化
  7. Elasticsearch的功能,Elasticsearch的适用场景,Elasticsearch的特点(来自学习资料)
  8. 复制模式和扩展模式_扩展剂:模式还是反模式?
  9. 安装ElasticSearch过程遇到的坑
  10. 互联网晚报 | 9月20日 星期一 | 阿里淘菜菜新增“找好友微信代付”入口;百度进军货运赛道;北京环球度假区今起正式开放...
  11. Oracle基础 游标
  12. 连接远程hbase长时间等待问题
  13. Live2D Cubism Editor Pro v4.1.00 卡通动画模型制作工具中文版
  14. 超详细的MySQL完全卸载教程
  15. arduino控制雨滴传感器
  16. Windows的cmd统计文件行数
  17. 链塔智库|区块链产业要闻及动态周报(2021年8月第3周)
  18. VBA将金额数字转成中文大写
  19. 用jQuery添加dragstart,dragover和drop事件,实现拖拽效果
  20. MyEclipse10.5+jdk1.8的安装

热门文章

  1. SAP MM 执行事务代码MRRL报错-No message was found for partner 100065 company code 0001-
  2. Site Group Level Price Maintenance in IS Retail
  3. 标准出现问题,人工智能正在走向错误的方向
  4. 爬取30亿人脸被600家执法机构使用,这家公司揭美国数据隐私老底
  5. 因深度学习成就,香港大学罗平入选《麻省理工科技评论》亚太区「35 岁以下创新者」榜单
  6. SAP PI 7.3新特性介绍
  7. 人工智能落地之路:从概念验证到产品
  8. 未来,AI可用于5G网络分析
  9. SAP MM 如何根据一个已经存在的IDoc产生新的IDoc?
  10. 干货丨手把手带你玩转机器学习和深度学习