shellfirm 项目介绍
shellfirm 是一个为终端用户设计的工具,旨在帮助用户避免由于操作失误而导致的数据或资源损失。在使用命令行的过程中,有时候由于一时不察,输入了具有高风险的命令(如 rm -rf *
或者 git reset --hard
),这可能导致重要的数据被意外删除。shellfirm 就是为了解决此类问题而诞生的。
项目背景
在处理命令行操作时,人们往往可能由于疏忽或者操作失误导致不可逆的损失。shellfirm 通过在识别到高风险指令之前,给用户一个额外的确认过程,帮助用户检视即将执行的命令,从而降低错误操作的风险。
功能特色
-
风险检测:shellfirm 会在后台实时监测用户输入的命令,如果识别出高风险模式,将立刻弹出一个小挑战,要求用户解决它。这个过程就像是在终端中增加了验证码,促使用户确认其操作。
-
提示机制:一旦发现用户输入的命令可能带来风险,shellfirm 会立即以提示的方式告知用户,例如在尝试执行
rm -rf /
等命令时,它会提示“您将删除路径中的所有内容”,并要求用户解决一个算术题以继续执行。
安装和设置
通过 Homebrew 安装
用户可以通过 Homebrew 快速安装这个工具:
brew tap kaplanelad/tap && brew install shellfirm
或者直接从 release 页面下载二进制文件,解压后移动到 /usr/local/bin
目录。
选择终端环境
shellfirm 支持多种 Shell 环境,包括 Oh My Zsh、Bash 和 Fish。根据所使用的终端,用户可以选择相应的方法设置 shellfirm。
例如,Oh My Zsh 的用户可以下载对应的插件,并在 .zshrc
文件中添加 shellfirm
插件。另外,Bash 用户需要下载并设置相应的预执行钩子。
风险命令
shellfirm 内置了一些高风险命令组,这些命令组默认已启用,例如:
- 基本命令组:常见的高风险命令,如文件删除。
- Git 命令组:涉及版本控制的风险命令。
- 文件系统和Kubernetes命令组:这些命令组可能涉及到较高的操作权限或资源管理。
用户可以根据自己的需要选择增加或移除命令风险组。
挑战类型
当前 shellfirm 支持三种类型的挑战:
- 数学挑战:默认要求用户解决简单的算术题。
- 按下回车键:只需按下回车键继续。
- 输入 "yes":要求用户输入 “yes” 以确认执行。
用户可以通过命令更改默认的挑战类型。
忽略模式与命令限制
用户可以通过 shellfirm 配置来禁用某些风险模式,或者限制使用某些不允许在 shell 中运行的命令模式。
软件升级
用户可以使用 Homebrew 进行软件升级:
brew upgrade shellfirm
贡献与版权
shellfirm 欢迎社区的参与和贡献,具体可以参照贡献指南。该项目由 @kaplanelad 于2022年开发,并受版权保护。详细信息请参考 LICENSE 文件。
通过 shellfirm,用户可以更加安心地使用命令行来处理日常操作,减小因误操作导致的数据或资源损失的可能性。