日常基础知识

Windows 环境变量

Windows 10 / 11 环境变量 (用户变量与系统变量)

环境变量 (environment variables) 是在操作系统中用来指定操作系统运行环境的一些参数。环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所使用到的信息。Windows 和 DOS 操作系统中的 path 环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到 path 中指定的路径去找。用户通过设置环境变量,来更好的运行进程。

  • 系统变量针对所有用户起作用,为了安全起见,一般配置用户环境变量。
  • 用户变量只对当前用户起作用,不建议为了省事而配置系统环境变量。

普通变量
如果在用户变量和系统变量中创建同名变量,那么 Windows 会将用户变量覆盖系统变量。在 cmd 中输出的是用户变量中该变量的值。
对于普通变量,用户环境变量优先级高于系统环境变量。系统会先检查用户变量,之后再检查系统变量。

Path 变量
​1. 环境变量不区分大小写,path / PATH / Path 表示指定可执行文件的搜索路径。
2. echo %path% 可以得到 path 变量的值 (系统变量中的值与用户变量中的值的组合),用户变量 path 内容会跟在系统变量 path 内容的后面。
3. 对于 Path 变量,系统环境变量优先级高于用户环境变量。
4. Windows 系统在执行用户命令时,若用户未给出文件的绝对路径,则首先在当前目录下寻找相应的可执行文件。然后在系统变量的 path / PATH / Path 路径中查找,如果找不到,再到用户变量的 path / PATH / Path 路径中查找。

Windows 对于 Path 变量的处理方式是,将用户变量的 Path 添加到系统变量 Path 后面。Windows 在查找指令的时候,是按 Path 中的路径从前往后找,直至在某个路径中找到了该指令。如果系统变量 Path 中有对应指令的话,Windows 就不会再去用户变量 Path 中查找。

虚拟机网络问题

VMware虚拟机三种网络模式:桥接模式,NAT模式,仅主机模式
桥接模式、NAT模式和仅主机模式,DHCP自动分配地址

在Ubuntu 20.04中,如果您正在使用NAT模式,可能需要配置网络设置才能通过ping访问www.baidu.com。您可以按照以下步骤操作:

  1. 确保您的网络连接已正确配置为NAT模式。如果您正在使用虚拟机,请确保虚拟机配置中已选中NAT模式。
    打开终端,并运行以下命令以确认您的连接是否已获得IP地址:
//  该命令将显示您计算机上所有网络接口的IP地址信息。请确保您的接口已分配IP地址。
ip addr show
  1. 运行以下命令以查看您当前的 DNS 配置:
// 其中,<interface-name>是您的网络接口名称,可以通过运行ip addr show命令来获取。
nmcli device show <interface-name> | grep DNS
  1. 如果您的DNS服务器配置不正确,请运行以下命令以添加正确的DNS服务器:
// 该命令将打开/etc/resolv.conf文件,您可以在该文件中添加正确的DNS服务器地址。
sudo nano /etc/resolv.conf
  1. 保存更改并退出nano文本编辑器,并运行以下命令以使更改生效:
// 该命令将重新启动DNS服务,并使更改生效。
sudo systemctl restart systemd-resolved

让虚拟机自动获取DNS服务器的IP地址。在大多数Linux发行版中,可以通过以下步骤来配置虚拟机自动获取DNS服务器的IP地址.

  1. 打开虚拟机的网络设置,选择“NAT模式”或“桥接模式”。
  2. 在虚拟机中打开终端,运行以下命令以编辑网络配置文件:
sudo nano /etc/network/interfaces
  1. 在文件中添加以下内容:
auto eth0
iface eth0 inet dhcp
/*
这将启用虚拟机的eth0网络接口
并使用DHCP协议自动获取IP地址和DNS服务器的IP地址。
*/
  1. 保存更改并退出nano文本编辑器,并运行以下命令以使更改生效:
sudo service networking restart

为什么nmcli device show ens33 | grep DNS和/etc/resolv.conf中的nameserver不一样呢

  • nmcli device show ens33 | grep DNS 和 /etc/resolv.conf 中的 nameserver 不同的原因可能是由于 DHCP 协议分配的 DNS 不同所致。
  • 在大多数情况下,当您连接到网络时,您的计算机会通过 DHCP 协议从路由器或 DHCP 服务器获取 IP 地址和其他网络配置信息,例如 DNS 服务器的 IP 地址。您的计算机会将获取到的 DNS 服务器 IP 地址写入 /etc/resolv.conf 文件中,以便在解析域名时使用。
  • 然而,在某些情况下,例如使用 NetworkManager 等网络管理工具的情况下,DNS 服务器 IP 地址可能会从不同的源获取。在这种情况下,nmcli device show ens33 | grep DNS 命令将显示从 NetworkManager 获取的 DNS 服务器 IP 地址,而 nameserver 行则显示从 DHCP 协议获取的 DNS 服务器 IP 地址。
  • 因此,如果您发现 nmcli device show ens33 | grep DNS 和 /etc/resolv.conf 中的 nameserver 不同,可能是由于您的 DNS 服务器 IP 地址从不同的源获取所致。如果您想要在 /etc/resolv.conf 中使用特定的 DNS 服务器 IP 地址,您可以通过手动编辑文件来更改 nameserver 行,然后保存更改并重新启动网络服务以使更改生效。

你可能感兴趣的:(基础知识,windows,linux)