Linux 用户在编辑配置文件时,通常会选择 nano 或 vim 这类基于终端的工具。如果你希望使用图形界面来编辑文件(包括系统文件),gedit 文本编辑器会是一个方便且易于上手的选择。
文件无处不在
在 Linux 以及其他基于 Unix 的操作系统(例如 macOS)中,有一个经常被提及的概念是“一切皆文件”。
虽然这并非完全准确,但文本文件在系统日志和配置中扮演着至关重要的角色。通过阅读这些文件,你可以深入了解操作系统的工作原理,并且可以通过编辑它们来调整系统的行为。
gedit 是 GNOME 桌面环境的默认文本编辑器,因此你可以在任何安装了 GNOME 的系统上找到它,包括 Ubuntu、Fedora、Debian、CentOS 和 Red Hat。它是一个非常实用的文件编辑工具,尤其是在你只需要一个能够完成基本编辑任务的编辑器时,无需像 vim 这样功能强大的编辑器那样陡峭的学习曲线。
启动 gedit
要从命令行启动 gedit,只需输入 gedit 并按下回车键。
gedit 文本编辑器窗口会很快弹出。
这是一个简洁明了的应用程序窗口,你可以专注于正在处理的内容,不受其他元素的干扰。
当然,你也可以从 Linux 桌面的应用程序菜单中启动 gedit。它的名称通常是“文本编辑器”。只需在应用程序菜单中搜索 “gedit” 即可找到。
在后台运行 gedit
在默认情况下,终端窗口会等待 gedit 关闭后再返回命令提示符。如果你想在 gedit 仍然打开的情况下继续使用终端,可以使用以下命令启动 gedit,使其在后台运行。这样,你就可以立即回到命令行提示符,同时 gedit 也在运行。
输入 gedit,一个空格,一个 & 符号,然后按回车键,就像这样:
gedit &
打开现有文件
要打开一个已存在的文本文件,请点击 gedit 工具栏上的“打开”按钮,或者使用快捷键 Ctrl + O。
这将打开最近打开的文件菜单。如果想重新打开其中一个文件,只需点击其文件名。如果想打开其他文件,请点击菜单底部的 “其他文档…” 按钮。
这将打开一个标准的“打开文件”对话框。你可以使用它来浏览到你想要编辑的文件所在的位置。
当选中要编辑的文件后,点击绿色的“打开”按钮。
从命令行打开文件
你也可以通过在命令行中提供文件名来让 gedit 在启动时直接打开该文件。这使得 gedit 在打开时直接加载文件,方便你进行编辑。
gedit ana.c
gedit 的语法高亮功能使得编辑程序源代码文件和 shell 脚本变得更加轻松。
语法高亮会为源文件中的不同元素着色,例如变量、保留字、注释和参数等,从而方便你识别代码的不同部分。
你正在编辑的文件名会显示在工具栏中。如果文件已被修改,文件名旁边会出现一个星号 *。
这表示文件的内容已被更改,提醒你如果需要保留更改,则需要保存文件。
保存对文件的更改
要保存更改,请点击工具栏中的“保存”按钮,或使用快捷键 Ctrl + S。
要以不同的名称或在不同的位置保存文件,请点击工具栏上的菜单按钮,然后从菜单中选择“另存为”。
这将打开一个标准的 “保存文件” 对话框。你可以浏览到要保存文件的目录,并指定文件名。点击绿色的“保存”按钮来保存文件。
编辑系统文件
通常,编辑系统文件需要使用 sudo 命令,因为这些文件的所有者通常是 root 用户。尽管你可以直接打开系统文件,但如果没有使用 sudo,则无法将任何更改保存回文件。
sudo gedit /etc/samba/smb.conf
警告:如果你不确定更改会对系统造成什么影响,请不要编辑系统文件。错误地修改系统文件可能会导致系统在重启后无法正常工作。
此命令将打开 gedit 并加载 samba 的配置文件以进行编辑。
将所有权和权限复制到新文件
编辑系统文件的一种较为谨慎的方法是先复制文件,然后编辑副本。完成对副本的编辑后,再将副本复制回原始文件。如果复制的文件编辑错误,也无需担心,只需删除并重新开始即可。
复制文件时,文件所有权可能会发生改变,文件模式权限也可能被修改。在将新版本复制回原始文件之前,需要确保新文件的所有权和模式权限与原始文件完全相同。以下是具体的操作步骤。
假设我们需要编辑 fstab 文件。
为了确保我们更改了文件所有权和模式权限,我们将创建一个新文件,然后将现有文件复制到该文件上。这个步骤仅用于演示目的,以确保新文件不具有与原始文件相同的模式权限和所有权。当你编辑自己的文件时,通常无需执行此步骤。
touch new_fstab
我们可以使用 ls 命令来查看文件的属性,包括文件模式权限和所有者。
ls -l new_fstab
文件所有者是 dave,文件模式权限对于文件所有者是读写,对于组和其他用户是只读。
现在,我们将 /etc/fstab 文件复制到我们刚刚创建的新文件上。然后,我们将检查文件属性,看看它们是否已更改。
sudo cp /etc/fstab new_fstab
ls -l new_fstab
fstab 文件已复制到 new_fstab 文件上。 new_fstab 的文件属性并没有改变。 让我们检查一下原始 fstab 文件的文件属性。
ls -l /etc/fstab
我们可以看到所有者是 root,并且文件模式权限是不同的。组权限是读写。 new_fstab 的组权限是只读。 在将文件复制回来之前,我们需要更正这两个属性。
首先,我们将启动 gedit 并编辑 new_fstab 文件,进行所需的更改。
gedit new_fstab
编辑文件并保存更改后,我们需要将文件所有权和文件模式权限设置回原始状态。
我们可以使用 chmod 和 chown 命令的 –reference 选项来实现。
–reference 选项将文件名作为参数。它强制 chmod 和 chown 从该文件中获取文件模式权限和文件所有权值,并将它们复制到目标文件。然后,我们可以使用 ls 命令来检查编辑文件的属性是否已正确设置,然后再将其复制回原始文件。
sudo chmod --reference=/etc/fstab new_fstab
sudo chown --reference=/etc/fstab new_fstab
ls -l new_fstab
文件权限和所有权现在都已正确设置。 我们可以将 new_fstab 复制到现有的 fstab 文件上,我们的更改就完成了。
由于这些是对 fstab 文件的更改,它们将在计算机下次重新启动时生效,或者也可以使用 mount 命令使其立即生效:
sudo mount -a
谨慎行事
我再次强调,请务必谨慎。 如果你不确定对系统文件的更改会对你的计算机产生什么影响,请不要进行任何更改。
当你需要编辑文本文件时,无论是否是系统文件,gedit 都是一个快速、简单且易于使用的编辑器。它不会因为过多的选项而让你感到困惑,并且它也具备足够的编辑能力来满足你的需求。