macOS 上远程编辑文件的几种方式,最后一种最自然
因为工作的原因,我们经常需要登录到 Linux 服务器上,手动改个配置、修一行 Nginx、调一调应用的 YAML。很多时候只是“顺手改两行”,结果来回折腾的时间,比改那两行代码还多。
这篇文章想聊聊:在 macOS 上远程编辑服务器文件的几种常见方式,最后一种,也是我自己现在最顺手、最自然的一种。
⸻
场景:只是想「改一小下」
典型需求大概是这样的:
- • 改一行 Nginx / Caddy 配置,然后 reload 一下;
- • 调整一下应用的 .env / config.yml;
- • 改个 crontab,或者某个服务的启动脚本;
- • 检查下日志里的某一段内容。
这些动作有一个共同特点:频率不低,但每次改动都不大。 所以工具选得好不好,直接决定了你一天被打断多少次。
⸻
方式一:SSH 上去直接用 vim / vi
这是最传统、最“硬核”的玩法:
-
- 在终端里执行 SSH 命令,例如:
ssh user@server
-
- 找到要改的文件,比如:
cd /etc/nginx vim nginx.conf
-
操作界面如下
-
-
- 改完以后
:wq退出,再执行重载命令:
nginx -s reload
- 改完以后
优点:
- • 不需要安装任何额外软件,只要有 SSH 就行;
- • 对熟悉 Vim 的人来说,速度极快;
- • 在没有图形界面、只有命令行的服务器上,也完全没问题。
缺点:
- • 新人对 Vim 的快捷键门槛比较抗拒;
- • 没有多光标、没有自动补全、没有你本地那套舒服的主题和插件;
- • 有时候只是少个右括号,晃眼半天。
如果你已经把 Vim 当主力编辑器,那这种方式完全 OK。 但如果你平时习惯 VSCode、JetBrains、Sublime,这种方式就有点“回到石器时代”的感觉。
⸻
方式二:宝塔等运维面板在线编辑
第二种方式是用 宝塔面板这类 Web 运维面板,很多人也很熟悉了:
- • 通过浏览器登录宝塔后台;
- • 找到对应站点 / 目录;
- • 在 Web 文件管理器里点一下文件;
- • 浏览器里直接有一个在线编辑器,改完点保存。
优点:
- • 图形化,比较直观;
- • 支持在线编辑、上传下载、权限修改等等;
- • 运维同事也容易接受,适合一部分“可视化运维”的场景。
缺点:
- • 前提是你已经部署了宝塔之类的面板,并且服务器开着对应端口;
- • Web 编辑器的体验,一般比不上你熟悉的本地编辑器;
- • 对于安全要求高的生产环境,有些公司会不允许装这类面板。
所以这类方式更像是“顺便”的方案:有面板就用一下,没有也懒得特地搭一套。
⸻
方式三:VSCode Remote-SSH 远程编辑
第三种方式,就是很多开发者很喜欢的:VSCode 的 Remote-SSH 插件。
大致流程:
-
- 本地装好 VSCode 和 Remote-SSH 插件;
-
- 在
~/.ssh/config里配置好服务器;
- 在
-
- VSCode 里切到 Remote-SSH 视图,选中服务器;
-
- 远程连接成功后,VSCode 左侧文件树直接显示服务器上的目录;
-
- 像编辑本地项目一样打开、修改、保存。
优点:
- • 完全复用你本地 VSCode 的体验:主题、插件、快捷键、自动补全……
- • 支持多文件、多 Tab、搜索、重构等复杂操作;
- • 对经常要在远程服务器上开发代码的场景很友好。
缺点:
- • 前期配置略复杂一点,新手需要看一遍文档;
- • 有时候远程 VSCode Server 会抽风,需要重新安装 / 重连;
- • 对于“只改一两个配置文件”的场景来说,稍微有点重。
如果你日常就在 VSCode 里开发后端,那么 Remote-SSH 是非常强大的选择; 但如果只是偶尔改个配置文件,它有点“用坦克压蚂蚁”的感觉。
⸻
方式四:SSH 客户端 + SFTP + 本地编辑器(最自然的一种)
还有一种方式,我自己现在用得最多,也感觉最自然的: 用一个专门的 SSH 客户端连接服务器,然后顺手用 SFTP 文件面板 + 本地编辑器 来编辑远程文件。
这类工具有很多,你可以直接在 macOS 的 App Store 里搜索 SSH, 会看到不少客户端,有些是免费的,有些是付费的。
比如现在排在前面的几款,包括 Termius、DartShell 等,都可以试试。 哪个好用,就选哪个当主力。
下面我以 DartShell 为例,说一下大致体验。
⸻
4.1 SSH 连上去之后,右侧直接是 SFTP 面板
在 DartShell 里,你正常通过 SSH 连接到服务器之后, 右侧可以一键打开 SFTP 文件面板,而且有一个小细节做得很好:
你当前终端所在的目录,就是 SFTP 打开的默认目录。
比如你在终端里已经 cd /etc/nginx 了, 点开右侧的 SFTP,直接就是 /etc/nginx,不需要再手动切一次路径。
听起来是个很小的细节,但日常使用的时候,会感觉非常顺手。
⸻
4.2 用你最习惯的本地编辑器,打开远程文件
在 SFTP 面板里,你可以看到服务器上的文件列表:
-
• 找到你要改的那个配置文件,比如
nginx.conf; -
• 右键 → 选择你喜欢的本地编辑器(常见是 VSCode / Sublime / TextMate 等);
-
-
• DartShell 会把这个远程文件临时拉到本地一个缓存路径,用你选的编辑器打开。
接下来,你就像平时编辑本地文件一样:
- • 有自己的主题;
- • 有自动补全;
- • 有多光标、查找替换、Snippet;
- • 打字手感也是你熟悉的。
整件事的感觉是: “只是多打开了一个本地文件,而不是在远程机器上做某个特殊操作。”
⸻
4.3 保存后,一键上传覆盖远程文件
编辑完成后,你按 Cmd + S 保存文件,这时候 DartShell 会检测到本地文件发生变化:
-
• 弹出一个“是否上传到远程”的提示,告诉你这是哪个服务器、哪个路径;
-
-
• 确认之后,就会把这个文件重新上传到原来的远程路径。
对于你来说,有点类似这样一个过程:
“打开了一个远程文件的本地镜像 → 用最舒服的编辑器编辑 → 保存时同步回服务器”。
重要的是:你不需要关心 SFTP 的细节, 也不需要先手动下载、再手动上传,更不需要在 Finder 和终端之间来回切。
⸻
几种方式对比 & 适合谁
简单总结一下这四种方式:
- 1. Vim / Vi 在线编辑(方式一)
-
- • 适合:已经习惯 Vim、喜欢一切在终端里解决的人;
- • 优点:无依赖、极简、远程纯命令行环境也能用;
- • 缺点:编辑体验对新手不友好。
- 2. 宝塔等运维面板在线编辑(方式二)
-
- • 适合:已经部署了面板、习惯可视化操作的团队;
- • 优点:图形化,易上手;
- • 缺点:引入额外组件,安全策略严格的环境不一定允许。
- 3. VSCode Remote-SSH(方式三)
-
- • 适合:经常在远程服务器上开发 / 调试代码的开发者;
- • 优点:完整 IDE 体验;
- • 缺点:稍重、前期配置略复杂。
- 4. SSH 客户端 + SFTP + 本地编辑器(方式四)
-
- • 需要选一款顺手的 SSH 客户端,可能要多试几个。
-
- • 和本地编辑体验几乎一致;
- • SSH 会话和文件管理在一个界面里,流畅、一体化;
- • 配置成本低,连上 SSH 就能用。
-
- • 适合:日常需要频繁“改一两行配置”的开发 / 运维;
- • 优点:
- • 缺点:
⸻
小结
如果你是那种:
- • 既不想学 Vim 的各种快捷键;
- • 又嫌 VSCode Remote-SSH 有点“太重”;
- • 同时希望“SSH 登录 + 改配置 + 看日志 + 传个小文件”都在一个应用里搞定,
那可以试一试这类 “SSH 客户端 + SFTP + 本地编辑器” 的方式。
在 macOS 的 App Store 里搜一下 SSH,多试几款, 像 Termius、DartShell 这种工具,都可以连上服务器, 看看哪一个更适合你的工作流——顺手,才是生产力。