改造指令行体会: Rust 驱动的现代 CLI 东西代替品

目录

NuShell:高效的现代指令行东西

NuShell 是一款革命性的指令行东西,旨在供给比传统 Shell,如 zsh,更先进的用户体会。它经过结合现代编程言语的优势和 Shell 的灵活性,为用户带来了史无前例的功率和便利性。

NuShell 的长处

  • 结构化数据处理:NuShell 以共同的方法处理数据,使得对杂乱数据的查询和办理变得简略直观。
  • 跨渠道支撑:不管是在 macOS、Linux 仍是 Windows 上,NuShell 供给共同的体会。
  • 现代编程特性:支撑丰厚的数据类型,使得脚本编写愈加强壮且易于维护。
  • 友爱的过错信息:NuShell 规划了更易于理解的过错提示,协助用户快速定位和解决问题。

装置和装备 NuShell

在 macOS 上装置 NuShell:

brew install nushell

设置 NuShell 为默许 Shell:

echo $(which nu) | sudo tee -a /etc/shells && chsh -s $(which nu)

这两步操作将 NuShell 装置到您的体系并设置为默许的指令行环境。

运用 NuShell

NuShell 的运用与传统 Shell 相似,但供给了更丰厚的功用。以下是一些根本用法示例:

  • 检查和过滤数据
ls | where size > 1mb | sort-by size

这条指令列出当时目录中大于 1MB 的文件,并按巨细排序。

  • 运用内置指令处理数据
ps | where cpu > 10 | get name

列出 CPU 运用率超越 10% 的进程称号。

点评 NuShell

经过结构化数据和强壮的内置指令,NuShell 明显进步了指令行操作的功率。不仅如此,它的跨渠道特性和友爱的过错信息使得从其他 Shell 迁移到 NuShell 成为一种轻松愉快的体会。

NuShell 的规划理念和功用使其成为现代开发者东西箱中的必备东西,不管是数据处理、体系监控仍是日常使命主动化,NuShell 都能供给优秀的支撑。

bat:不仅仅是 cat 的 Rust 代替品

bat 是一个现代的指令行东西,用 Rust 编写,旨在供给比传统的 cat 更多的功用,包含语法高亮、Git 集成、不行打印字符的可视化、主动分页,以及智能输出。它兼容 cat 的大部分功用,并增加了许多进步生产力的特性。

bat 的长处

  • 语法高亮:关于大都编程和符号言语主动供给语法高亮,使代码更易读。
  • Git 集成:主动显现 git 更改记录,方便跟踪代码修正。
  • 不行打印字符可视化:能够显现文件中的不行打印字符,便于调试。
  • 主动分页:当输出内容超出屏幕时,主动分页显现,防止信息丢掉。
  • 智能输出:当经过管道运用或非交互环境下,主动调整为纯文本输出,确保与其他东西的兼容性。

装置装备 bat

在 macOS 上,运用 Homebrew 装置 bat 是非常简略的:

brew install bat

为了让 bat 代替 cat,您能够在 shell 装备文件中增加一个别名:

alias cat='bat --paging=never'

这样,每次输入 cat 时,实际上都是在运用 bat,但不启用分页功用。

运用 bat

  • 检查文件内容,带有语法高亮和 Git 集成:
bat your_file.ext
  • 显现不行打印字符:
bat -A your_file.ext
  • 默许情况下,bat 会主动分页。假如你希望禁用分页功用(例如,为了代替 cat),能够运用之前提到的别名,或许直接在指令中指定:
bat --paging=never your_file.ext

点评 bat

经过引进语法高亮和 Git 集成等现代特性,bat 大幅进步了检查源代码和文本文件的体会。它的主动分页和智能输出特性,更使得在长文本或代码文件的阅读成为一种享用,而不是应战。不管是关于开发者仍是普通用户,bat 都是进步指令行作业功率的利器。

uv:Rust 加快的 Python 包办理东西

uv 是一个用 Rust 编写的 Python 包装置程序和解析器,旨在作为 pip 和 pip-tools 的高速代替品。它结合了现代技能的优势,供给了一个更快、更高效、并且兼容性强的包办理体会。

uv 的长处

  • 无缝替换:uv 规划为 pip、pip-tools 和 virtualenv 指令的直接代替品,无需改变现有作业流程。
  • 极速功用:比 pip 和 pip-tools 快 10-100 倍,大幅缩短包装置和办理的时刻。
  • 磁盘空间高效:具有大局缓存用于依靠去重,削减不必要的磁盘空间占用。
  • 跨渠道支撑:兼容 macOS、Linux 和 Windows,满足不同操作体系用户的需求。
  • 无需 Rust 或 Python 环境:uv 能够作为静态二进制文件装置,装置方法灵活多样。
  • 高档功用支撑:包含依靠版别掩盖、代替解析战略等高档功用。
  • 友爱的过错提示:供给最佳的过错信息和冲突跟踪解析器,协助用户轻松定位问题。

装置装备 uv

在 macOS 上装置 uv 非常简略,只需一个指令:

brew install uv

这条指令经过 Homebrew 装置 uv,使其当即可用。

由于 uv 被规划为 pip 的直接代替品,因此大部分情况下无需额定装备即可运用。关于需求特别装备的场景,uv 文档供给了详尽的辅导。

运用 uv

运用 uv 来装置 Python 包,体会与运用 pip 相似,但速度更快:

uv install requests

检查已装置的包列表:

uv list

创立虚拟环境

运用 uv 创立一个新的虚拟环境非常简略:

uv venv  # 在当时目录下创立 .venv 虚拟环境

激活虚拟环境

激活您创立的虚拟环境:source .venv/bin/activate

装置依靠

装置依靠到虚拟环境中,uv 供给了与 pip 相似的指令行界面:

uv pip install flask                # 装置 Flask
uv pip install -r requirements.txt  # 从 requirements.txt 文件装置
uv pip install -e .                 # 以可修正形式装置当时项目
uv pip install "package @ ."        # 从磁盘装置当时项目
uv pip install "flask[dotenv]"      # 装置 Flask 并包含 "dotenv" 扩展

生成确定的依靠集

生成一组确定的依靠,并输出到 requirements.txt

uv pip compile requirements.in -o requirements.txt    # 从 requirements.in 生成
uv pip compile pyproject.toml -o requirements.txt     # 从 pyproject.toml 生成
uv pip compile setup.py -o requirements.txt           # 从 setup.py 生成
echo flask | uv pip compile - -o requirements.txt     # 从 stdin 读取并生成
uv pip freeze | uv pip compile - -o requirements.txt  # 确定当时环境的依靠

同步虚拟环境

将一组确定的依靠与虚拟环境同步:

uv pip sync requirements.txt  # 从 requirements.txt 文件同步

UV 的 pip-installpip-compile 指令支撑许多与现有东西相同的指令行参数,包含 -r requirements.txt-c constraints.txt-e .(用于可修正装置)、--index-url 等,供给了一个既熟悉又高效的包办理体会。

点评 uv

uv 供给了一个高效、快速且用户友爱的 Python 包办理解决方案。它不仅明显进步了包装置速度,还经过大局缓存和优化的过错提示等特性,改进了开发者的作业功率和体会。不管是新项目的开发仍是现有项目的维护,uv 都能为 Python 社区带来明显的优势。

Ripgrep:高效的代码查找东西

Ripgrep 是一个用 Rust 编写的指令行东西,旨在供给比传统的 grep 更快、更强壮的查找才能。它结合了现代技能的优势,为用户带来了史无前例的查找体会。

Ripgrep 的长处

  • 递归查找:Ripgrep 默许递归查找当时目录,无需额定参数。
  • 主动过滤:主动依据 .gitignore 规矩过滤文件,进步查找功率。
  • 语法高亮:查找结果带有语法高亮,使得查找结果一望而知。
  • Git 集成:能显现 git 更改记录,方便追寻代码修正。
  • 不行打印字符可视化:经过 -A--show-all 参数可视化显现文件中的不行打印字符。
  • 主动分页:当输出内容超越屏幕时,主动分页显现。
  • 智能输出:在设置了分页器选项的同时支撑管道输出,习惯不同的运用场景。
  • 跨渠道支撑:支撑 Windows、macOS 和 Linux,满足不同操作体系用户的需求。

装置装备 Ripgrep

在 macOS 上装置 Ripgrep 非常简略,只需一个指令:

brew install ripgrep

这条指令经过 Homebrew 装置 Ripgrep,使其当即可用。

Ripgrep 的默许装备已经非常强壮,大大都情况下你能够直接运用。假如需求对其进行装备,能够经过修正 .ripgreprc 文件来完成,该文件通常位于用户的家目录下。

运用 Ripgrep

进行根本查找:

rg pattern

在特定文件中查找:

rg pattern README.md

运用正则表达式进行查找:

rg 'patternw '

点评 Ripgrep

Ripgrep 经过其快速的查找速度、直观的语法高亮和强壮的 Git 集成,极大地进步了开发者的查找功率。主动过滤和不行打印字符的可视化功用使得 Ripgrep 成为处理杂乱查找使命时的理想挑选。其跨渠道支撑和智能输出功用更是让 Ripgrep 成为了现代开发者东西箱中不行或缺的一部分。

Zenith:现代化的体系监控东西

Zenith 是一个现代化的指令行体系监控东西,它经过供给详细的资源运用情况和功用指标来代替经典的 htop。它结合了功用剖析和监控,使得用户能够实时观察到体系的健康状况和功用瓶颈。

zenith 的长处

  • 直观的界面:Zenith 供给了一个图形化的终端界面,显现CPU、内存、磁盘和网络运用情况,以及进程列表。
  • GPU 监控:与 htop 不同,Zenith 还支撑 GPU 运用率和温度的监控,关于运用 GPU 进行计算的用户来说非常有用。
  • 历史数据:Zenith 能够跟踪并显现体系功用的历史数据,协助用户剖析曩昔的功用问题。
  • 响应式布局:界面布局会依据终端窗口的巨细主动调整,坚持信息的清晰可读。

装置和装备 zenith

装置 Zenith 非常简略,关于 macOS 用户,能够经过 Homebrew 装置:

brew install zenith

Zenith 无需杂乱的装备即可运用。装置后直接运转 zenith 指令即可发动。

运用 zenith

发动 Zenith 很简略,只需求在终端中输入:

zenith

默许情况下,Zenith 会展示一切中心的 CPU 运用率、内存运用情况、磁盘 IO 和网络 IO。您能够运用键盘上的方向键来阅读进程列表,或许运用 Tab 键在不同的监控面板之间切换。

点评 zenith

Zenith 以其现代化的界面和丰厚的功用集,在指令行体系监控东西中锋芒毕露。它的 GPU 监控功用特别合适需求对 GPU 资源进行实时监控的用户。尽管它或许不像 htop 那样轻量级,但其供给的详细功用剖析和历史数据追寻功用,使其成为高档用户和体系办理员剖析和优化体系功用的有力东西。

Zoxide:一个更聪明的目录跳转东西

zoxide 是一个指令行东西,旨在进步您的目录导航功率。它经过学习您的运用习惯,使您能够快速跳转到常常拜访的目录。

zoxide 的长处

  • 智能跳转:zoxide 学习您最常拜访的目录,并允许您快速跳转到这些目录,而无需输入完好的途径。
  • 跨 Shell 兼容性:支撑一切主要的 Shell,如 Bash、Zsh、Fish 和 NuShell,确保不管您运用哪种 Shell 都能获得共同的体会。
  • 简化的指令:zoxide 经过简略的指令 z 代替了传统的 cd 指令,进一步简化了目录导航。
  • 无需外部依靠:作为一个静态二进制文件,zoxide 能够轻松装置在任何体系上,无需额定的依靠。

装置装备 zoxide

在 macOS 上装置 zoxide 非常简略,只需一个指令:

brew install zoxide

依据您运用的 Shell,装备 zoxide 以使其收效。

Nushell

  1. 将下列指令增加到您的 env 文件结尾(经过在 Nushell 中运转 $nu.env-path 找到它):
zoxide init nushell | save -f ~/.zoxide.nu
  1. 现在,将以下内容增加到您的装备文件结尾(经过在 Nushell 中运转 $nu.config-path 找到它):
source ~/.zoxide.nu

请注意,zoxide 仅支撑 Nushell v0.89.0 及以上版别。

Zsh

  1. 将以下内容增加到您的装备文件结尾(通常是 ~/.zshrc):
eval "$(zoxide init zsh)"

为了使主动补全收效,上述行必须在调用 compinit 之后增加。您或许需求经过运转 rm ~/.zcompdump*; compinit 来重建主动补全缓存。

运用 zoxide

运用 zoxide 非常简略,只需求运用 z 指令加上部分目录名即可快速跳转:

z project

假如 project 是您常常拜访的目录,zoxide 会将您直接导航到该目录。

点评 zoxide

zoxide 经过供给一个智能、快速且易于运用的目录跳转解决方案,极大地进步了指令行的作业功率。它的跨 Shell 兼容性和简化的指令使得从传统的 cd 指令过渡变得无缝且天然。zoxide 是进步指令行导航速度的理想东西,特别合适常常在多个项目之间跳转的开发者和体系办理员。

eza:ls 的现代化代替品

eza 是一个现代化的文件列表指令行程序,用 Rust 编写,旨在代替 Unix 和 Linux 操作体系顺便的经典 ls 指令。它供给了更多的特性和更好的默许值,运用色彩区分文件类型和元数据,了解符号链接、扩展特点和 Git 状况,而且它细巧、快速,仅为一个单一的二进制文件。

经过有意识地做出不同的决议计划,eza 试图成为一个功用更全面、更用户友爱的 ls 版别。

eza 的长处

  • 修复了 exa 2021 引进的“网格过错”:供给了一个更稳定的显现网格。
  • 超链接支撑:能够将文件名显现为可点击的超链接。
  • 挂载点细节:显现挂载点的详细信息。
  • Selinux 上下文输出:增加了对 Selinux 上下文的支撑。
  • Git 库房状况输出:直观地显现 Git 状况。
  • 人类可读的相对日期:日期显现愈加友爱。
  • 多项安全修复:进步了程序的安全性。
  • 对亮堂终端色彩的支撑:界面愈加丰厚多彩。
  • 很多的小型 bug 修复和更改:进步了稳定性和可用性。

装置和装备 eza

在 macOS 上,装置 eza 只需求一个简略的指令:

brew install eza

运用 eza

eza 的指令行选项与 ls 的相似,但带有一些重要的改进和扩展:

  • 显现选项

    • -1, --oneline:每行显现一个条目。
    • -G, --grid:以网格形式显现条目(默许)。
    • -l, --long:显现扩展的细节和特点。
    • -R, --recurse:递归进入目录。
    • -T, --tree:以树形递归进入目录。
    • --colo[u]r:何时运用终端色彩(总是,主动,从不)。
  • 过滤选项

    • -a, --all:显现躲藏文件和’点’文件。
    • -d, --list-dirs:列出目录,好像常规文件。
    • -L, --level:限制递归的深度。
  • 长视图选项(在运用 --long 时可用):

    • -b, --binary:以二进制前缀列出文件巨细。
    • -h, --header:为每列增加标题行。
    • --git:列出每个文件的 Git 状况,假如被追寻或疏忽。

eza 经过其丰厚的功用集,为文件和目录的列表显现供给了一个强壮而直观的界面。它的现代化特性,如超链接支撑和 Git 状况输出,使得阅读和办理文件变得愈加高效和愉悦。

点评 eza

eza 以其现代化的特性和改进的默许值,为指令行文件列表东西设置了新的规范。它不仅仅是 ls 的一个代替品,而是一个在功用、功用和用户体会方面都有明显进步的东西。关于那些寻求更先进的指令行文件办理东西的用户来说,eza 供给了一个值得尝试的挑选。

watchexec:主动化指令履行的现代东西

watchexec 是一个简略而独立的东西,它监督一个途径,并在检测到修正时运转指定的指令。这个东西解决了软件开发中常常遇到的一个问题:反复运转相同的指令,这既枯燥又低效。

watchexec 的长处

  • 简略的调用和运用:不需求杂乱的指令行参数,易于理解和运用。
  • 跨渠道支撑:在 OS X、Linux 和 Windows 上运转。
  • 监控目录改变:监督当时目录及一切子目录的更改。
  • 智能事情合并:关于在保存过程中运用交流/备份文件的修正器,将多个文件体系事情合并为一个。
  • 疏忽文件加载:主动加载 .gitignore.ignore 文件,排除不需求监督的途径。
  • 进程组办理:能够操控发生分支(fork)的程序。
  • 供给改变途径:在环境变量或规范输入中供给发生改变的途径。
  • 无需言语运转时:不绑定任何特定的言语或生态体系,不需求言语运转时。
  • 多种附加功用:包含超链接支撑、挂载点细节、Selinux 上下文输出、Git 库房状况输出等。

装置装备 watchexec

在 macOS 上,能够经过一个简略的指令装置 watchexec:

brew install watchexec

运用 watchexec

watchexec 的用法示例广泛而多样,以下是一些常见的运用场景:

主动运转单元测验

当当时目录或子目录下的 JavaScript、CSS 和 HTML 文件发生改变时,主动运转 npm run build

watchexec -e js,css,html npm run build

监控 Python 文件改变重启服务器

当任何 Python 文件发生改变时,调用/重启 python server.py

watchexec -r -e py -- python server.py

排除特定目录下的文件改变

在当时目录/子目录下的任何文件改变时调用 make test,但排除 target 目录下的一切文件:

watchexec -i "target/**" make test

仅监控文件创立事情

仅当文件被创立时运转指令,例好像步当时目录到 S3 存储桶:

watchexec --fs-events create -- s3 sync . s3://my-bucket

点评 watchexec

watchexec 以其灵活性、易用性和高效性成为主动化重复指令履行的强壮东西。它的跨渠道支撑、智能事情合并和对 .gitignore 的主动处理,使其成为开发者作业流程中不行或缺的一部分。不管是主动运转测验、重启开发服务器仍是其他主动化使命,watchexec 都能大幅进步开发功率和体会。

yazi:超快的终端文件办理器

yazi 是一款基于 Rust 言语开发,支撑异步 I/O 的终端文件办理器,旨在为用户供给一个速度快、功用全、易于运用的文件阅读体会。它具有可翻滚预览、视觉形式批量重命名、相似 Vim 的输入和挑选组件等特性,使其成为传统文件办理指令 Ranger 的现代化代替品。

yazi 的长处

  • 可翻滚预览:支撑预览各种类型的文件,并在预览时翻滚文件内容。
  • 视觉形式和批量重命名:在可视形式下批量挑选文件,并支撑重命名。
  • 相似 Vim 的操作体会:快速在输入框中修正文件名,以及经过挑选组件决议如何翻开文件。
  • 多标签和快速跳转:支撑多标签协作,经过 fzf 和 zoxide 完成快速跳转。
  • 增量查找和内容查找:完成实时增量查找文件,并支撑经过 fd 和 rg 按称号或内容查找文件。
  • 多项挑选和使命办理:支撑独自挑选多个文件进行操作,并经过使命体系安排如复制、剪切等操作,供给实时进度报告和使命取消功用。

装置装备 yazi

在 macOS 上装置 yazi 及其依靠非常简略,只需经过 Homebrew 履行以下指令:

brew install yazi ffmpegthumbnailer unar jq poppler fd ripgrep fzf zoxide
brew tap homebrew/cask-fonts && brew install --cask font-symbols-only-nerd-font

发动 yazi:

yazi

q 退出,按 ~ 翻开协助菜单。

运用 yazi

yazi 供给了丰厚的键绑定和功用,以进步文件办理功率:

  • 运用箭头键或 h, j, k, l 进行导航。
  • 运用 Space 切换选中的文件/目录,v 进入视觉形式进行批量挑选。
  • o 翻开选中的文件,d 将文件移动到垃圾箱,r 重命名文件或目录。
  • 运用 / 进行增量查找,sS 分别经过 fd 和 rg 按称号或内容查找文件。
  • 对文件/目录进行排序,例如 , m 按修正时刻排序。

点评 yazi

yazi 以其超快的速度和丰厚的功用集,在终端文件办理领域树立了新的规范。其现代化的特性,如可翻滚预览、批量重命名、快速跳转等,极大地进步了文件办理的便利性和功率。不管是日常文件阅读仍是杂乱的文件操作,yazi 都能供给流畅和高效的体会,是一个值得尝试的终端文件办理东西。

dust:du 的现代化代替品

dust 是一个用 Rust 编写的指令行东西,旨在供给一个直观的方法来检查磁盘空间的运用情况。它结合了 du 指令的功用和 Rust 的功用,使其成为 du 的现代化代替品。

dust 的长处

  • 直观的输出:dust 旨在供给一个即时的概览,显现哪些目录正在运用磁盘空间,而无需运用 sorthead 指令。
  • 智能递归:dust 会智能地递归下到文件树中找到更大的目录或文件,列出占用空间最大的一些子目录或文件,并运用色彩加以区分。
  • 色彩区分:不同色彩的条形图表示树层次结构和磁盘运用情况的组合,灰色暗影用于指示子文件夹归于哪个父文件夹。
  • 权限提示最小化:dust 会最大极限地削减“没有权限”音讯的打印。

装置装备 dust

在 macOS 上装置 dust,只需求履行以下指令:

brew install dust

运用 dust

dust 的运用非常简略,以下是一些根本用法:

  • 直接运转 dust 以检查当时目录及其子目录的磁盘运用情况。
  • 运用 dust <dir> 检查指定目录的磁盘运用情况。
  • dust -p 显现子目录的完好途径。
  • dust -n 30 显现最大的 30 个目录而不是默许的终端高度。
  • dust -d 3 显现 3 级子目录的磁盘运用情况。
  • dust -r 反转输出顺序。

点评 dust

dust 经过其简略直观的输出和智能递归功用,在磁盘空间剖析东西中树立了新的规范。它的直观界面、色彩编码和易用性使其成为了检查磁盘运用情况的理想东西。关于那些寻觅 du 现代化代替品的用户来说,dust 供给了一个功用强壮且用户友爱的解决方案。