智能命令行助手: IntelliShell 的 全面指南与安装教程【夕花朝拾】

文摘   2024-06-26 06:03   江苏  

智能命令行助手:IntelliShell 的 全面指南与安装教程【夕花朝拾】

像 IntelliSense,但适用于 shell!

IntelliShell 充当命令的收藏夹,因此您不必为了使用 Ctrl + R 找到有用的东西而保持历史记录的清洁。

它目前支持 Bash、Zsh、Fish 和 PowerShell,并且应该与大多数 Linux、Windows 和 MacOS 兼容。

unsetunset快速入门unsetunset

  1. 安装二进制文件:

    curl -sSf https://raw.githubusercontent.com/lasantosr/intelli-shell/main/install.sh | bash
  2. 在终端中输入您的第一个命令,然后使用 Ctrl + B 进行收藏

  3. (可选) 运行 intelli-shell fetchtldr[1] 下载命令

  4. Ctrl + Space 开始旅程!

  5. (可选) 查看下面的 提示[2] 部分以获得一些想法

unsetunset特性unsetunset

  • 独立二进制文件
  • 自动补全当前输入的命令
    • 在命令和描述中支持全文搜索,描述中支持标签搜索
  • 查找并替换当前输入命令的标签
  • 编辑收藏的命令并提供别名
  • 非侵入性(内联)和全屏界面
  • 抓取命令以解析并存储 tldr[3] 页面(感谢他们!)
  • 便携性。您可以在任何支持的 shell 中使用收藏的命令,也可以导出和导入到其他地方。

unsetunset安装unsetunset

记得在安装后收藏一些命令或获取它们!

要跳过配置文件更新,请在安装前将 INTELLI_SKIP_PROFILE 环境变量设置为 1

Bash(Linux)

curl -sSf https://raw.githubusercontent.com/lasantosr/intelli-shell/main/install.sh | bash

使用 bash 安装后,它应该可以在任何支持的 shell 中工作。

PowerShell(Windows)

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser # 可选:第一次运行远程脚本时需要
irm https://raw.githubusercontent.com/lasantosr/intelli-shell/main/install.ps1 | iex

使用 PowerShell 安装后,它也应该可以在 cmd 中工作(没有热键)。

源代码

要从源代码安装,您需要安装 Rust,建议使用 rustup[4] 进行安装。

cargo install intelli-shell --locked

要启用热键,需要额外的步骤:

Linux

下载源代码脚本:

  • Bash / Zsh:

    mkdir -p ~/.local/share/intelli-shell/bin
    curl -sSf https://raw.githubusercontent.com/lasantosr/intelli-shell/main/intelli-shell.sh > ~/.local/share/intelli-shell/bin/intelli-shell.sh
  • Fish:

    mkdir -p ~/.local/share/intelli-shell/bin
    curl -sSf https://raw.githubusercontent.com/lasantosr/intelli-shell/main/intelli-shell.fish > ~/.local/share/intelli-shell/bin/intelli-shell.fish

编辑您的配置文件以包含它:

  • Bash / Zsh:~/.bashrc, ~/.zshrc~/.bash_profile

    source ~/.local/share/intelli-shell/bin/intelli-shell.sh
  • Fish:~/.config/fish/config.fish

    source ~/.local/share/intelli-shell/bin/intelli-shell.fish

Windows

也下载源代码脚本:

New-Item -Path $env:APPDATA\IntelliShell\Intelli-Shell\data\bin -Type Directory
Invoke-WebRequest -UseBasicParsing -URI "https://raw.githubusercontent.com/lasantosr/intelli-shell/main/intelli-shell.ps1" -OutFile $env:APPDATA\IntelliShell\Intelli-Shell\data\bin\intelli-shell.ps1

编辑您的 $Profile 以执行它:

. $env:APPDATA\IntelliShell\Intelli-Shell\data\bin\intelli-shell.ps1

unsetunset使用方法unsetunset

您可以通过运行 intelli-shell -h 查看支持的操作。最常用的独立命令包括:

  • intelli-shell fetch [category] 抓取 tldr[5] 命令并存储它们。[category] 可以跳过,或者是一个有效的 tldr 的 pages[6] 文件夹
  • intelli-shell export 导出用户收藏的命令(不会导出 tldr's 命令)
  • intelli-shell import user_commands.txt 将命令导入到用户类别中

热键

  • Ctrl + B 收藏当前输入的命令
  • Ctrl + Space 显示当前行的建议
  • Ctrl + L 替换当前输入命令的标签
  • Esc 清除当前行,如果设置 INTELLI_SKIP_ESC_BIND=1 可以跳过此绑定

注意: 当浏览项目时,所选建议可以用 Ctrl + D 删除,或者使用 Ctrl + ECtrl + UF2 进行编辑

您可以使用环境变量 INTELLI_BOOKMARK_HOTKEYINTELLI_SEARCH_HOTKEYINTELLI_LABEL_HOTKEY 自定义按键绑定

unsetunset提示unsetunset

  • 当搜索条件匹配别名或只产生一个结果时,它将自动自动完成!

    • 如果命令包含标签,标签 UI 仍然会显示
  • 您可以将常用命令设置别名以存储一些喜欢的标签,例如收藏 cd {{path}} 并给它一个 cd 别名

    • 您可以定期使用 cd,但如果您按 Ctrl + Space,它将显示您的“固定”文件夹
  • 长命令甚至函数也可以收藏

    • 例如 function custom_echo () { echo "hey: $@"; }; custom_echo {{text}};
  • 如果用 '*' 包装,可以避免存储标签并保持它们的秘密:echo {{*my-secret\*}}

  • 基于根命令和标签名称存储标签建议,这为您提供了灵活性来决定。

    对于这两个命令,将建议相同的图像:

    但这两个命令将建议不同的卷:

    • docker run --volume {{image-1-volumes}} image-1
    • docker run --volume {{image-2-volumes}} -p {{image-2-ports}} image-2
    • docker run {{--rm}} {{--interactive}} {{image}}
    • docker rmi {{--no-prune}} {{image}}
  • 在描述中包含标签,如 #cool,并在搜索时使用它们

unsetunset愿望清单unsetunset

  • [x] 支持标签以存储最常用的标签,并使用专用 UI 进行选择
  • [x] 改进可用性以管理存储的命令(包括别名)
  • [x] 支持更多终端
    • [x] Fish[7]
    • [x] PowerShell
  • [ ] 导出标签和 UI 以过滤要导出的内容
  • [ ] 部署到包管理器
  • [ ] 使用一些公共/私有 Git 存储库同步用户书签

unsetunset替代品unsetunset

您可能想要看看 Marker[8],它非常相似,但需要在您的系统上安装 Python。

参考资料
[1]

tldr: https://github.com/tldr-pages/tldr

[2]

提示: #提示

[3]

tldr: https://github.com/tldr-pages/tldr

[4]

rustup: https://www.rust-lang.org/tools/install

[5]

category]` 抓取 [tldr: https://github.com/tldr-pages/tldr

[6]

category]_ 可以跳过,或者是一个有效的 tldr 的 [pages: https://github.com/tldr-pages/tldr/tree/main/pages

[7]

x] [Fish: https://fishshell.com/

[8]

Marker: https://github.com/pindexis/marker


编程悟道
自制软件研发、软件商店,全栈,ARTS 、架构,模型,原生系统,后端(Node、React)以及跨平台技术(Flutter、RN).vue.js react.js next.js express koa hapi uniapp Astro
 最新文章