#命令行 #读取行 #行编辑

app lish

Liso Shell,一个非常简单的面向任务的壳

1 个不稳定版本

0.1.0 2023年2月12日

#786 in 命令行界面

MIT/Apache

29KB
588

这是李石,Liso Shell。它展示了 Liso 软件包的许多功能。它本身也非常有用,主要用于围绕游戏服务器(如 复古故事 服务器)进行包装,这些服务器非常嘈杂,只有基本的控制台 I/O。我真的不建议将其作为您的首选壳——一方面,它无法处理交互式 TUI 应用程序,如文本编辑器——但如果您真的想这样做,那就请随意。

安装

如果您已安装 Rust 环境,可以使用以下命令安装李石: cargo install lish。如果没有,最简单的方法是先 安装 Rust 环境,然后… cargo install lish

调用

如果没有提供参数,李石将简单地启动主提示符。如果有一个或多个参数,则每个参数都被视为要运行的单独命令。例如

lish 'start_vs_server.sh' 'java -jar minecraft_server.jar'

命令行上指定的命令与在主提示符中输入的命令完全相同,包括名称指定。 每个参数都是一个完整的命令行,如果您想包含空格或其他符号的命令行,则必须使用引号或反斜杠。 您可能需要执行多级反斜杠转义才能使其按您希望的方式工作。

主提示符

主提示符允许您启动新的命令。

在主提示符中,以下内置命令可用

  • cd [DIR...]:更改工作目录
  • exit [STATUS]:退出李石,或进入批处理模式
  • help:此帮助信息
  • unsetenv <VARNAME...>:删除环境变量
  • setenv <VARNAME=VALUE...>:设置环境变量
  • jobs:显示所有正在运行的作业

您在主提示符中输入的内容要么是这些内置命令之一,要么会被发送到操作系统执行为一个任务。Lish 会自动切换到新启动的任务。您可以通过按 control-X 返回主提示符。

任务

您可以在主提示符中启动任务,也可以通过在 Lish 命令行中提供任务来启动。任务通常根据其第一个元素命名。您可以通过在命令行开头指定冒号后的自定义名称来指定自定义名称,该名称不会包含在实际要执行的命令中。

public: start_server.sh ~/public_server
private: start_server.sh ~/private_server
esperanto: LANG=eo start_server.sh ~/esperanto_server

(自定义名称不能包含空格或反斜杠转义。如果您想运行一个其名称会被视为自定义名称的命令,您可以在其前面加一个空格。)

使用 control-X 在运行的任务之间切换,或返回主提示符(如果存在)以启动更多任务。如果您使用的是 UNIX(如 BSD 或 Linux),您可以按 control-C 终止当前选定的任务。

批量模式

如果您在命令行上指定了命令,Lish 将以批量模式而不是交互模式启动。在此模式下,如果所有任务都成功完成,Lish 将以状态 0 退出,如果任何任务失败,则退出状态为非零。您可以通过传递 - 作为参数来请求启动主提示符,在这种情况下,Lish 将正常操作。

您还可以通过在主提示符中输入不带参数的 exit 来进入批量模式。

退出

您可以通过输入 exit 或在主提示符中按 control-C 来退出。如果没有主提示符,当所有任务终止时,Lish 将自动退出。

法律声明

Lish 版权所有 2022-2023,Solra Bizna,并许可在以下任一许可下:

任选其一。

除非您明确表示,否则您提交给 Liso crate 的任何有意包含的贡献,根据 Apache-2.0 许可证定义,将按上述方式双许可,没有任何附加条款或条件。

依赖项

~5–17MB
~167K SLoC