为什么有些程序可以编辑/etc/hosts,而有些则不能?

问题描述 投票:0回答:2

我尝试使用 Emacs、VSCode 等(当然还有 sudo)编辑我的 /etc/hosts 文件,但它一直说我没有编辑该文件的权限。

然后我尝试使用 Vim、Nano 和 Atom...并且它们能够编辑和保存文件。

(运行

echo 'some host' | sudo tee -a /etc/hosts
也效果很好)。

那这是为什么呢?为什么有些编辑器可以毫无问题地编辑文件,而其他编辑器却不能?

unix vim emacs editor hosts
2个回答
3
投票

尝试使用本地 emacs 打开

C-x C-f /sudo::/etc/hosts


0
投票

我无法真正提供答案,但我确信一件事:你应该避免以 sudo 模式启动 Emacs!

使用另一个答案中提到的

/sudo::/etc/hosts
是一种选择,但我更喜欢使用
sudo -e /etc/hosts
因为这更安全并且可以从命令行运行。这将在默认编辑器中打开文件的副本,并在关闭时将其保存回来。

要将默认编辑器设置为 Emacs,请提前执行

export EDITOR=emacsclient
(我假设您已经启动了 emacs-server)。无论如何,这个设置是一个好主意,因为它可以与许多其他命令行工具一起使用,因此您应该将其放在 shell 初始化配置中。

通常我有一个

e
的 shell 别名,用于使用
emacsclient
打开普通文件,以及
E
通过
sudo -e
打开它,这很容易记住。

© www.soinside.com 2019 - 2024. All rights reserved.