几个新一代命令行工具

简介: 几个新一代命令行工具

新一代命令行工具的特点是语法简单,符合直觉。他们大多使用 rust 或者 go 编写。

sd

sd 可以替代 sed。sd 是使用 rust 编写的,所以使用的正则引擎和你在 JS 和 Python 中熟悉的正则引擎是一致的,也就不需要各种奇奇怪怪的转义了。sd 还具有字符串模式,也就是关闭正则表达式,这也避免了一些转义的工作量。

安装

# 首先安装 rust,如果没有安装的话
~$ curl https://sh.rustup.rs -sSf |sh
~$ cargo install sd

使用

# 和 sed 的对比:
sd:sd before after
sed:sed s/before/after/g
# 字符串模式, -s 开启,可以看到括号就是括号
> echo 'lots((([]))) of special chars' | sd -s '((([])))' ''
lots of special chars
# 默认是正则模式
> echo 'lorem ipsum 23   ' | sd '\s+$' ''
lorem ipsum 23
# 使用正则分组
> echo 'cargo +nightly watch' | sd '(\w+)\s+\+(\w+)\s+(\w+)''cmd: $1, channel: $2, subcmd: $3'cmd:cargo,channel: nightly, subcmd: watch
# 替换文件,使用 -i
> sd 'window.fetch' 'fetch' -i http.js

fd

fd 可以用来替代 find。和 sed 一样,find 命令也使用了一些古老的正则语法,要查找含有某个字的文件,或者过滤某个类型的文件都要使用一些比较难以记忆的通配符。fd 命令则好了,没有什么复杂的,基本上按照直觉敲出来就对了。

安装

brew install fd  # homebrew/linuxbrew
或者
cargo install fd-find  # 首先需要安装 rust,如前文所述

使用

# 查找包含 name 的文件 
-> % find . -name "*hello*"
./courses/hello_world.go
./courses/chapter_01/hello_world.go
./courses/chapter_01/hello_world
./examples/01_hello_world.go
# 相比之下 fd 则简单多了
-> % fd hello 
courses/chapter_01/hello_world
courses/chapter_01/hello_world.go
courses/hello_world.go
examples/01_hello_world.go
# 查找 markdown 类型的文件
-> % find .-name "*.md"
./courses/chapter_01/chapter_1.md
./courses/chapter_1.md
-> % fd -e md
courses/chapter_01/chapter_1.md
courses/chapter_1.md
# 使用 exec,这是我对 find 命令最不满意的地方,结尾的分号实在费解
-> % find . -name "*.md" -exec wc -l {} \;
     114 ./courses/chapter_01/chapter_1.md
     114 ./courses/chapter_1.md
-> % fd -e md --exec wc -l {}
     114 courses/chapter_1.md
     114 courses/chapter_01/chapter_1.md

bat

bat 是个带了高亮和git集成版的 cat。虽说按照 Unix 哲学的话 cat|highlight 命令也能实现类似的功能,但是还是 bat 更省心一点,默认主题也更漂亮一点。640 (6).png

安装

brew install bat

使用

直接用就好了。。建议 aliascat=bat

sk 和 fzf

sk 和 fzf 是两个模糊搜索工具,分别使用 rust 和 go 编写,两个的功能比较接近,这里以我日常使用的 fzf 为例。

目录
相关文章
|
存储 Linux 虚拟化
开源虚拟化平台oVirt4.3简单搭建实践(下)
开源虚拟化平台oVirt4.3简单搭建实践(下)
1207 0
开源虚拟化平台oVirt4.3简单搭建实践(下)
|
监控 网络协议 物联网
erlang物联网开源项目emqtt下载,源码编译,调试工具和图形化监控相关(一)
erlang物联网开源项目emqtt下载,源码编译,调试工具和图形化监控相关(一)
532 12
|
3月前
|
运维 监控 Linux
深入理解Linux系统运维:命令行工具的力量
【9月更文挑战第14天】在Linux的世界里,命令行工具是系统管理员的瑞士军刀。本文将带你领略命令行的魅力,从基础操作到高级技巧,让你的运维工作更加高效和精准。准备好了吗?让我们一起开启这段探索之旅!
|
7月前
|
IDE Cloud Native 开发工具
云原生之在Docker环境下部署Atheos云IDE平台
【2月更文挑战第3天】云原生之在Docker环境下部署Atheos云IDE平台
575 2
|
消息中间件 负载均衡 物联网
在Linux服务器上安装EMQX平台:构建高性能的开源物联网消息中间件
EMQX是一个开源的物联网消息中间件平台,提供高性能、高可用性的MQTT和CoAP协议支持,适用于大规模物联网应用场景。本文将详细介绍在Linux服务器上安装EMQ X平台的步骤,帮助开发者快速搭建功能强大的物联网消息中间件。
3567 1
|
数据可视化 关系型数据库 Linux
开源虚拟化平台oVirt4.3简单搭建实践(上)
开源虚拟化平台oVirt4.3简单搭建实践
1422 0
开源虚拟化平台oVirt4.3简单搭建实践(上)
|
前端开发 关系型数据库 Java
国外开源IoT平台Thingsboard社区版本(V3.3.2)在Win10环境下进行源码编译及运行指南
国外开源IoT平台Thingsboard社区版本(V3.3.2)在Win10环境下进行源码编译及运行指南
1028 0
国外开源IoT平台Thingsboard社区版本(V3.3.2)在Win10环境下进行源码编译及运行指南
|
Shell Linux 网络安全
RISC-V生态开发套件解析(六):LicheeRV 86开发板搭建Waft运行环境
随着RISC-V生态的蓬勃发展,相关开源开发套件也开始逐渐丰富。为了帮助开发者快速了解、玩转新推出的RISC-V开发套件,OCC推出RISC-V生态开发套件解析系列内容,详细讲解生态开发套件的功能特点与上手教程。
827 0
RISC-V生态开发套件解析(六):LicheeRV 86开发板搭建Waft运行环境
|
开发工具 物联网
【物联网中间件平台-03】YFIOs安装指南
YFIOs就是YFSoft I/OServer的简称,在物联网、云计算时代,一切以数据为中心,不同的传感器通过不同的方式接入网络,通过云计算的方式为不同的终端用户提供服务。
1012 8
|
消息中间件 域名解析 监控
erlang物联网开源项目emqtt下载,源码编译,调试工具和图形化监控相关(二)
erlang物联网开源项目emqtt下载,源码编译,调试工具和图形化监控相关(二)
285 0