Ubuntu下编辑文本文件的方法

1. 引言

尽管已经有了不少的使用 Ubuntu 终端的经验,但笔者认为,要编辑文本文件最好的方式还是使用 GUI 。当然不是所有的情况都能使用 GUI 的,有时还是不得不使用终端编辑文本文件。

2. 方法

2.1 MobaXterm 文件浏览器

MobaXterm 是一款专为 Windows 用户设计的增强型终端工具,除了本身的 SSH 客户端之外,还集成了一个 SFTP 文件浏览器。通过这个 SFTP 文件浏览器,就可以直接进行文本文件的编辑工作。当然,它的原理还是把文件下载到 Windows 本地,修改完成后再上传,不是特别顺滑;但是一般情况下是够用了。

不过 MobaXterm 的 SFTP 文件浏览器有个缺点,就是不能编辑具有 root 权限的文件,因为使用 MobaXterm 登录 Ubuntu 一般是普通账户, root 登录的情况比较少。

2.2 带 GUI 的文本编辑器

除了使用内置的 SFTP 文件浏览器,MobaXterm 还支持运行远程 Ubuntu 系统上的 图形界面(GUI)文本编辑器,例如 gedit、mousepad 或 kate。这一功能依赖于 MobaXterm 内置的 X11 服务器,能够将远程 Linux 主机上 GUI 程序的窗口"转发"到 Windows 桌面显示。具体步骤如下:

  • 确保 SSH 会话启用 X11 转发。在 MobaXterm 中新建 SSH 会话时,默认已勾选 "X11 forwarding"(可在 Advanced SSH settings 中确认)。这是实现 GUI 显示的关键。

  • 在远程 Ubuntu 上安装 GUI 编辑器。即使服务器没有完整桌面环境,也可以单独安装轻量级编辑器:

    bash 复制代码
    # 安装 gedit(GNOME 默认编辑器)
    sudo apt update && sudo apt install gedit -y
  • 在终端中直接启动编辑器:

    bash 复制代码
    gedit ~/.bashrc

如果编辑的是普通用户有写权限的文件(如 home 目录下的文件),可直接保存;若需编辑 root 权限文件,可用 sudo 启动编辑器:

bash 复制代码
sudo gedit ~/.bashrc

当然这么做不是百分百可行,部分系统出于安全因素执行 sudo gedit 会失败。

2.3 备份替换大法

当面对需要 root 权限的系统文件(如 /etc/fstab、/etc/nginx/nginx.conf 等),而 MobaXterm 的 SFTP 浏览器或 GUI 编辑器又因权限问题无法直接修改时,一个简单粗暴但有效的方法就是:"先在低权限位置编辑,再用 sudo 覆盖原文件"。这种方法常被戏称为"备份替换大法"。具体操作步骤如下:

  • 复制目标文件到你有写权限的目录(如 home 目录):sudo cp /etc/your-config.conf ~/your-config.conf.bak
  • 在 MobaXterm 中通过 SFTP 浏览器双击该副本进行编辑。
  • 用 sudo 将修改后的文件覆盖回原位置:sudo cp ~/your-config.conf.bak /etc/your-config.conf

2.4 终端编辑器Vim

当 GUI 不可用、网络延迟高、或需要快速修改系统文件时,终端内的文本编辑器就成为最可靠的选择。在 Ubuntu 系统中,vim(Vi IMproved)是最常用且功能强大的终端编辑器之一。虽然学习曲线略陡,但一旦掌握基本操作,效率极高,尤其适合远程服务器环境。

Ubuntu 通常预装了 vim 的精简版(vim.tiny),建议安装完整版以获得语法高亮、撤销历史等实用功能

bash 复制代码
sudo apt update && sudo apt install vim -y

编辑文件只需一行命令,直接以当前用户(或 sudo 提权后)身份编辑,无权限绕弯,无文件传输延迟:

bash 复制代码
vim /path/to/file
# 例如:
vim ~/.bashrc
sudo vim /etc/fstab

Vim 有多种模式,初学者只需记住三个核心状态:

模式 进入方式 作用
普通模式(Normal) 启动即在此模式,或按 Esc 执行命令(如保存、退出、跳转)
插入模式(Insert) i 输入/编辑文本
命令行模式 普通模式下按 : 执行保存、退出等指令

最简操作流程如下:

  1. 打开文件:vim filename
  2. i → 进入插入模式 → 编辑内容(很多终端支持复制粘贴)
  3. Esc → 回到普通模式
  4. 输入以下之一:
    • :wq → 保存并退出
    • :q! → 不保存强制退出
    • :x → 有修改则保存退出,无修改则直接退出
相关推荐
问简7 小时前
Ubuntu 26 + Windows 10 双系统 NTFS 共享盘笔记
ubuntu
pilifeng18 小时前
Ubuntu Linux 目录结构详解
linux·ubuntu
Tairitsu_H12 小时前
[Linux] 编辑器vim、编译器和动静态链接
linux·vim·gcc·g++·动态链接·静态链接
daemon.qiang1 天前
国内虚拟机对接 Freedesktop:Fork xserver、自建 Runner 与提交 MR 实战
linux·ubuntu·centos·gitlab·开源软件
orange....1 天前
VMware 双网卡配置:宿主机切换网络时 Ubuntu 固定 IP 访问方案
网络·ubuntu·网络安全
园长的牧歌1 天前
Ubuntu 打开应用在导航栏没有图标是个齿轮
linux·ubuntu
牢姐与蒯1 天前
Linux进程间通信(一).进程间通信概念&&环境切换(着重强调vscode)
linux·运维·服务器·ubuntu
指尖的爷2 天前
【地狱级难度】ubuntu系统GOCV编译安装
linux·运维·ubuntu
ThornArmor2 天前
《向内深潜,向外飞掠》
c语言·开发语言·c++·vim·visual studio
j7~2 天前
【C++微服务项目开发脚手架】(环境篇)虚拟机 + Docker + MySQL/Redis/RabbitMQ/ES/etcd/FastDFS 全套配齐
linux·c++·ubuntu·docker·vmware·项目开发·微服务脚手架