Terminal Mode - 终端模拟模式
这是一个终端模拟 skill,让用户可以用类似 Linux 终端的方式与 OpenClaw 交互,浏览和操作文件系统。
触发条件
当用户说以下任意一种表达时触发:
- "打开终端" / "进入终端模式" / "模拟终端"
- "terminal mode" / "terminal" / "进入 terminal"
- 任何包含"终端"或"terminal"的启动指令
终端提示符格式
进入终端模式后,使用以下格式显示提示符:
user@openclaw:~/workspace$
或根据当前目录动态变化:
user@openclaw:/root/.openclaw/skills$
支持的命令
目录操作
-
cd <路径>- 切换目录cd ~或cd- 切换到用户主目录cd ..- 切换到上级目录cd -- 切换到上次所在的目录cd /path/to/dir- 切换到指定绝对路径
-
pwd- 显示当前工作目录 -
ls [选项] [路径]- 列出目录内容ls- 基本列表ls -l- 详细列表(权限、所有者、大小、时间)ls -la或ls -a- 显示所有文件包括隐藏文件ls -lh- 人类可读的文件大小ls -t- 按时间排序ls -r- 反向排序- 支持组合参数如
ls -lath、ls -laht等
文件查看
cat <文件>- 显示文件内容head [-n 行数] <文件>- 显示文件开头tail [-n 行数] <文件>- 显示文件结尾less <文件>- 分页显示(模拟,实际显示全部)
文件操作
-
cp [-r] <源> <目标>- 复制文件或目录-r参数用于递归复制目录
-
mv <源> <目标>- 移动或重命名文件/目录 -
rm [-r] [-f] [-y] <路径>- 删除文件或目录-r递归删除目录-f强制删除(不询问)- 重要: 如果不带
-y或-f参数,必须先询问用户确认后再执行删除 - 询问格式: "确定要删除 [路径] 吗? (y/N)"
-
touch <文件>- 创建空文件或更新时间戳 -
mkdir [-p] <目录>- 创建目录-p创建多级目录
-
rmdir <目录>- 删除空目录
搜索命令
-
find [路径] [表达式]- 查找文件find . -name "*.md"- 按名称查找find . -type f- 查找文件find . -type d- 查找目录
-
grep [选项] <模式> [文件]- 搜索文本内容grep "text" file.txt- 在文件中搜索grep -r "text" .- 递归搜索grep -i "text"- 忽略大小写grep -n "text"- 显示行号
其他命令
clear- 清屏(发送空行)whoami- 显示当前用户date- 显示当前日期时间df -h- 显示磁盘使用情况du [-h] [路径]- 显示目录/文件大小file <文件>- 检测文件类型which <命令>- 查找命令路径
命令执行规则
-
路径解析
- 支持绝对路径
/home/user/file - 支持相对路径
./file、../file - 支持
~展开为用户主目录 - 支持
.表示当前目录,..表示上级目录
- 支持绝对路径
-
错误处理
- 命令不存在:
bash: <命令>: command not found - 文件不存在:
cat: <文件>: No such file or directory - 权限不足:
Permission denied - 不是目录:
Not a directory - 是目录:
Is a directory
- 命令不存在:
-
输出格式
- 尽量模仿真实终端的输出格式
ls -l格式:-rw-r--r-- 1 user group 1234 Jan 01 12:00 filename- 文件大小使用人类可读格式(K、M、G)
工作流程
- 用户触发终端模式后,显示欢迎信息和当前目录提示符
- 用户输入命令,解析命令和参数
- 使用
exec或read等工具执行相应的文件操作 - 显示命令输出
- 显示新的提示符,等待下一条命令
- 用户可以说"退出终端"或"exit"来退出终端模式
安全注意事项
- 删除操作必须确认: 除非使用
-y或-f参数,否则 rm 命令必须先询问用户 - 限制危险操作: 不支持直接执行任意 shell 命令(如
bash -c、eval等) - 只操作工作目录内的文件: 避免误操作系统关键文件
退出终端模式
当用户说以下任意一种表达时退出终端模式:
- "退出终端"
- "exit"
- "quit"
- "关闭终端"
- "结束终端模式"
退出时显示: logout 或 Connection closed.
