真是个愚蠢的问题,Ubuntu 20,我安装了 apache2,没有其他东西。我想sudo visudo /etc/hosts
添加一个别名“dummy.com”域别名,作为一种黑客手段,指向仅用于本地测试学习网站的服务器,但我得到了这个不寻常的
>> /etc/hosts: syntax error near line 1 <<<
>>> /etc/hosts: syntax error near line 2 <<<
>>> /etc/hosts: syntax error near line 5 <<<
>>> /etc/hosts: syntax error near line 6 <<<
>>> /etc/hosts: syntax error near line 7 <<<
>>> /etc/hosts: syntax error near line 8 <<<
>>> /etc/hosts: syntax error near line 9 <<<
What now? Q
我删除了该127.0.0.1 localhost notmydomain.com
行,所以现在这是我的文件,为什么每次我编辑它时都会出现上述语法错误?
conrad@conrad-VirtualBox:~$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 conrad-VirtualBox
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
感到很困惑,因为当我访问 fakedomain.com 时浏览器确实可以工作(奇怪的是,即使在我删除了 fakedomain.com 别名并运行后,别名仍然在浏览器中继续工作sudo service network-manager restart
。)我在这上面浪费了太多时间,我打算重新安装,但很想知道我可能哪里做错了。
答案1
visudo
是用于编辑/etc/sudoers
文件的命令(并且仅有的该文件将被重新打包,并执行完整性检查以确保该文件有效。
如果您将文件作为参数传递给它,它将查找另一个sudoers
文件并检查语法。由于是/etc/hosts
具有另一种语法的不同文件,因此会出现错误。
只需/etc/hosts
用你最喜欢的编辑器进行编辑,如下所示:
sudo vim /etc/hosts
或者您可以使用sudoedit
(或sudo -e
)命令,其工作方式与运行相同crontab -e
(您编辑临时文件,完成后将其复制到目标):
sudoedit /etc/hosts