linux 读取/etc/resolv.conf中 获取nameserver关键字的ip
时间: 2024-01-01 19:05:32 浏览: 137
地址的命令是什么?
您可以使用以下命令来读取/etc/resolv.conf文件中的nameserver关键字的IP地址:
```
$ awk '/nameserver/{print $2}' /etc/resolv.conf
```
该命令将使用awk工具查找该文件中以“nameserver”开头的所有行,并输出该行的第二个字段,即IP地址。
相关问题
source /etc/resolv.conf -bash: nameserver: command not found -bash: nameserver: command not found
当你尝试使用 `source /etc/resolv.conf` 命令时,出现 "nameserver: command not found" 错误是因为 `nameserver` 不是一个内置的Bash命令,它不是用来解析DNS配置的。实际上,`/etc/resolv.conf` 是一个文本文件,包含了Linux系统中的DNS服务器信息,通常是用来配置网络接口的DNS查找。
这个错误意味着Bash找不到名为 `nameserver` 的命令来处理文件内容,你需要的是使用其他命令来读取并应用这个文件的内容。你应该使用 `cat` 或 `nano` 等文本编辑器打开文件,然后手动将文件中的DNS服务器地址复制到网络配置中,或者使用专门的命令来解析该文件。
如果你想将 `resolv.conf` 中的DNS设置应用到你的shell会话中,你可以使用以下步骤:
1. 打开终端。
2. 使用 `nano` 或 `vi` 编辑器打开 `/etc/resolv.conf` 文件:
```bash
sudo nano /etc/resolv.conf
```
3. 确认文件内有 `nameserver` 或 `search` 部分,比如:
```bash
nameserver 8.8.8.8
search example.com
```
4. 保存并关闭编辑器。
5. 如果你想立即更新DNS设置,可以运行:
```bash
ip -4 conf dev ens33 renew # 如果是eth0,替换为你的网卡名
```
请注意,如果你的网络管理工具(如NetworkManager)正在管理DNS,那么手动更改 `/etc/resolv.conf` 可能不会立即生效。在这种情况下,你可以查看网络管理工具的文档了解如何持久地设置DNS。
使用shell脚本实现插入两条dns记录到/etc/resolv.conf
使用 shell 脚本来向 `/etc/resolv.conf` 文件插入 DNS 记录通常涉及到文本文件的操作,比如追加新的行。这里是一个简单的示例,假设你想添加 `example.com` 和 `www.example.com` 两个域名指向 `8.8.8.8` 的 A 类记录:
```bash
#!/bin/bash
# 新的DNS条目
new_dns_entry="nameserver 8.8.8.8\n"
domain1="example.com"
domain2="www.example.com"
# 如果 /etc/resolv.conf 已经存在,则读取并追加新的条目
if [ -f /etc/resolv.conf ]; then
# 逐行读取原文件内容
while IFS= read -r line; do
echo "$line" >> /etc/resolv.conf
done < /etc/resolv.conf
# 插入新的DNS条目
echo "$new_dns_entry$domain1" >> /etc/resolv.conf
echo "$new_dns_entry$domain2" >> /etc/resolv.conf
else
# 文件不存在,直接创建并写入新的DNS条目
echo "$new_dns_entry$domain1" > /etc/resolv.conf
echo "$new_dns_entry$domain2" >> /etc/resolv.conf
fi
# 确认修改是否成功
echo "DNS记录已添加至 /etc/resolv.conf,请检查:"
cat /etc/resolv.conf
阅读全文