Linux环境变量:不可或缺的系统组成部分
目录标题
- 引言(Introduction)
- Linux环境变量的概念(Concept of Linux Environment Variables)
- 环境变量的作用与重要性(Roles and Importance of Environment Variables)
- Linux环境变量基础(Linux Environment Variables Basics)
- 环境变量的分类(Classification of Environment Variables)
- 系统环境变量(System Environment Variables)
- 用户环境变量(User Environment Variables)
- 环境变量的存储与生命周期(Storage and Life Cycle of Environment Variables)
- 常见的Linux环境变量(Common Linux Environment Variables)
- 管理Linux环境变量(Managing Linux Environment Variables)
- 查看环境变量(Viewing Environment Variables)
- 设置环境变量(Setting Environment Variables)
- 删除环境变量(Deleting Environment Variables)
- Linux 编程中通过系统调用更改环境变量
- Linux环境变量应用实例(Linux Environment Variables Application Examples)
- 环境变量在脚本中的使用(Using Environment Variables in Scripts)
- 环境变量在软件配置中的应用(Using Environment Variables in Software Configuration)
- 环境变量的最佳实践(Best Practices for Environment Variables)
- 合理设置环境变量(Reasonably Setting Environment Variables)
- 安全性与环境变量(Security and Environment Variables)
- 总结(Conclusion)
引言(Introduction)
Linux环境变量的概念(Concept of Linux Environment Variables)
Linux环境变量是一种特殊的变量,用于存储与操作系统、用户及其运行的程序相关的信息。环境变量通常是键值对(Key-Value)的形式,它们可以被Linux系统内的程序和脚本读取、修改或设置。环境变量在Linux系统中起着至关重要的作用,它们可以帮助配置系统行为、管理文件路径和存储用户偏好等。
环境变量的作用与重要性(Roles and Importance of Environment Variables)
环境变量在Linux系统中具有多种作用,以下是一些最常见的用途:
- 配置程序行为:环境变量可以影响程序的运行方式,如日志级别、临时文件存储位置等。通过设置相应的环境变量,我们可以自定义程序的行为以满足特定需求。
- 管理路径:环境变量可以帮助管理程序和库的查找路径。例如,
PATH
变量定义了系统在查找可执行文件时需要搜索的目录列表;LD_LIBRARY_PATH
变量指定了动态链接器在查找共享库时需要搜索的目录。 - 存储用户偏好:环境变量可以用于存储用户的个性化设置,如默认编辑器、语言设置等。这些设置可以在不同的程序和会话之间共享,提高用户体验。
- 传递信息:环境变量可以在父进程和子进程之间传递信息,实现进程间通信。例如,某些程序可能需要读取环境变量中的数据以执行特定任务。
环境变量的重要性主要体现在它们为Linux系统的配置、程序运行和用户偏好提供了一种灵活、通用且易于管理的机制。了解环境变量的概念及其在Linux系统中的应用,可以帮助我们更好地掌握Linux系统的配置和管理,提高工作效率。
Linux环境变量基础(Linux Environment Variables Basics)
环境变量的分类(Classification of Environment Variables)
环境变量可以分为两类:系统环境变量和用户环境变量。
系统环境变量(System Environment Variables)
系统环境变量是全局变量,对整个系统中的所有用户和进程都可见。这些变量通常由操作系统和系统管理员设置,并保存在系统级别的配置文件中,如/etc/profile
、/etc/environment
等。系统环境变量主要用于配置系统级别的参数,如默认路径、时区等。
用户环境变量(User Environment Variables)
用户环境变量是针对特定用户的变量,仅对该用户的进程可见。这些变量保存在用户级别的配置文件中,如~/.bashrc
、~/.bash_profile
等。用户环境变量主要用于存储和管理用户偏好设置,如默认编辑器、语言设置等。
环境变量的存储与生命周期(Storage and Life Cycle of Environment Variables)
环境变量存储在操作系统的进程环境块(Process Environment Block)中。当操作系统创建一个新进程时,它会将父进程的环境变量复制到子进程的环境块中。这意味着子进程可以访问父进程的环境变量,但它们之间的环境变量是独立的,任何对环境变量的更改不会影响其他进程。
环境变量的生命周期与进程的生命周期相同。当进程启动时,它会从配置文件中读取环境变量并将其存储在环境块中。进程在运行过程中可以修改或添加环境变量。当进程终止时,与之关联的环境变量也会被销毁。
要使环境变量的更改永久生效,需要将其保存在相应的配置文件中。对于系统环境变量,可以将更改添加到/etc/profile
或/etc/environment
文件中;对于用户环境变量,可以将更改添加到用户主目录下的~/.bashrc
或~/.bash_profile
文件中。这样,在重新启动进程或登录时,新的环境变量设置将自动生效。
常见的Linux环境变量(Common Linux Environment Variables)
Linux 环境变量是在操作系统中用于存储特定信息的全局变量。这些变量可以被所有运行在系统上的进程访问和使用。以下是一些常见的 Linux 环境变量:
PATH
:这个环境变量定义了系统在查找可执行文件时要搜索的目录列表。当用户在终端中输入命令时,系统会按照PATH
变量中的顺序在各个目录中查找相应的可执行文件。HOME
:这个环境变量指定了当前用户的主目录,也就是用户的个人文件夹。在大多数 Linux 发行版中,用户主目录位于/home/username
。LD_LIBRARY_PATH
:这个环境变量定义了系统在查找动态链接库(共享库)时要搜索的目录列表。当一个可执行文件依赖于某个共享库时,系统会按照LD_LIBRARY_PATH
变量中的顺序在各个目录中查找相应的库文件。LANG
:这个环境变量设置了系统的语言和地区设置。LANG
变量的值通常包括语言代码、国家代码和字符编码,例如en_US.UTF-8
表示美国英语和 UTF-8 编码。- 更多常见环境变量:
USER
:当前登录用户的用户名。LOGNAME
:与USER
类似,表示当前登录用户的用户名。SHELL
:当前用户的默认 Shell 程序。TERM
:指定当前终端类型,例如xterm
或vt100
。DISPLAY
:指定 X Window 系统的显示设备,通常为:0
。EDITOR
或VISUAL
:指定默认文本编辑器,例如vim
或nano
。TZ
:设置系统的时区,例如America/New_York
或Europe/London
。HISTSIZE
:设置 Shell 的命令历史记录条数。PWD
:当前工作目录。PS1
:定义 Shell 提示符的外观。
要查看当前系统的环境变量,可以在终端中输入 env
或 printenv
命令。要设置或修改环境变量,可以使用 export
命令,例如:export PATH=$PATH:/new/path
。
管理Linux环境变量(Managing Linux Environment Variables)
在Linux系统中,环境变量用于存储系统设置和应用程序配置。管理环境变量是Linux系统管理的重要部分。以下是查看和设置环境变量的方法。
查看环境变量(Viewing Environment Variables)
-
使用**
printenv
**命令:printenv
命令可以查看一个或多个环境变量的值。例如,查看PATH
变量:printenv PATH
若要查看所有环境变量,只需输入:
printenv
-
使用**
echo
**命令:echo
命令也可以用来查看环境变量。例如,查看PATH
变量:echo $PATH
设置环境变量(Setting Environment Variables)
-
设置临时环境变量:在命令行中使用
export
命令设置环境变量。这种方法设置的环境变量仅在当前终端会话中有效。例如,设置一个名为MY_VARIABLE
的环境变量:export MY_VARIABLE="Hello, World!"
-
设置永久环境变量:要永久设置环境变量,需要将其添加到系统或用户配置文件中。常见的配置文件有:
/etc/environment
:全局环境变量设置。/etc/profile
或/etc/profile.d
目录下的文件:全局环境变量设置,包括交互式shell登录。~/.profile
或~/.bash_profile
:用户特定的环境变量设置。
选择合适的配置文件,编辑文件,添加环境变量。
例如,要在/etc/environment
文件中永久设置一个名为MY_VARIABLE
的环境变量:
MY_VARIABLE="Hello, World!"
保存并退出文件,然后运行以下命令使设置生效:
source /etc/environment
这样,环境变量
MY_VARIABLE
将被永久保存,并在系统重启后仍然有效。
删除环境变量(Deleting Environment Variables)
- 删除临时环境变量:在命令行中使用
unset
命令删除环境变量。这种方法删除的环境变量仅在当前终端会话中有效。例如,删除一个名为MY_VARIABLE
的环境变量:
unset MY_VARIABLE
- 删除永久环境变量:要永久删除环境变量,需要将其从系统或用户配置文件中删除。常见的配置文件有:
/etc/environment
:全局环境变量设置。/etc/profile
或/etc/profile.d
目录下的文件:全局环境变量设置,包括交互式shell登录。~/.profile
或~/.bash_profile
:用户特定的环境变量设置。
删除操作需要从相应的配置文件中删除相应的设置,然后运行以下命令使设置生效:
source <配置文件路径>
Linux 编程中通过系统调用更改环境变量
在Linux C编程中,您可以使用标准库函数来更改环境变量。主要有两个函数可以用于设置和修改环境变量:setenv()
和 putenv()
。
-
setenv()
函数:#include <stdlib.h>int setenv(const char *name, const char *value, int overwrite);
setenv()
函数用于设置名为name
的环境变量的值。如果环境变量不存在,则创建新的环境变量并设置其值。如果环境变量已存在,只有当overwrite
非零时,才会用value
覆盖原有的值。函数成功时返回0,失败时返回-1。示例:
#include <stdio.h> #include <stdlib.h>int main() {setenv("MY_VARIABLE", "Hello, World!", 1);printf("MY_VARIABLE = %s\n", getenv("MY_VARIABLE"));return 0; }
-
putenv()
函数:#include <stdlib.h>int putenv(char *string);
putenv()
函数接受一个字符串参数,格式为 “name=value”。如果环境变量name
不存在,则创建新的环境变量并设置其值。如果环境变量已存在,则用value
覆盖原有的值。函数成功时返回0,失败时返回非0值。示例:
#include <stdio.h> #include <stdlib.h>int main() {putenv("MY_VARIABLE=Hello, World!");printf("MY_VARIABLE = %s\n", getenv("MY_VARIABLE"));return 0; }
需要注意的是,
putenv()
函数接受的是char *
类型的参数,而不是const char *
类型。这意味着传递给putenv()
的字符串可能在函数内部被修改。因此,建议使用字符串字面量或动态分配的字符串作为参数,而避免使用栈上分配的字符串。总之,Linux C编程中可以使用
setenv()
或putenv()
函数来修改环境变量。这两个函数都在<stdlib.h>
头文件中定义。
在Linux中,要使环境变量变成永久变量,需要将环境变量的定义添加到系统或用户的配置文件中。这样,每次系统启动或用户登录时,这些配置文件就会被加载,从而设置相应的环境变量。
以下是几种设置永久环境变量的方法:
- 对于所有用户:要为所有用户设置永久环境变量,需要编辑
/etc/environment
文件。这个文件用于存储系统范围的环境变量。打开该文件并添加或修改环境变量,例如:
MY_VARIABLE=Hello, World!
然后保存文件并退出。这将使得每次系统启动时,都会设置MY_VARIABLE
环境变量。 - 仅对当前用户:要为当前用户设置永久环境变量,可以编辑
~/.bashrc
(针对Bash shell)或~/.profile
(针对其他shell)文件。在文件末尾添加export
语句,例如:
export MY_VARIABLE="Hello, World!"
然后保存文件并退出。这将使得每次用户登录时,都会设置MY_VARIABLE
环境变量。
为了使更改立即生效,可以在命令行中执行以下命令来重新加载配置文件:
- 对于
~/.bashrc
文件:
source ~/.bashrc
- 对于
~/.profile
文件:
source ~/.profile
请注意,这些方法对于使用C编程动态设置环境变量并不适用。永久设置环境变量主要用于手动配置系统环境。在C程序中修改的环境变量仅在程序的运行期间有效。如果需要在C程序中永久地修改环境变量,可以考虑将新的环境变量值写入上述配置文件。但请谨慎操作,因为这可能会对系统或用户的环境产生永久性影响。
- 对于所有用户:要为所有用户设置永久环境变量,需要编辑
Linux环境变量应用实例(Linux Environment Variables Application Examples)
环境变量在脚本中的使用(Using Environment Variables in Scripts)
在脚本中使用环境变量可以让代码更加灵活,便于在不同的环境和配置中重用。以下是在脚本中使用环境变量的一些示例:
- 使用环境变量作为路径前缀:
#!/bin/bash# 使用 HOME 环境变量作为路径前缀 backup_folder="$HOME/backup"# 创建备份目录 mkdir -p "$backup_folder"# 备份文件 cp important_file.txt "$backup_folder"
- 使用环境变量作为参数:
#!/bin/bash# 读取 API_KEY 环境变量作为参数 api_key="$API_KEY"# 调用 API curl -H "Authorization: Bearer $api_key" https://api.example.com/data
环境变量在软件配置中的应用(Using Environment Variables in Software Configuration)
环境变量在软件配置中的应用使得配置更加灵活,可以方便地在不同环境中使用不同的配置。以下是在软件配置中使用环境变量的一些示例:
-
使用环境变量来设置数据库连接信息:
import os import psycopg2# 从环境变量中读取数据库连接信息 db_host = os.environ["DB_HOST"] db_port = os.environ["DB_PORT"] db_user = os.environ["DB_USER"] db_password = os.environ["DB_PASSWORD"] db_name = os.environ["DB_NAME"]# 连接到数据库 conn = psycopg2.connect(host=db_host,port=db_port,user=db_user,password=db_password,dbname=db_name )
-
在Docker容器中使用环境变量来设置服务配置:
Dockerfile 示例:
FROM python:3.8# 设置工作目录 WORKDIR /app# 复制代码文件 COPY . .# 安装依赖 RUN pip install --no-cache-dir -r requirements.txt# 设置环境变量 ENV API_KEY=your_api_key ENV DB_HOST=db.example.com ENV DB_PORT=5432# 启动服务 CMD ["python", "app.py"]
在这些示例中,我们使用了环境变量来设置脚本或软件的配置参数。这使得我们可以在不同的环境和配置中重用代码,而无需修改源代码。
环境变量的最佳实践(Best Practices for Environment Variables)
合理设置环境变量(Reasonably Setting Environment Variables)
- 区分全局与局部环境变量:根据环境变量的使用范围,合理选择全局或局部环境变量。全局环境变量对所有用户和系统进程生效,适用于通用的系统配置。局部环境变量只对特定用户或进程生效,适用于特定用户的个性化配置。
- 使用有意义的名称:为环境变量选择具有描述性的名称,以便于理解其作用。遵循命名规范,如使用大写字母和下划线。
- 避免硬编码:在脚本和程序中,尽量使用环境变量代替硬编码的值,以提高代码的可重用性和可维护性。
- 合理设置默认值:在程序中,如果环境变量未设置,可以提供合理的默认值,以确保程序在不同环境下的正常运行。
安全性与环境变量(Security and Environment Variables)
- 保护敏感信息:不要将敏感信息(如密码、API密钥等)直接写入系统或用户配置文件。可以将敏感信息保存在权限受限的文件中,并在需要时通过脚本或程序读取。例如,使用Docker时,可以通过
docker secret
来管理敏感信息。 - 谨慎授权:谨慎设置环境变量的访问权限,避免未经授权的访问和修改。对于敏感信息,确保只有特定用户或进程可以访问。
- 验证输入:在程序中,对从环境变量获取的值进行验证和过滤,以防止潜在的安全风险,如代码注入攻击。
- 限制环境变量的数量和大小:合理使用环境变量,避免过多的环境变量导致系统性能下降。尽量保持环境变量的值简洁,避免使用过长的值。
遵循这些最佳实践,可以帮助您更安全、高效地使用环境变量,提高代码的可重用性、可维护性和安全性。
总结(Conclusion)
环境变量在Linux系统中的重要性(The Importance of Environment Variables in Linux Systems)
环境变量在Linux系统中具有重要意义,它们用于存储系统设置、应用程序配置和路径信息等。环境变量提供了一种灵活的方式来管理和配置Linux系统,使得在不同环境和配置中重用代码和配置变得更加方便。环境变量在脚本、程序和系统配置中广泛应用,为Linux系统提供了强大的可定制性。
实践环境变量管理技巧以提高工作效率(Practicing Environment Variable Management Skills to Improve Work Efficiency)
通过学习和实践环境变量的管理技巧,可以提高工作效率和系统可维护性。了解如何查看、设置、删除和持久化环境变量,可以帮助您更好地管理Linux系统和应用程序。遵循最佳实践,如合理设置环境变量、保护敏感信息、验证输入等,可以确保环境变量的安全使用,提高代码的可重用性、可维护性和安全性。
相关文章:
Linux环境变量:不可或缺的系统组成部分
目录标题 引言(Introduction)Linux环境变量的概念(Concept of Linux Environment Variables)环境变量的作用与重要性(Roles and Importance of Environment Variables) Linux环境变量基础(Linux…...
FFmpeg命令行解析
目录标题 一、引言(Introduction)1.1 FFmpeg简介(Overview of FFmpeg)1.2 FFmpeg命令行的应用场景(Application Scenarios of FFmpeg Command Line) 二、FFmpeg命令行基础(FFmpeg Command Line …...

机器学习——为什么逻辑斯特回归(logistic regression)是线性模型
问:逻辑斯蒂回归是一种典型的线性回归模型。 答:正确。逻辑斯蒂回归是一种典型的线性回归模型。它通过将线性回归模型的输出结果映射到[0,1]区间内,表示某个事物发生的概率,从而适用于二分类问题。具体地说,它使用sig…...

从输入URL到页面展示到底发生了什么
刚开始写这篇文章还是挺纠结的,因为网上搜索“从输入url到页面展示到底发生了什么”,你可以搜到一大堆的资料。而且面试这道题基本是必考题,二月份面试的时候,虽然知道这个过程发生了什么,不过当面试官一步步追问下去的…...
Qt connect传参方式及lambda函数传参方式详解
Qt connect传参方式及lambda函数传参方式详解 Qt是一种流行的跨平台C应用程序框架,它提供了许多有用的工具和函数来帮助开发人员构建高效的图形用户界面和其他应用程序。其中,Qt Connect函数是用于连接信号和槽的重要函数之一,它可以在Qt应用…...

如何在硬盘上恢复已经删除的照片?
可以从硬盘恢复删除的照片吗? 旅行后,许多人倾向于将照片保存到另一个储存设备作为副本或备份。例如,将它们存储在外部硬盘上或将图片传输到电脑。但是在整理照片的时候,很可能不小心把照片删掉了,尤其是使用外接硬…...

Unity日记22(携程概念)
目录 学习视频 携程 1异步 2调用方法 3优点 4停止方法 5返回值 实例:每过一秒打印当前运行时间 实例:停止数字打印携程 错误方法:(携程只能开一个) 参考方法 学习视频 https://www.bilibili.com/video/BV1eu…...

01-Linux-磁盘分区与目录配置
1. 主引导纪录和磁盘分区表 1.1 MBR分区表 启动引导程序记录区与分区表都放在磁盘的第一个扇区(512B) 由于分区表仅占 64B,因此最多能有四组记录区,每组记录区记录了该区段的起始与结束的柱面号码。 缺点如下: 操作…...

连接器信号完整性仿真教程 二
在连接器信号完整性仿真教程一中Step by Step演示了如何进行连接器信号完整性仿真,看完这片博文后应该可以做类似产品的仿真。如果说,看了这篇博文就学会了连接器信号完整性仿真,那就有点过了。有人也许会说信号完整性仿真难学,不…...

基于深度学习的图片上色(Opencv,Pytorch,CNN)
文章目录 1. 前言2.图像格式(RGB,HSV,Lab)2.1 RGB2.2 hsv2.3 Lab 3. 生成对抗网络(GAN)3.1 生成网络(Unet)3.2 判别网络(resnet18) 4. 数据集5. 模型训练与预…...

Python爬虫
目录 爬虫总览 准备工作 一、爬虫基础 1、爬虫前导 1.1、爬虫介绍 1.2、HTTP与HTTPS 1.3、URL 1.4、开发工具 1.5、爬虫流程 2、requests模块 2.1、简介 2.2、安装 2.3、发送请求 二、爬虫 爬虫总览 准备工作 一、爬虫基础 1、爬虫前导 1.1、爬虫介绍 概念&…...

python基础案例题:进制转换、字符串加密的实现、猜拳游戏、多种方法计算π
目录 前言1.进制转换2.字符串加密的实现3.猜拳游戏4.多种方法计算π尾语 💝 前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 1.进制转换 功能: 获取十进制整数的二进制串,相当于内置函数bin。 算法分析: 对2辗转相除&…...
Spring Boot入门与进阶
本文将为您详细讲解Spring Boot的入门与进阶知识,包括Spring Boot的简介、环境搭建、基本功能以及高级特性,并配以丰富的代码示例,帮助大家快速掌握Spring Boot。 一、Spring Boot简介 Spring Boot是基于Spring框架的一种轻量级、快速开发的…...

servlet(1)—javaEE
文章目录 1.认识servlet2.使用servlet2.1创建项目2.2引入依赖2.3创建目录2.4编写代码2.5打包2.6部署2.7运行2.8验证 3.开发步骤4.部署方式4.1打包4.2安装插件 5.访问出错的情况5.1 4045.2 4055.3其他 6.servlet的三大生命周期方法7.servlet api7.1HttpServlet7.2HttpServletReq…...
定制 Jenkins 镜像说明
Dockerfile模板示例 FROM jenkins/jenkins:2.332.4-jdk8 MAINTAINER jason USER root RUN sed -i ‘s/deb.debian.org/mirrors.aliyun.com/g’ /etc/apt/sources.list && apt update && apt install ca-certificates tzdata -y && rm -rf /var/cach…...

【离散数学】测试五 图论
1. n层正则m叉树一共有()片树叶。 A. nm B. mn C. mn 正确答案: B 2. 下图是一棵最优二叉树 A. 对 B. 错 正确答案: B 3. 要构造权为1,4,9,16,25,36,49,64,81,100一棵最优二叉树,则必须先构造权为5,9,16,25,36,49,64,81,100一棵最优二叉树. A. 对 B. 错 …...

根据cadence设计图学习硬件知识 day03 了解 一些芯片 和 数据手册下载的地方
1. MT53D512M32D2DS 芯片(动态随机存取存储器)的技术指标 1.1 16n Prefetch (预加载) (n --芯片位宽) DDR 体系 链接:DDR扫盲—-关于Prefetch(预取)与Burst(突发)的深入讨论_ddr prefetch_qq_25814297-npl的博客-CSDN博客 1.2 每个通…...

计算机组成原理——第五章中央处理器(中)
辞别再无相见月,终是一人度春秋 文章目录 前言5.4.1 硬布线控制器的设计5.4.2 微程序控制器的基本原理5.4.3 微指令的设计5.4.4 微程序控制单元的设计 前言 本文主要写的是控制器的设计,控制器的设计分为硬部件控制器(就是用纯硬件的方式来实现的一种控…...
ImageJ 用户手册——第三部分(ImageJ扩展)
ImageJ 用户手册-第三部分 ImageJ扩展14. 宏指令(Macros)宏程序设计 15. 脚本( Scripts)JavaScript编程 16. 插件( Plugins)开发ImageJ插件 17. 用其他语言编写脚本Fiji脚本编辑器 18. 从命令行运行ImageJ …...

RK3399平台开发系列讲解(PCI/PCI-E)PCIE相关配置说明
🚀返回专栏总目录 文章目录 一、DTS 配置二、menuconfig 配置三、cmdline 配置沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 本篇将介绍在使用 RK3399 平台 PCIE 时候的配置。 一、DTS 配置 ep-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; 此项是设置 PCIe…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...
高防服务器价格高原因分析
高防服务器的价格较高,主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因: 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器,因此…...