在 Linux 服务器上使用 opencode 的正确方式
我一开始想把本地的工作流搬到服务器上。装好 Linux,SSH 上去,直接在服务器里干活。
我当时想要什么
我想要的布局很简单:左边敲代码,右边跑 opencode,用 tmux 把两个终端分开。

我还希望 opencode 能尽量自己完成任务,不要每一步都等我确认。为了少确认几次,我做了个 opencodeskip,让它直接调用 opencode --auto。
tmux 是真学了,但也真被 Ctrl+C 坑了
为了这套用法,我顺手学了 tmux 最基本的操作。最常用的是:
Ctrl+b,然后按 %这个快捷键能把窗口一分为二,左边放代码,右边跑 opencode。刚开始用时,我觉得这个安排挺合理。
坑也从这里开始。我以前在 Windows 上习惯用 Ctrl+C 复制文字,到了 Linux 里还是会下意识按它。结果文字没复制到,服务先被我中断了。明明只是想拿一段输出,最后还得重新处理进程。
opencodeskip 这件事
我在 Windows 本机上本来就有一个脚本:
@echo offopencode --auto %*所以我在 Linux 上也照着做了一个等价版本:
#!/usr/bin/env bashexec opencode --auto "$@"我把它放到 ~/.local/bin/opencodeskip,加上执行权限,想着以后可以像在本地一样直接调用。它只做一件事:把参数转给 opencode --auto,省掉一些确认。
真正让我崩溃的是服务器太小
我用的是阿里云送的 2核2G 服务器,内存实在太紧。刚开始我以为跑一个 opencode 应该没问题,实际很快就发现不是这么回事。
只要我开两个 opencode,服务器就开始卡,甚至直接死掉,最后只能重启。
我原本想做的是远程协作,结果变成了远程把服务器折腾死。
退出 opencode 之后,麻烦也没有马上结束:
Ctrl+C后子进程残留- 网络一卡,
TUI直接卡死 - 服务器资源占用下不来
- 环境版本冲突
- 会话丢失
我重新运行 opencode 时,服务器还可能再次卡死。用着用着就得先救火,原本的工作反而没推进多少。
zshrc 这次也把我坑得不轻
我还试着让 opencode 帮我装几个 zsh 插件,想把远程 shell 调整得顺手一点。结果它写配置时,直接覆盖了原来的 ~/.zshrc。不是追加,是整份覆盖!!!
终端样式、别名和原来的配置全没了。
更烦的是,之前弄好的 opencodeskip 也不见了。服务器一出错,修复就变得很麻烦:配置没了,命令没了,插件没了,环境还不稳定。每一项单独看都不算大事,叠在一起就够折腾了。
到这时我才意识到,问题不在于要不要放权给 opencode,而在于这台服务器根本扛不住这种用法。
后来我换了个做法
我最后还是改成本地运行 opencode,通过 SSH 操作服务器。对这台 2核2G 的机器来说,这样省事得多,也不容易因为进程残留、TUI 卡顿或配置覆盖反复救火。
相关命令
下面是我当时用到的几组基础命令。第一组先更新软件源,安装 curl、git 和证书包,再安装 opencode。重新加载 shell 后,用版本号确认安装是否成功。
sudo apt updatesudo apt install -y curl git ca-certificatescurl -fsSL https://opencode.ai/install | bashexec $SHELLopencode --version如果终端找不到刚安装的命令,就把 ~/.local/bin 加进 PATH,然后重新加载 ~/.zshrc。
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrcsource ~/.zshrc最后这组命令用来删除 zsh 的补全缓存,再重新加载配置。修改过插件或补全设置后,通常需要这一步。
rm -f ~/.zcompdump*source ~/.zshrc我现在的想法很简单:服务器性能不够,就别硬把它当成本地主机。需要远程操作时用 SSH,能保守一点就保守一点。最后负责修系统的,还是自己。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!