macOS 上怎么远程编辑文件最舒服?,最后一种最自然

112 阅读7分钟

macOS 上远程编辑文件的几种方式,最后一种最自然

因为工作的原因,我们经常需要登录到 Linux 服务器上,手动改个配置、修一行 Nginx、调一调应用的 YAML。很多时候只是“顺手改两行”,结果来回折腾的时间,比改那两行代码还多。

这篇文章想聊聊:在 macOS 上远程编辑服务器文件的几种常见方式,最后一种,也是我自己现在最顺手、最自然的一种。

场景:只是想「改一小下」

典型需求大概是这样的:

  • • 改一行 Nginx / Caddy 配置,然后 reload 一下;
  • • 调整一下应用的 .env / config.yml;
  • • 改个 crontab,或者某个服务的启动脚本;
  • • 检查下日志里的某一段内容。

这些动作有一个共同特点:频率不低,但每次改动都不大。 所以工具选得好不好,直接决定了你一天被打断多少次。

方式一:SSH 上去直接用 vim / vi

这是最传统、最“硬核”的玩法:

    1. 在终端里执行 SSH 命令,例如:

    ssh user@server

    1. 找到要改的文件,比如:

    cd /etc/nginx vim nginx.conf

  1. 操作界面如下

  2. 图片

    1. 改完以后 :wq 退出,再执行重载命令:

    nginx -s reload

优点:

  • • 不需要安装任何额外软件,只要有 SSH 就行;
  • • 对熟悉 Vim 的人来说,速度极快;
  • • 在没有图形界面、只有命令行的服务器上,也完全没问题。

缺点:

  • • 新人对 Vim 的快捷键门槛比较抗拒;
  • • 没有多光标、没有自动补全、没有你本地那套舒服的主题和插件;
  • • 有时候只是少个右括号,晃眼半天。

如果你已经把 Vim 当主力编辑器,那这种方式完全 OK。 但如果你平时习惯 VSCode、JetBrains、Sublime,这种方式就有点“回到石器时代”的感觉。

方式二:宝塔等运维面板在线编辑

第二种方式是用 宝塔面板这类 Web 运维面板,很多人也很熟悉了:

  • • 通过浏览器登录宝塔后台;
  • • 找到对应站点 / 目录;
  • • 在 Web 文件管理器里点一下文件;
  • • 浏览器里直接有一个在线编辑器,改完点保存。
  • 图片

优点:

  • • 图形化,比较直观;
  • • 支持在线编辑、上传下载、权限修改等等;
  • • 运维同事也容易接受,适合一部分“可视化运维”的场景。

缺点:

  • • 前提是你已经部署了宝塔之类的面板,并且服务器开着对应端口;
  • • Web 编辑器的体验,一般比不上你熟悉的本地编辑器;
  • • 对于安全要求高的生产环境,有些公司会不允许装这类面板。

所以这类方式更像是“顺便”的方案:有面板就用一下,没有也懒得特地搭一套。

方式三:VSCode Remote-SSH 远程编辑

第三种方式,就是很多开发者很喜欢的:VSCode 的 Remote-SSH 插件。

大致流程:

    1. 本地装好 VSCode 和 Remote-SSH 插件;
    1. 在 ~/.ssh/config 里配置好服务器;
    1. VSCode 里切到 Remote-SSH 视图,选中服务器;
    1. 远程连接成功后,VSCode 左侧文件树直接显示服务器上的目录;
    1. 像编辑本地项目一样打开、修改、保存。

优点:

  • • 完全复用你本地 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. 1. Vim / Vi 在线编辑(方式一)
    • • 适合:已经习惯 Vim、喜欢一切在终端里解决的人;
    • • 优点:无依赖、极简、远程纯命令行环境也能用;
    • • 缺点:编辑体验对新手不友好。
  2. 2. 宝塔等运维面板在线编辑(方式二)
    • • 适合:已经部署了面板、习惯可视化操作的团队;
    • • 优点:图形化,易上手;
    • • 缺点:引入额外组件,安全策略严格的环境不一定允许。
  3. 3. VSCode Remote-SSH(方式三)
    • • 适合:经常在远程服务器上开发 / 调试代码的开发者;
    • • 优点:完整 IDE 体验;
    • • 缺点:稍重、前期配置略复杂。
  4. 4. SSH 客户端 + SFTP + 本地编辑器(方式四)
    • • 需要选一款顺手的 SSH 客户端,可能要多试几个。
    • • 和本地编辑体验几乎一致;
    • • SSH 会话和文件管理在一个界面里,流畅、一体化;
    • • 配置成本低,连上 SSH 就能用。
    • • 适合:日常需要频繁“改一两行配置”的开发 / 运维;
    • • 优点:
    • • 缺点:

小结

如果你是那种:

  • • 既不想学 Vim 的各种快捷键;
  • • 又嫌 VSCode Remote-SSH 有点“太重”;
  • • 同时希望“SSH 登录 + 改配置 + 看日志 + 传个小文件”都在一个应用里搞定,

那可以试一试这类 “SSH 客户端 + SFTP + 本地编辑器” 的方式。

在 macOS 的 App Store 里搜一下 SSH,多试几款, 像 Termius、DartShell 这种工具,都可以连上服务器, 看看哪一个更适合你的工作流——顺手,才是生产力。