

原生Linux命令不好使?试试这14款替代工具吧,好用到爆!-51CTO.COM
source link: https://os.51cto.com/article/708366.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

一、lsd
lsd[2]是一个基于 Rust 语言编写的 ls 命令替代品,增加了颜色、图标、树视图、更多格式选项等。可以在 Archlinux、Fedora、macOS、FreeBSD、Windows、Android、Ubuntu、Debian 等多种操作系统上安装。
# curl -LO https://github.com/Peltoche/lsd/releases/download/0.21.0/lsd_0.21.0_amd64.deb
# dpkg -i lsd_0.21.0_amd64.deb
二、broot
broot[3]也是一个基于 Rust 语言编写的 ls 命令替代品。相比 lsd 来说,它是一种查看和导航目录树的新方法,也可以理解为 broot 就是终端里的文件管理器。
broot 的特征:
- 获得一个目录的概览、甚至是一个大目录
- 找到一个目录然后 cd
- 搜索时永远不会丢失文件层次的结构
- 操作文件、管理文件、预览文件
- 将标准或个人快捷方式应用于文件
- 排序看看占用空间
- 检查 Git 状态
broot 的使用:
使用 broot 时,可以先列出当前目录下的文件信息。
# br -sdph
- -s:显示文件大小
- -d:显示文件时间
- -p:显示文件权限
- -h:显示隐藏文件
从上述结果可以看出,broot 默认是以树状结构展开子目录,在该界面中,可以完成搜索(输入关键词)、复制(cp <复制后的文件名>)、删除 rm、更改文件名(mv <新文件名>)、退出 q基本文件操作。
三、zoxide
zoxide[5]是 cd 命令的替代品,主要用来切换用户当前工作目录,相比 cd 命令来说,zoxide 更智能些,它会记住您最常使用的目录,因此您只需按几下键即可“跳转”到指定的目录。
zoxide 可以在 Linux、macOS、Windows、BSD、Android 等操作系统上运行,用法与 cd 一样。
# zoxide /etc
如果您经常用 zoxide 进入 /etc 目录,您可以只写路径的一部分,从而将自动找到您经常使用的匹配项,只需输入命令:z e,就会自动将e匹配为 /etc,从而进入该目录中。
# z e
四、fzf
fzf[6]是一个通用的交互式命令行模糊查找器,便捷、无依赖、速度极快可用于任何列表、文件、历史命令、进程、主机名、书签、git 提交等。可以在 Debian 9+、Ubuntu 19.10+、Fedora、Arch Linux、FreeBSD、OpenBSD、openSUSE 等多种 Linux 发行版中安装。
# curl -LO http://cn.archive.ubuntu.com/ubuntu/pool/universe/f/fzf/fzf_0.24.3-1_amd64.deb
# dpkg -i fzf_0.24.3-1_amd64.deb
使用 fzf 可以结合 find 的替代品 fd[7]工具,关于 fd 这里不详细介绍了!
如果使用模糊查找,找出包含 debug 的文件名,可执行如下命令后,输入debug即可。
# find . -type f | fzf
五、ripgrep (rg)
ripgrep (rg)[8]是 grep 命令的替代品,它是一种面向行的搜索工具,递归地在当前目录中搜索正则表达式模式,支持在 Windows、Linux 和 macOS 上安装。
ripgrep GitHub 存储库也对相同文件、单个大文件通过 ripgrep、git grep、ugrep、The Silver Searcher、ack、GNU grep 的方式做了鲜明的基准测试对比。从时间上来看 ripgrep 搜索时间相比是最快的。
除此之外,ripgrep 默认过滤、更少的错误、Unicode 支持、带有行号和搜索词高亮。
# apt install ripgrep
ripgrep 跟 grep 用法类似,比如:我要搜索所有内容包含字符串 yum 的 sh 文件,可执行如下命令:
# rg yum *.sh
9:cd /etc/yum.repos.d/
22:yum clean all
23:yum makecache
25:echo "本地yum仓库已经创建完成!"
除 grep、ripgrep 之外,还有 ack、ag[9]关于 ack 和 ag 这里不详细介绍了
六、procs
procs[10]是基于 Rust 语言编写的一个 ps 命令的替代品,它支持彩色高亮、多栏关键词搜索等特征的显示进程相关信息,可在 Linux、macOS、Windows 操作系统上进行安装。
procs 的安装:
Arch Linux
# sudo pacman -S procs
Fedora
# sudo dnf install procs
# sudo rpm -i https://github.com/dalance/procs/releases/download/v0.12.1/procs-0.12.1-1.x86_64.rpm
使用 procs 可执行如下命令,将显示所有进程的信息。
# procs
使用非数字 / 关键字进行搜索,添加任何关键字作为参数选项,默认情况下将会自动匹配 USER 到 COMMAND 中,添加与非数字关键字匹配的列,nonnumeric_search可以在配置文件中使用选项。
使用数字作为关键字进行搜索,默认匹配PID,默认情况下,数值被视为完全匹配,非数值被视为部分匹配,添加与数字关键字匹配的列,numeric_search可以在配置文件中使用选项。
如有一些关键字,可通过命令行选项指定关键字之间的逻辑运算。
- --and:显示与所有关键字匹配的进程
- --or:显示与任何关键字匹配的进程
- --nand:除非这些过程与所有关键字匹配,否则将显示这些过程
- --nor:除非与任何关键字匹配,否则将显示进程
七、diff-so-fancy
diff-so-fancy[11]是 git diff 的替代品,它是基于 node 实现的一款命令行工具,可以为您的终端呈现漂亮的差异,有助于提高代码质量并帮助更快发现缺陷。
diff-so-fancy 的安装:
# npm install -g diff-so-fancy
diff-so-fancy 的使用:
直接可以在命令行调用
# git diff --color | diff-so-fancy
通过上述方式使用 diff-so-fancy 虽简单,但会把所有结果全部输出,并没显得差异化。我们可以通过设置 pager 对结果进行分页配置 git 以 diff-so-fancy 用于所有差异输出:
# git config --global core.pager " diff-so-fancy | less --tabs=4 -RFX "
# git config --global interactive.diffFilter " diff-so-fancy --patch "
将 diff-so-fancy 配置为 Git 的默认 diff 工具就可以了,每次执行 git diff,就会输出它的执行结果。
八、delta
delta[12]是用于 git、diff 和 grep 输出的语法高亮分页器,它允许对 diff 的布局和样式进行大量的更改。
delta 的特征:
- 使用颜色主题突出显示语言的语法
- 语法高亮从 rg、git grep、grep 等的 grep 输出
- 带换行的并排视图
- 支持显示行号
- 支持合并冲突显示
- 支持 Git 的 --color-moved 功能
- n 和 N 键绑定在大差异中的文件之间移动
- 代码可以直接从差异中复制
delta 的安装:
delta 支持在 Arch Linux、Fedora、FreeBSD、OpenSUSE、Debian / Ubuntu、Windows 等多种操作系统上安装,具体可参考 delta[13] 用户手册的安装部分。
九、mcfly
Mcfly[14] 是ctrl+r的替代品,主要用来搜索 Shell 操作记录。
mcfly 的特征:
- 绑定ctrl+r以启动全屏反向历史搜索
- 基于 Rust 编写,快速、安全
- 搜索时键入%以匹配任意数量的字符
- 维护正常 Shell 历史文件,以便可随时停止使用 McFly
- 支持从 McFly 数据库和 Shell 历史文件中清除任何历史项目的操作
十、choose
choose[15] 是 cut[16]命令的替代品,用来显示行中的指定部分,删除文件中指定字段。cut 经常用来显示文件的内容,类似于 type 命令。
choose 的特征:
- 简洁字段、语法简单、类似于 Python 的列表切片
- 负索引从行尾开始
- 可选的开始 / 结束索引
- 对于足够长的输入,略快于cut,远快于awk
- 使用 Rust 的正则表达式语法的正则表达式字段分隔符
cut 的案例写法:
# cat 2022.txt | cut -d " " -f 1
or
# cut -d " " -f 1 2022.txt
choose 的案例写法:
# cat 2022.txt | choose 1
or
# choose 1 -i 2022.txt
十一、httpie
httpie[17]是 curl 的替代品,一个命令行 HTTP 客户端。httpie 的目标是使 CLI 与 Web 服务的交互尽可能的人性化,用于测试、调试以及通常与 API 和 HTTP 服务器交互,允许 http 和 https 命令创建和发送任意 HTTP 请求,从而使用简单的语法,并能够提供格式化和彩色输出。
curl PUT 请求案例写法:
# curl -X PUT -d hello=world example.com
httpie PUT 请求案例写法:
# http PUT example.com hello=world
自定义 HTTP 方法、HTTP 标头和 JSON 数据:
# http PUT pie.dev/put X-API-Token:123 name=John
在不使用离线模式发送的情况下构建和打印请求:
# http --offline pie.dev/post hello=offline
十二、curlie
curlie[18]跟 httpie 是同类项目,curlie 增加了 httpie 的易用性,而不影响它的特性和性能,所有 curl 选项的语法和输出格式都来自 httpie,如果您喜欢 httpie 的界面,但不喜欢 curl 的特性,那 curlie 是最佳的选择。
curlie 与 httpie 的区别:
- curlie 像 curl,但不像 httpie,文件头是写在 stderr,而不是写在 stdout;
- 输出没缓冲,所有格式化均动态完成,可轻松调试流数据;
- 使用 curl 选项打印执行的 curl 命令;
curlie 的语法:
# curlie [CURL_OPTIONS...] [METHOD] URL [ITEM [ITEM]]
curlie 的简单获取:
# curlie httpbin.org/headers
自定义方法、标头和 JSON 数据:
# curlie -v PUT httpbin.org/status/201 X-API-Token:123 name=John
十三、xh
xh[19]是一个用于发送 HTTP 请求的友好且快速的工具,相比 httpie 来说,主要是提高了性能、可作为单个静态链接的二进制文件,易于安装、支持 HTTP / 2、使用 curl 标志内置对 curl 命令的转换、简短的帮助信息可通过备忘单样式进行输出。
xh 的语法:
# xh [OPTIONS] <[METHOD] URL> [--] [REQUEST_ITEM]...
xh 的例子:
# 发送 GET 请求
xh httpbin.org/json
# 发送一个 POST 请求,请求体{"name": "ahmed", "age": 24}
xh httpbin.org/post name=ahmed age:=24
# 发送一个 querystring id=5 & sort=true 的 GET 请求
xh get httpbin.org/json id==5 sort==true
# 发送一个 GET 请求,并包含一个名为 x-api-key 的头,值为:66666
xh get httpbin.org/json x-api-key:66666
# 发送一个 PUT 请求,并将结果管道到 less
xh put httpbin.org/put id:=49 age:=24 | less
# 下载并保存到 test.json
xh -d httpbin.org/json -o test.json
# 请求与自定义用户代理
xh httpbin.org/get user-agent:foobar
十四、dog
dog[20]是一个命令行开源 DNS 客户端,dig 命令的替代品,有丰富多彩的输出,理解命令行参数语法,支持 UDP、TCP、DNS-over-TLS 和 DNS-over-HTTPS 协议的网络传输,并且可以发出 DNS 查询。
dog 可以在 Windows、MacOS 和 Linux 操作系统上运行,支持 16 种记录类型,包括:A、AAAA、CAA、CNAME、HINFO、LOC、MX、NAPTR、NS、OPT、PTR、SOA、SRV、SSHFP、TLSA 和 TXT。
dog 的例子:
# 使用默认设置查询域
dog example.net
# 查看 MX 记录
dog example.net MX
# 使用特定的命名服务器
dog example.net MX @IP地址 x.x.x.x
# 使用 TCP 而不是 UDP
dog example.net MX @IP地址 x.x.x.x -T
更多关于 dog 的安装、查询选项、发送选项、协议选项、输出选项可参考 dog 文档。
Recommend
-
55
脑子突然不好使了。
-
39
-
42
点击上方 “ 匠心零度 ” ,选择“
-
31
我使用 VSCode Remote-Containters 作为 golang 开发环境,因为生产环境使用的镜像主要是 alpine,所以开发环境自然而然使用了 golang:alpine,对应 Dockerfile 的内容如下: FROM golang:alpine RUN sed -i 's/dl-cdn.alpinel...
-
18
随着iPhone 12 mini的正式发售,很多人都收到了新机,但也暴露出一些问题。近期国外论坛有相当多的iPhone 12 mini新机用户在收到手机后报告了锁屏灵...
-
9
单招不好使,连招才管用:为Android应用生成高质量测试输入北海道大螃蟹搬砖的准CSPhd
-
6
经常用到的linux shell命令 经常用到的linux shell命令 记录一下自己经常用到的一些命令 查看db2的端口号 `db2 get dbm cfg` 找到服务名称 `vi /etc/services` 找到服务对应的端口 ...
-
12
监控可帮助您确保Kubernetes应用程序平稳运行并排除可能出现的任何问题。Prometheus是一种流行的开源监视工具,许多公司都使用它来监视其IT基础结构。但是,还有许多其他监视工具可用。本文介绍了6种可以替代Prometheus监视Kubernetes的方法。什么是Pro...
-
7
作者:JackTian 来源:公众号「杰哥的IT之旅」 ID:Jake_Internet 转载请联系授权(微信ID:Hc220088) 原文地址:7 款可替代 top 命令的工具!(二)
-
6
Git: 好用到爆命令和配置 发表于 2017-10-17 分类于 Git Valine: 0 本文字数: 4.4k 阅读时长 ≈ 4 分钟
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK