Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

huanke2/NodeScriptKit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

33 Commits

Repository files navigation

NodeScriptKit

NodeScriptKit项目,简称nsk项目。它是

  • 一个社区驱动的,命令小抄项目
  • 一个可自由扩展配置,支持订阅,交互式的,服务器辅助脚本汇总集合
  • 一个能够节省你大量命令/脚本查找时间的项目

使用方法

bash <(curl -sL https://sh.nodeseek.com)

screenshot

主配置文件说明

  • 配置文件采用toml格式,可以使用vscode配合Even Better TOML插件或者一些在线编辑器编辑
  • nsk的主配置文件默认位于/etc/nsk/config.toml
  • 常用的配置入口包括[local]和[remote],分别代表本地模块文件和远程订阅文件,本地和远程都可以合并/覆盖配置
  • 合并配置toml解析后的对象合并,而非文本拼接
  • 本地配置文件支持通配符,对匹配到的文件按文件名自然排序后导入
  • 默认/etc/nsk/modules.d/default/*.toml为官方模块,更新时会清空内容后再更新
  • 默认/etc/nsk/modules.d/extend/*.toml为用户模块,更新菜单时不会清空内容
  • 支持订阅,多个订阅链接会并发加载

模块配置文件说明

模块配置是用户打交道比较多的地方,内容包括脚本和菜单,菜单可以指向子菜单(们)和脚本

脚本示例

[scripts]
# 脚本集合,键值对
memory = "free -h"
disk = "df -hT"
cpuinfo = "cat /proc/cpuinfo"
whoami = "whoami"
hello = "echo \"hello world\""
yabs = "curl -sL yabs.sh | bash"
docker = "bash <(curl -sL 'https://get.docker.com')"
test = "echo '这是一个测试项'"

脚本部分比较简单,是一系列键值对,一个键对应一个字符串的值

菜单示例

[[menus]]
id = "main"
title = "主菜单"
sub_menus = [
 "info",
 "tool",
 "test"
]
[[menus]]
id = "info"
title = "系统信息"
sub_menus = [
 "cpu",
 "memory",
 "disk",
 "current-user",
]
[[menus]]
id = "test"
title = "测试项"
script = "test"

如上面所示,main菜单是入口菜单,有3个子菜单,其中info子菜单有进一步的子菜单,而test菜单没有下级,直接指向id为test的脚本

这些菜单id负责穿针引线,落叶归根到脚本id

扩展/覆盖配置的方式

NodeScriptKit支持合并配置文件且支持订阅远程配置,如果你是在本地调试,可以将新的配置文件放置到/etc/nsk/modules.d/extend/ 目录下,文件扩展名为toml

如果分享给其他用户,可以放到GitHub上并分享为raw文件直链,接受分享的用户可以修改/etc/nsk/config.toml中[remote]/subscribes的配置文本 下面给出一个示例配置,很容易看懂

[scripts]
test1 = "echo test1"
[[menus]]
id = "main"
title = "主菜单"
sub_menus = [
 "my-append", # 给主菜单补充新的入口
]
# 新的菜单入口
[[menus]]
id = "my-append"
title = "补充菜单"
sub_menus = [
 "test1",
]
[[menus]]
id = "test1"
title = "打印 test1"
script = "test1"

代码提交规范和约定

  • 鼓励开发者通过pr贡献内容
  • 提交的内容主要包括菜单和脚本,菜单放到modules.d下,脚本放到shell_scripts下
  • 菜单类要以3位数字开头,安装优先级排序,数值大的内容可以合并/覆盖数值小的
  • 脚本类尽量在文件开头写明代码脚本描述,可以参考这个模板文件
  • 脚本尽量使用交互式调用

社区公约&开发指南

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

  • Shell 100.0%

AltStyle によって変換されたページ (->オリジナル) /