sed -i 's/#ServerName www.example.com:80/ServerName localhost:80/' /usr/local/httpd/conf/httpd.conf 为什么不生效
时间: 2023-08-21 17:04:04 浏览: 216
这个命令是用于将 Apache 的默认主机名修改为 localhost,并且通过 `-i` 参数直接修改了 `/usr/local/httpd/conf/httpd.conf` 文件。如果修改不生效,可能有以下几个原因:
1. 权限问题:如果你不是 root 用户或者没有足够的权限修改 `/usr/local/httpd/conf/httpd.conf` 文件,那么命令就不会生效。
2. 文件路径问题:请确保 `/usr/local/httpd/conf/httpd.conf` 文件确实存在,路径没有写错。
3. 文件内容问题:可能你的 `httpd.conf` 文件中没有原始的 `#ServerName www.example.com:80` 这一行,或者已经被其他的配置项覆盖了,导致无法替换。
你可以检查这些问题,看看是哪个原因导致了命令不生效。
相关问题
以下这行命令有用吗?sed -i 's/#ServerName www.example.com:80/ServerName localhost:80/' /usr/local/httpd/conf/httpd.conf
这行命令在将 Apache 的默认主机名修改为 localhost 时,有一个问题:在 `localhost:80` 中,冒号 `:` 被替换成了中文冒号 `:`。因此,这个命令是有问题的,会产生语法错误。
正确的命令应该是:
```
sed -i 's/#ServerName www.example.com:80/ServerName localhost:80/' /usr/local/httpd/conf/httpd.conf
```
这个命令会将 `httpd.conf` 文件中的 `#ServerName www.example.com:80` 替换成 `ServerName localhost:80`。注意,这个命令需要使用 root 用户或者有足够权限的用户才能运行成功。
sed -i 's/#ServerName www.explem.com:80/ServerName localhost:80' /usr/local/httpd/conf/httpd.conf 这一行存在问题吗?
是的,存在问题。在 sed 命令中,替换命令中的模式和替换字符串之间应该用斜杠(/)分隔符分开。在这个例子中,替换命令应该是:
```
sed -i 's/#ServerName www.explem.com:80/ServerName localhost:80/' /usr/local/httpd/conf/httpd.conf
```
注意斜杠的位置和数量。这个命令将会把 `/usr/local/httpd/conf/httpd.conf` 文件中的 `#ServerName www.explem.com:80` 一行替换成 `ServerName localhost:80`。
阅读全文