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 → 有修改则保存退出,无修改则直接退出
相关推荐
sunriver20002 小时前
【Qt】Ubantu安装Qt6.9.1
qt·ubuntu
sunriver20002 小时前
【VMware】Ubuntu在桥接模式下没有网络图标
ubuntu·桥接模式·vmware
舰长1152 小时前
ubuntu挂载盘报错
linux·运维·ubuntu
漫漫求2 小时前
ubuntu设置软件开机自启动
linux·运维·ubuntu
阿郎_20113 小时前
window10的wsl安装配置ubuntu22.04和docker
运维·windows·ubuntu·docker·容器
天远数科3 小时前
Node.js 全栈攻略:基于天远数据 API 开发即时身份核验中间件
大数据·node.js·编辑器·vim
Hncj202220 小时前
项目02--JsonRpc
linux·c++·ubuntu·rpc
叮咚侠21 小时前
Ubuntu 24.04.3 LTS系统中Elasticsearch 8.14.0+kibana 8.14.0集群部署搭建
大数据·ubuntu·elasticsearch·搜索引擎·集群·kibana
风静雪冷1 天前
在Ubuntu上安装docker(docker engine)和docker compose
linux·ubuntu·docker