基本Linux命令行工具的现代化替代品有哪些

发布时间:2021-10-27 09:29:14 作者:小新
来源:亿速云 阅读:130

小编给大家分享一下基本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 是这样的:

基本Linux命令行工具的现代化替代品有哪些

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

基本Linux命令行工具的现代化替代品有哪些

此外,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

看完了这篇文章,相信你对“基本Linux命令行工具的现代化替代品有哪些”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. Linux 环境下通过mtr命令行工具进行链路测试
  2. 使用linux的nmcli命令网络管理命令行工具

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux

上一篇:怎么深入分析Spring MVC framework

下一篇:Mysql数据分组排名实现的示例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》