该项目是基于 pls 项目进行二次开发的版本,在此感谢原作者 chenjiandongx 的贡献。 由于该项目已经多年没有更新,linux-command项目已经更新了许多命令,每次都需要拉取最新命令列表,再打包比较麻烦。故在大佬的基础上,开发lsx项目,优化一些逻辑和数据结构,以适配最新的linux-command项目。
- 支持通过关键字搜索 Linux 命令
- 提供详细的命令使用说明
- 支持更新内置的 Linux 命令数据库
- 支持多平台适配(包括 ARM 和 AMD 架构)
- 支持输出结果管道传输(如
| less
) - 自动化构建和发布流程
- 新增 useShow 参数,默认 false,查看命令为:如
lsx ls
。当 true 时:lsx show ls
- 新增 useLess 参数,默认 false。开启后自动以 less 分页方式输出结果
- 支持通过配置文件自定义数据目录、远程数据源等
- 支持命令自动补全(completion)
https://github.com/CJSen/lsx/releases
请参考下方“构建流程”部分。
-
下载并解压到任意目录下,赋予可执行文件权限,重命名为
lsx
-
复制
lsx
到/usr/local/bin
等可直接查找使用的环境目录下,方便全局使用 -
相关命令使用方法
~ lsx -h
Impressive Linux commands cheat sheet cli.
Usage:
lsx [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
search Search command by keywords
show Show the specified command usage.
upcommands Update the embedded linux-command.json to the latest version.
upgrade Upgrade all commands from remote.
version Prints the version about lsx
Flags:
-h, --help help for lsx
Use "lsx [command] --help" for more information about a command.
建议第一次使用的时候先初始化所有命令(需联网)
lsx upcommands && lsx upgrade
- 默认(useShow: false):
- 直接输入命令名即可查看用法,如:
lsx ls lsx grep
- 直接输入命令名即可查看用法,如:
- 兼容模式(useShow: true):
- 需通过 show 子命令查看,如:
lsx show ls lsx show grep
- 需通过 show 子命令查看,如:
lsx 支持通过环境变量 LSXCONFIG
指定 YAML 配置文件,覆盖默认配置。
配置项说明:
dataDir
:本地数据存储目录,默认为~/.lsx
(自定义时请写完整路径,不要使用 ~,结尾不要有 /)remoteBaseUrl
:远程命令数据源地址,默认为https://unpkg.com/linux-command@latest
useShow
:是否启用 show 子命令模式,布尔值,默认为 falseuseLess
:是否自动以 less 分页方式输出结果,布尔值,默认为 false
配置文件示例:
dataDir: "/Users/yourname/.lsx"
remoteBaseUrl: "https://unpkg.com/linux-command@latest"
useShow: false
useLess: true
指定配置文件方法:
export LSXCONFIG=/path/to/lsx.yaml
- 默认数据目录为
~/.lsx
,可通过配置文件自定义。 - 所有命令数据和缓存均存放于该目录。
lsx 支持生成自动补全脚本:
lsx completion bash # 生成 bash 补全脚本
lsx completion zsh # 生成 zsh 补全脚本
lsx completion fish # 生成 fish 补全脚本
- 若
useLess: true
,则命令输出自动分页。 - 也可手动管道:
lsx show curl | less
- 若提示
[sorry]: could not found command <xxx>
,请确认命令拼写或先执行lsx upcommands && lsx upgrade
。 - 若提示
[error]: failed to parse command index
,请检查数据文件是否损坏,可尝试重新初始化。 - 若自定义数据目录无效,请确保配置文件路径正确,且目录有写权限。
- 构建产物命名规则:
lsx_{os}_{arch}[.exe]
- 其中
{os}
为操作系统(如 linux、darwin、windows),{arch}
为架构(如 amd64、arm64)
项目使用自动化构建脚本 build.sh
,支持以下特性:
- 多平台构建(Linux、macOS、Windows)
- 多架构支持(amd64 和 arm64)
- 自动下载最新的 linux-command 数据
- 自动化版本号管理
构建命令:
./build.sh
构建产物会生成在当前目录下,包含以下文件:
- lsx_{os}_{arch}[.exe]
- 其中 {os} 是操作系统,{arch} 是架构
该项目欢迎贡献和改进。主要改进方向包括:
- 扩展更多 Linux 命令
- 改进用户界面和交互体验
- 优化性能和稳定性
- 支持更多平台和架构
- Go 1.18 及以上
- 依赖包:
- github.com/spf13/cobra
- gopkg.in/yaml.v3
- github.com/olekukonko/tablewriter
- github.com/fatih/color
- github.com/MichaelMure/go-term-markdown
可通过 go mod tidy
自动安装依赖。
对于重大改动,建议先创建 issue 讨论。对于小的改进可以直接提交 PR。
特别感谢jaywcjlove开发的linux-command 为本项目的开发提供了基础。 特别感谢原作者 chenjiandongx 开发了 pls 项目。
MIT @CJSen