0

当我使用工作 VPN 时,我需要访问特定的内部站点,但我需要通过 SSH 隧道通过我们的一个开发服务器来访问它。这可以。

但是,每当我需要这样做时,我需要在 hosts 文件中添加一个条目,以将此特定域别名为 localhost 并执行 SSH 隧道,因此当我完成后,我需要从 hosts 文件中删除该条目。我想我会自动化这相对容易。但是管理主机文件并不像我想象的那么容易:

我试过了:

cat /etc/hosts | grep -v 'internal.name.company.com' > /etc/hosts

但是,这总是会导致一个空/etc/hosts文件。如果我运行,cat /etc/hosts | grep -v 'internal.name.company.com'我会得到我想要的输出。我错过了一些明显的东西吗?当我将输出重定向到另一个文件时,说 ~/test 结果符合预期,并且该文件包含我期望的内容。

4

2 回答 2

4

试试这个方法:

grep -v 'internal.name.company.com' /etc/hosts > /tmp/hosts.tmp ; cp /tmp/hosts.tmp /etc/hosts
于 2013-09-11T14:45:07.830 回答
0

也可以使用sed直接修改文件:

sed '/internal\.name\.company\.com/d' hosts
于 2013-09-11T15:17:34.910 回答