几个新一代命令行工具

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

新一代命令行工具的特点是语法简单,符合直觉。他们大多使用 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 为例。

目录
相关文章
|
7月前
|
人工智能 云计算 开发者
新一代Docker的到来,会让部署更快捷么?
作为开发者想必都知道云计算和容器技术的不断发展,Docker已经成为了最热门的容器化工具之一。尽管Docker非常受欢迎,它仍然存在一些问题,比如:启动速度较慢、资源占用较高等。但是,新一代Docker的到来,似乎可以解决这些问题,让部署更加快捷和高效。尤其是在生成式AI应用中,Docker容器逐渐成为了最主流的部署方式,它可以屏蔽环境差异,使程序在任何环境上都有一致的表现,实现“build once,run everywhere”。就在近日,Dockercon大会发布了Docker与AI结合的新型产品,据悉1小时构建可缩短至1.5分钟,那么作为开发者,你觉得Docker与AI结合会让变成更加
58 1
新一代Docker的到来,会让部署更快捷么?
|
存储 Linux 虚拟化
开源虚拟化平台oVirt4.3简单搭建实践(下)
开源虚拟化平台oVirt4.3简单搭建实践(下)
928 0
开源虚拟化平台oVirt4.3简单搭建实践(下)
|
6天前
新华三命令行基础
新华三命令行基础
|
6天前
|
IDE Cloud Native 开发工具
云原生之在Docker环境下部署Atheos云IDE平台
【2月更文挑战第3天】云原生之在Docker环境下部署Atheos云IDE平台
382 2
|
9月前
|
消息中间件 负载均衡 监控
在Linux服务器上安装EMQX平台:构建高性能的开源物联网消息中间件
EMQX是一个开源的物联网消息中间件平台,提供高性能、高可用性的MQTT和CoAP协议支持,适用于大规模物联网应用场景。本文将详细介绍在Linux服务器上安装EMQ X平台的步骤,帮助开发者快速搭建功能强大的物联网消息中间件。
2294 1
|
数据可视化 关系型数据库 Linux
开源虚拟化平台oVirt4.3简单搭建实践(上)
开源虚拟化平台oVirt4.3简单搭建实践
1236 0
开源虚拟化平台oVirt4.3简单搭建实践(上)
|
前端开发 关系型数据库 MySQL
开源云真机平台sonic-1.5.0版本部署实践
介绍演示部署的全过程: ● 安装docker、docker-compose ● 安装MySQL,创建sonic数据库 ● 安装jdk及Android SDK ● 部署sonic,注册agent ● 部署agent,连接使用手机
开源云真机平台sonic-1.5.0版本部署实践
|
消息中间件 NoSQL 应用服务中间件
国产系统离线环境安装
arm64国产操作系统,无外网的情况下安装项目所需环境
72467 1
|
人工智能 JavaScript 前端开发
AliOS Things 3.3.0新版本发布:致力于更易用的物联网操作系统
时隔一年,AliOS Things 3.3.0新版本于2021年4月23日正式在Gitee,Code China和Github上开源发布,为开发者持续打造更易用的操作系统,为碎片化的物联网提供统一的操作系统解决方案。
AliOS Things 3.3.0新版本发布:致力于更易用的物联网操作系统
|
开发工具 物联网
【物联网中间件平台-03】YFIOs安装指南
YFIOs就是YFSoft I/OServer的简称,在物联网、云计算时代,一切以数据为中心,不同的传感器通过不同的方式接入网络,通过云计算的方式为不同的终端用户提供服务。
946 2