几个新一代命令行工具

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

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

目录
相关文章
|
监控 网络协议 物联网
erlang物联网开源项目emqtt下载,源码编译,调试工具和图形化监控相关(一)
erlang物联网开源项目emqtt下载,源码编译,调试工具和图形化监控相关(一)
545 12
|
3月前
|
编解码 开发工具 计算机视觉
鸿蒙5.0版开发:命令行工具(mediatool工具)
在HarmonyOS 5.0的开发中,命令行工具mediatool基于FFmpeg库,提供了丰富的媒体处理功能,如视频和音频的转码、封装格式转换、提取媒体信息等。本文详细介绍mediatool的功能和使用方法,并提供代码示例。
98 6
|
6月前
|
IDE 开发工具 Python
新一代数据科学ide平台DataSpell提前发行版体验
新一代数据科学ide平台DataSpell提前发行版体验
125 0
|
9月前
|
搜索推荐 开发者 Windows
|
9月前
|
IDE Cloud Native 开发工具
云原生之在Docker环境下部署Atheos云IDE平台
【2月更文挑战第3天】云原生之在Docker环境下部署Atheos云IDE平台
600 2
|
SQL 分布式计算 Ubuntu
大数据基本开发工具的Linux操作系统的Ubuntu
在大数据领域中,选择合适的操作系统至关重要。Linux是一个广受欢迎的开源操作系统,在众多Linux发行版中,Ubuntu已经成为一款备受推崇的操作系统之一。本文将会介绍在Ubuntu上进行大数据开发所需的基本工具。
162 0
|
消息中间件 NoSQL 应用服务中间件
国产系统离线环境安装
arm64国产操作系统,无外网的情况下安装项目所需环境
72537 1
|
消息中间件 域名解析 监控
erlang物联网开源项目emqtt下载,源码编译,调试工具和图形化监控相关(二)
erlang物联网开源项目emqtt下载,源码编译,调试工具和图形化监控相关(二)
293 0
|
SQL JavaScript MySQL
简单介绍我的开源小工具:SanicDB
SanicDB 是为 Python的异步 Web 框架 Sanic 方便操作MySQL而开发的工具,是对 aiomysql.Pool 的轻量级封装。Sanic 是异步IO的Web框架,同时用异步IO读写MySQL才能更大发挥它的效率。
1828 0
|
Ubuntu PHP 开发工具
FBCTF平台安装
一言难尽 = =开始不知道FBCTF只能安装在Ubuntu,在本地搭建半天好不容易弄起了PHP环境,打开错误,后来才知道只能在Ubuntu 14.04 LTS下安装= = FBCTF是Facebook开发的一套开源的CTF平台,PHP语言,GitHub地址:https://github.com/facebook/fbctf/ 而且我找到的大部分教程都是需要FQ的,各位也知道这两年国内开始整治网络。
3226 0