分享5个基本Linux命令行工具的现代化替代品
在日常使用 Linux/Unix 系统时,我们经常使用各种命令行工具来管理系统和理解系统的运行情况。比如,du 命令用于监视磁盘利用率,top 命令用于显示系统资源。其中一些工具已经存在了很长时间,比如 top 命令于1984年首次发布,而 du 命令的首次发布可追溯到1971年。
这些工具经过多年的发展,已经从原始的形式逐渐演化为现代化的版本,并被移植到不同的系统上。然而,尽管有现代化的变化,这些工具仍然保持着它们最初的思想和用户体验。
这些工具对于系统管理员的工作流程非常重要,是不可或缺的。然而,在过去几年中,开源社区已经发展出了一些替代工具,它们带来了额外的好处。有些新工具可能比较华而不实,但另一些工具则大大提高了可用性,使其成为现代化系统上的最佳选择。下面介绍了五个替代标准 Linux 命令行工具的工具。
1. ncdu 作为 du 的替代品
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: . - 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 编程来破解东西……
以上是分享5个基本Linux命令行工具的现代化替代品的详细内容。更多信息请关注PHP中文网其他相关文章!

Linux和Windows在硬件兼容性上不同:Windows有广泛的驱动程序支持,Linux依赖社区和厂商。解决Linux兼容性问题可通过手动编译驱动,如克隆RTL8188EU驱动仓库、编译和安装;Windows用户需管理驱动程序以优化性能。

Linux和Windows在虚拟化支持上的主要区别在于:1)Linux提供KVM和Xen,性能和灵活性突出,适合高定制环境;2)Windows通过Hyper-V支持虚拟化,界面友好,与Microsoft生态系统紧密集成,适合依赖Microsoft软件的企业。

Linux系统管理员的主要任务包括系统监控与性能调优、用户管理、软件包管理、安全管理与备份、故障排查与解决、性能优化与最佳实践。1.使用top、htop等工具监控系统性能,并进行调优。2.通过useradd等命令管理用户账户和权限。3.利用apt、yum管理软件包,确保系统更新和安全。4.配置防火墙、监控日志、进行数据备份以确保系统安全。5.通过日志分析和工具使用进行故障排查和解决。6.优化内核参数和应用配置,遵循最佳实践提升系统性能和稳定性。

学习Linux并不难。1.Linux是一个开源操作系统,基于Unix,广泛应用于服务器、嵌入式系统和个人电脑。2.理解文件系统和权限管理是关键,文件系统是层次化的,权限包括读、写和执行。3.包管理系统如apt和dnf使得软件管理方便。4.进程管理通过ps和top命令实现。5.从基本命令如mkdir、cd、touch和nano开始学习,再尝试高级用法如shell脚本和文本处理。6.常见错误如权限问题可以通过sudo和chmod解决。7.性能优化建议包括使用htop监控资源、清理不必要文件和使用sy

Linux管理员的平均年薪在美国为75,000至95,000美元,欧洲为40,000至60,000欧元。提升薪资可以通过:1.持续学习新技术,如云计算和容器技术;2.积累项目经验并建立Portfolio;3.建立职业网络,拓展人脉。

Linux的主要用途包括:1.服务器操作系统,2.嵌入式系统,3.桌面操作系统,4.开发和测试环境。Linux在这些领域表现出色,提供了稳定性、安全性和高效的开发工具。

互联网运行不依赖单一操作系统,但Linux在其中扮演重要角色。Linux广泛应用于服务器和网络设备,因其稳定性、安全性和可扩展性受欢迎。

Linux操作系统的核心是其命令行界面,通过命令行可以执行各种操作。1.文件和目录操作使用ls、cd、mkdir、rm等命令管理文件和目录。2.用户和权限管理通过useradd、passwd、chmod等命令确保系统安全和资源分配。3.进程管理使用ps、kill等命令监控和控制系统进程。4.网络操作包括ping、ifconfig、ssh等命令配置和管理网络连接。5.系统监控和维护通过top、df、du等命令了解系统运行状态和资源使用情况。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

SublimeText3汉化版
中文版,非常好用