环境变量是操作系统中用于存储特定信息的文件,这些信息可以影响程序的行为。在Linux和类Unix系统(如macOS)中,环境变量通常以.env文件的形式存在,而在Windows系统中,它们通常保存在系统的“用户”文件夹中。
在Linux或类Unix系统中,环境变量的目录通常是`/etc/environment`,而Windows系统中的环境变量则在`%USERPROFILE%AppDataRoamingMicrosoftWindowsSystem32`目录下。
以下是一些常用的系统变量及其用途:
- 1. PATH
- 定义了命令解释器(如bash,sh等)在查找可执行文件时搜索路径的列表。例如,如果你的PATH变量设置为`/usr/bin:/bin:/usr/sbin:/sbin`,那么当你运行一个需要这些路径中的某个可执行文件的命令时,shell会首先在这些路径中寻找该文件。 2. HOME
- 定义了用户的主目录。在Linux和类Unix系统中,这个变量通常指向用户的家目录。在Windows系统中,这个变量的值是在用户配置文件中找到的。 3. LANG
- 定义了计算机的语言设置。例如,如果你将LANG设置为`en_US.UTF-8`,那么当你输入命令时,它将使用美国英语,并且在输出中包含Unicode字符。 4. PS1
- 定义了命令提示符的外观。例如,如果你将PS1设置为`PS1='u@h:w$ '`,那么当用户登录时,他们的用户名、主机名和当前工作目录就会显示在命令提示符中。 5. MAILTO
- 定义了邮件接收地址。例如,如果你将MAILTO设置为`user@example.com`,那么所有的电子邮件都会发送到这个地址。 6. SSH_HOST
- 定义了SSH服务器的主机名。例如,如果你将SSH_HOST设置为`myserver.example.com`,那么所有通过SSH连接到你的机器的请求都会发送到这个服务器。 7. SSH_AUTH_SOCK
- 定义了SSH服务器的socket文件。例如,如果你将SSH_AUTH_SOCK设置为`/tmp/ssh.sock`,那么所有的SSH连接都将在这个socket上进行。 8. SSH_CONNECT_ADDR
- 定义了SSH客户端试图连接到的主机地址。例如,如果你将SSH_CONNECT_ADDR设置为`192.168.0.1`,那么只有那些IP地址为192.168.0.1的主机才能连接到你的机器。 9. SSH_CLIENT
- 定义了SSH客户端使用的密钥文件。例如,如果你将SSH_CLIENT设置为`~/.ssh/id_rsa`,那么所有通过SSH连接到你的机器的请求都会使用这个密钥进行身份验证。 10. SSH_PRIVATE_KEY
- 定义了SSH客户端使用的私钥文件。例如,如果你将SSH_PRIVATE_KEY设置为`/home/user/.ssh/id_rsa`,那么所有通过SSH连接到你的机器的请求都会使用这个私钥进行身份验证。 11. SSH_PRIVATE_KEY_BACKUP
- 定义了SSH客户端使用的备份私钥文件。例如,如果你将SSH_PRIVATE_KEY_BACKUP设置为`/home/user/.ssh/id_rsa.pub`,那么所有通过SSH连接到你的机器的请求都会使用这个备份私钥进行身份验证。 12. SSH_AGENT
- 定义了是否启动SSH代理。例如,如果你将SSH_AGENT设置为`yes`,那么所有通过SSH连接到你的机器的请求都会通过SSH代理进行身份验证。 13. SSH_AGENT_PID
- 定义了SSH代理的进程ID。例如,如果你将SSH_AGENT_PID设置为`12345`,那么所有通过SSH连接到你的机器的请求都会使用这个进程ID作为SSH代理。 14. SSH_TTY
- 定义了SSH客户端使用的终端。例如,如果你将SSH_TTY设置为`/dev/tty1`,那么所有通过SSH连接到你的机器的请求都会使用这个终端进行通信。 15. SSH_CONNECTION
- 定义了SSH客户端正在尝试建立的连接类型。例如,如果你将SSH_CONNECTION设置为`client`,那么所有通过SSH连接到你的机器的请求都会被视为客户端连接。 16. SSH_CLIENT_PORT
- 定义了SSH客户端正在尝试使用的端口。例如,如果你将SSH_CLIENT_PORT设置为`22`,那么所有通过SSH连接到你的机器的请求都会使用这个端口进行通信。 17. SSH_SERVER_PORT
- 定义了SSH服务器正在尝试使用的端口。例如,如果你将SSH_SERVER_PORT设置为`22`,那么所有通过SSH连接到你的机器的请求都会使用这个端口进行通信。 18. SSH_KNOWN_HOSTS
- 定义了一个已知的主机列表。例如,如果你将SSH_KNOWN_HOSTS设置为`192.168.0.1, 192.168.0.2`,那么所有通过SSH连接到你的机器的请求都会检查这个列表,只有那些IP地址在这个列表中的主机才能连接到你的机器。 19. SSH_PASSPHRASE
- 定义了SSH客户端的密码。例如,如果你将SSH_PASSPHRASE设置为`password`,那么所有通过SSH连接到你的机器的请求都需要提供这个密码。 20. SSH_OPTS
- 定义了一些额外的SSH选项。例如,如果你将SSH_OPTS设置为`-o UserKnownHostsFile=/dev/null`,那么所有通过SSH连接到你的机器的请求都会忽略UserKnownHosts文件中的信息。
以上就是一些常见的系统变量及其用途。在实际使用中,你可以根据自己的需求来调整这些变量,以满足特定的需求。