在日常使用 Linux/Unix 系统时,我们会使用许多命令行工具来完成我们的工作,并理解和管理我们的系统,像 du 用于监视磁盘利用率,top 用于显示系统资源。其中一些工具已经存在很长时间了。例如,top 于 1984 年首次发布,而 du 的首次发布要追溯到 1971 年。 多年来,这些工具已经被现代化并移植到不同的系统,但是,通常,它们仍然延续着它们最初的思想和体验。

这些都是很好的工具,对于许多系统管理员的工作流来说都是必不可少的。然而,最近几年,开源社区已经开发出了可以带来额外好处的替代工具。虽然有些华而不实,但另外一些则极大地提高了可用性,使它们成为现代化系统上的最佳选择。这包括以下五个标准 Linux 命令行工具的替代品。

1作为 du 替代品的 ncdu

NCurses 磁盘利用率(ncdu)工具提供了与 du 类似的结果,但是在一个基于 curses 的交互式界面中,它重点关注那些占用磁盘空间比较多的目录。

ncdu 会花一些时间分析磁盘,然后根据你最常用的目录或文件显示结果,如下所示:

ncdu 1.14.2 ~ Use the arrow keys to navigate, press ? for help--- /home/rgerardi ------------------------------------------------------------   96.7 GiB [##########] /libvirt   33.9 GiB [###       ] /.crc    7.0 GiB [          ] /Projects.   4.7 GiB [          ] /Downloads.   3.9 GiB [          ] /.local    2.5 GiB [          ] /.minishift    2.4 GiB [          ] /.vagrant.d.   1.9 GiB [          ] /.config.   1.8 GiB [          ] /.cache    1.7 GiB [          ] /Videos    1.1 GiB [          ] /go  692.6 MiB [          ] /Documents. 591.5 MiB [          ] /tmp  139.2 MiB [          ] /.var  104.4 MiB [          ] /.oh-my-zsh   82.0 MiB [          ] /scripts   55.8 MiB [          ] /.mozilla   54.6 MiB [          ] /.kube   41.8 MiB [          ] /.vim   31.5 MiB [          ] /.ansible   31.3 MiB [          ] /.gem   26.5 MiB [          ] /.VIM_UNDO_FILES   15.3 MiB [          ] /Personal    2.6 MiB [          ]  .ansible_module_generated    1.4 MiB [          ] /backgrounds  944.0 KiB [          ] /Pictures  644.0 KiB [          ]  .zsh_history  536.0 KiB [          ] /.ansible_async Total disk usage: 159.4 GiB  Apparent size: 280.8 GiB  Items: 561540

使用方向键导航到每个条目。如果你在一个目录条目上按下 Enter 键,ncdu 将显示该目录的内容:

--- /home/rgerardi/libvirt ----------------------------------------------------                         /..   91.3 GiB [##########] /images    5.3 GiB [          ] /media

你可以使用它下钻目录并查找哪些文件占用的磁盘空间最多,使用左箭头键可以返回上一级目录。在默认情况下,可以按下 d 键使用 ncdu 删除文件,在删除之前,它会跟你确认删除请求。如果你想禁用此行为以防止发生意外,请使用 -r 选项进行只读访问:ncdu -r。

ncdu 可用于许多平台和 Linux 发行版。例如,你可以使用 dnf 直接从官方存储库把它安装到 Fedora 上:

  • $ sudo dnf install ncdu

要了解关于这个工具的更多信息,请查看 ncdu 页面。

https://dev.yorhel.nl/ncdu

2作为 top 替代品的 htop

htop 是一个类似于 top 的交互式流程查看器,但它提供了更好的开箱即用的用户体验。默认情况下,htop 会用令人愉快的彩色显示与 top 相同的指标。

默认情况下,htop 是这样的:

相比之下,top 默认是这样的:

此外,htop 在顶部提供了系统概览信息,在底部提供了一个命令栏,可以使用功能键来触发命令,而且,你还可以按 F2 进入设置界面对它进行定制。你可以更改其颜色、添加或删除指标,或更改概览栏的显示选项。

虽然对于最新版本的 top,你也可以通过配置实现类似的结果,但 htop 提供了更合理的默认配置,这使得它成为一个漂亮且易于使用的流程查看器。

要了解关于这个项目的更多信息,请查看 htop 首页。

https://hisham.hm/htop/

3作为 man 替代品的 tldr

tldr 命令行工具显示简化的命令用法信息,主要包括示例。它是作为社区项目 tldr pages 的客户端。

这个工具不能代替 man。man 页面仍然是许多工具规范而完整的信息源。然而,在某些情况下,man 提供的信息太多了。有时候,你不需要一个命令的所有信息;你只是试着记住基本的选项。例如,curl 命令的 man 页面几乎有 3000 行。相反,curl 的 tldr 页面只有 40 行,如下所示:

$ tldr curl# curl  Transfers 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't read”的缩写,指对一篇很长的文章进行总结。这个名称很适合这个工具,因为 man 页面虽然有用,但有时太长了。

在 Fedora 中,tldr 客户端是用 Python 编写的。你可以使用 dnf 安装它。要了解其他客户端选项,请参阅 tldr pages 项目页面。

https://tldr.sh/

一般来说,tldr 工具需要访问互联网以查阅 tldr pages。Fedora 中的 Python 客户端允许你下载并缓存这些页面以供脱机访问。

要了解有关 tldr 的更多信息,可以使用 tldr tldr。

4作为 sed/grep 替代品的 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 和 sed 就可能提供不同的结果。

jq 有许多特性,要介绍所有这些特性的话,需要另写一篇文章。要了解更多信息,请参阅 jq 项目页、man 页面或 tldr jq。

https://stedolan.github.io/jq/

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 中安装:

  • $ sudo dnf install fd-find

要了解更多信息,请查阅 fd GitHub 存储库。

https://github.com/sharkdp/fd/

6其他替代品

虽然我仍然经常使用所有旧的基本工具,特别是在远程连接到服务器时,但这些替代品额外提供了一些在许多场景中都非常有用的好处。特别是,它们对我在 Linux 台式机和笔记本电脑上的工作帮助很大。

你的工作流中是否使用了其他工具?欢迎在下面的评论区补充。

7作者介绍

Ricardo Gerardi 是加拿大红帽公司的高级顾问,他专门从事基于 Ansible 和 Openshift 的 IT 自动化。他有丰富的电信行业经验,曾在 TELUS 担任高级架构师,并曾在 IBM 巴西和 IBM 加拿大担任网络管理解决方案的高级顾问和售前专家长达 13 年。Ricardo 是一个超过 20 年的 Linux 爱好者。他目前感兴趣的是用 Go 编程来破解东西……

以上就是良许教程网为各位朋友分享的Linux5个基本命令行工具的替代品。 以上就是良许教程网为各位朋友分享的Linux相关知识。

Linux5个基本命令行工具的替代品相关推荐

  1. 实用!五款新型 Linux 命令行工具

    使用新的替代工具来改进旧的命令行工具. 作者 | Ricardo Gerardi 译者 | 弯月,责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 以下为译文: 在Linux/Unix系统 ...

  2. linux开源炫酷命令行工具,Linux上超酷的命令行扩展工具Oh My Zsh

    Oh My Zsh 是一款社区驱动的命令行工具,正如它的主页上说的,Oh My Zsh 是一种生活方式.它基于 zsh 命令行,提供了主题配置,插件机制,已经内置的便捷操作.给我们一种全新的方式使用命 ...

  3. 14 款命令行常用工具的替代品!

    作者 | JackTian 来源 | 杰哥的IT之旅 在 Linux 操作系统下,ls (list) 可以说是我们日常使用率较高的命令了,它主要用来显示目标列表,输出信息可以进行彩色加亮显示,以分区不 ...

  4. 14 款命令行常用工具的替代品

    作者:JackTian 来源:公众号「杰哥的IT之旅」 ID:Jake_Internet 转载请联系授权(微信ID:Hc220088) 原文地址:14 款命令行常用工具的替代品! 大家好,我是杰哥. ...

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

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

  6. go编写命令行工具_编写者的命令行文档转换工具

    go编写命令行工具 今天,我们有足够的工具可用于在我们的计算机上编辑备忘录,信件,论文,书籍,演示幻灯片和其他文档. 这既有好处也有缺点:一方面,如果您不喜欢某个软件,则可以随时随地转到另一个软件上: ...

  7. 推荐 18 个终端命令行工具

    点击关注公众号,实用技术文章及时了解   作者:lcomplete   juejin.cn/post/6966606708848197645 终端是程序员的必备工具之一,10 倍程序员的终端跟普通程序 ...

  8. 几款超牛逼的终端命令行工具!好用到爆

    点击关注公众号,回复"1024"获取2TB学习资源! 终端是程序员的必备工具之一,本文将介绍许多牛逼且实用的开源工具,本文仅对工具做基本介绍,不提供安装方法,因为这些工具的安装方法 ...

  9. linux下 18 个实用的终端命令行工具

    终端是程序员的必备工具之一,本文将介绍许多牛逼且实用的开源工具,本文仅对工具做基本介绍,不提供安装方法,因为这些工具的安装方法在项目的 github 首页上基本都会提供,在掘金上也能找到许多具体的使用 ...

最新文章

  1. 如何优雅处理重复请求/并发请求?
  2. 一个与生命起源有关的悖论终于得到了解决
  3. 如何创建企业微信应用
  4. jQuery.sap.declare(cus.crm.notes.ext.Component);
  5. camel 多个 to_具有多个查询参数的Camel CXF服务
  6. 学徒学计算机,那个有能力的高人愿意收我做学徒啊,我是学计算机的
  7. kafka:topic为什么要进行分区?副本机制是如何做的?
  8. 转 程序员学习的革命-如何使用大脑
  9. 7位格雷码计算风向_七哥特刊|从二轮秀到队内得分王 格雷厄姆会新的蜂王吗?...
  10. DBGrid 应用系列
  11. TeeChart.NET 2022.4.8 专业版-Crack
  12. 界面怎么随意设计java,怎么样设计一个图形用户界面(普通登陆框)用java语言中的swing...
  13. CE-RTI开源软件代码学习笔记(一)
  14. 「管理数学基础」1.6 矩阵理论:方阵相似的条件、若当标准形
  15. 用js实现自动获取身份证里面的信息
  16. 用mysql查询图书的信息_PHP+MySQL 利用mysql_fetch_row模糊查询图书信息
  17. 攻击JavaWeb应用[3]-SQL注入[1]
  18. 解决ORA-01034/ORA-27101
  19. Flask后端开发(二) - Flask的练习(入门)
  20. JavaScript到底算不算函数式编程语言?

热门文章

  1. 免费轻松识别手写汉字工具-python
  2. join方法 js 单字符串会报错_浅谈JavaScript字符串拼接
  3. 集成时间序列模型提高预测精度
  4. 中国首家!985大学,布局元宇宙!
  5. linux 卸载java jdk1.6_Linux jdk1.6安装与卸载
  6. Java写内容到本地文件
  7. Mac+Docker+K8S本地搭建K8S集群
  8. Excel常用技巧--工作中最常用的30个Excel函数公式
  9. nginx 启动、停止、关闭
  10. 【01trie】【启发式合并】P6072 『MdOI R1』Path