当前位置: 首页 > news >正文

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系统中具有多种作用,以下是一些最常见的用途:

  1. 配置程序行为:环境变量可以影响程序的运行方式,如日志级别、临时文件存储位置等。通过设置相应的环境变量,我们可以自定义程序的行为以满足特定需求。
  2. 管理路径:环境变量可以帮助管理程序和库的查找路径。例如,PATH变量定义了系统在查找可执行文件时需要搜索的目录列表;LD_LIBRARY_PATH变量指定了动态链接器在查找共享库时需要搜索的目录。
  3. 存储用户偏好:环境变量可以用于存储用户的个性化设置,如默认编辑器、语言设置等。这些设置可以在不同的程序和会话之间共享,提高用户体验。
  4. 传递信息:环境变量可以在父进程和子进程之间传递信息,实现进程间通信。例如,某些程序可能需要读取环境变量中的数据以执行特定任务。

环境变量的重要性主要体现在它们为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 环境变量:

  1. PATH:这个环境变量定义了系统在查找可执行文件时要搜索的目录列表。当用户在终端中输入命令时,系统会按照 PATH 变量中的顺序在各个目录中查找相应的可执行文件。
  2. HOME:这个环境变量指定了当前用户的主目录,也就是用户的个人文件夹。在大多数 Linux 发行版中,用户主目录位于 /home/username
  3. LD_LIBRARY_PATH:这个环境变量定义了系统在查找动态链接库(共享库)时要搜索的目录列表。当一个可执行文件依赖于某个共享库时,系统会按照 LD_LIBRARY_PATH 变量中的顺序在各个目录中查找相应的库文件。
  4. LANG:这个环境变量设置了系统的语言和地区设置。LANG 变量的值通常包括语言代码、国家代码和字符编码,例如 en_US.UTF-8 表示美国英语和 UTF-8 编码。
  5. 更多常见环境变量:
    • USER:当前登录用户的用户名。
    • LOGNAME:与 USER 类似,表示当前登录用户的用户名。
    • SHELL:当前用户的默认 Shell 程序。
    • TERM:指定当前终端类型,例如 xtermvt100
    • DISPLAY:指定 X Window 系统的显示设备,通常为 :0
    • EDITORVISUAL:指定默认文本编辑器,例如 vimnano
    • TZ:设置系统的时区,例如 America/New_YorkEurope/London
    • HISTSIZE:设置 Shell 的命令历史记录条数。
    • PWD:当前工作目录。
    • PS1:定义 Shell 提示符的外观。

要查看当前系统的环境变量,可以在终端中输入 envprintenv 命令。要设置或修改环境变量,可以使用 export 命令,例如:export PATH=$PATH:/new/path

管理Linux环境变量(Managing Linux Environment Variables)

在Linux系统中,环境变量用于存储系统设置和应用程序配置。管理环境变量是Linux系统管理的重要部分。以下是查看和设置环境变量的方法。

查看环境变量(Viewing Environment Variables)

  1. 使用**printenv**命令

    printenv命令可以查看一个或多个环境变量的值。例如,查看PATH变量:

    printenv PATH

    若要查看所有环境变量,只需输入:

    printenv

  2. 使用**echo**命令echo命令也可以用来查看环境变量。例如,查看PATH变量:

    echo $PATH

设置环境变量(Setting Environment Variables)

  1. 设置临时环境变量:在命令行中使用export命令设置环境变量。这种方法设置的环境变量仅在当前终端会话中有效。例如,设置一个名为MY_VARIABLE的环境变量:

    export MY_VARIABLE="Hello, World!"

  2. 设置永久环境变量:要永久设置环境变量,需要将其添加到系统或用户配置文件中。常见的配置文件有:

    • /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)

  1. 删除临时环境变量:在命令行中使用unset命令删除环境变量。这种方法删除的环境变量仅在当前终端会话中有效。例如,删除一个名为MY_VARIABLE的环境变量:

unset MY_VARIABLE

  1. 删除永久环境变量:要永久删除环境变量,需要将其从系统或用户配置文件中删除。常见的配置文件有:
    • /etc/environment:全局环境变量设置。
    • /etc/profile/etc/profile.d目录下的文件:全局环境变量设置,包括交互式shell登录。
    • ~/.profile~/.bash_profile:用户特定的环境变量设置。
      删除操作需要从相应的配置文件中删除相应的设置,然后运行以下命令使设置生效:
      source <配置文件路径>

Linux 编程中通过系统调用更改环境变量

在Linux C编程中,您可以使用标准库函数来更改环境变量。主要有两个函数可以用于设置和修改环境变量:setenv()putenv()

  1. 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;
    }
  2. 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中,要使环境变量变成永久变量,需要将环境变量的定义添加到系统或用户的配置文件中。这样,每次系统启动或用户登录时,这些配置文件就会被加载,从而设置相应的环境变量。

    以下是几种设置永久环境变量的方法:

    1. 对于所有用户:要为所有用户设置永久环境变量,需要编辑 /etc/environment 文件。这个文件用于存储系统范围的环境变量。打开该文件并添加或修改环境变量,例如:
      MY_VARIABLE=Hello, World!
      然后保存文件并退出。这将使得每次系统启动时,都会设置 MY_VARIABLE 环境变量。
    2. 仅对当前用户:要为当前用户设置永久环境变量,可以编辑 ~/.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)

在脚本中使用环境变量可以让代码更加灵活,便于在不同的环境和配置中重用。以下是在脚本中使用环境变量的一些示例:

  1. 使用环境变量作为路径前缀:
    #!/bin/bash# 使用 HOME 环境变量作为路径前缀
    backup_folder="$HOME/backup"# 创建备份目录
    mkdir -p "$backup_folder"# 备份文件
    cp important_file.txt "$backup_folder"
  2. 使用环境变量作为参数:
    #!/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)

环境变量在软件配置中的应用使得配置更加灵活,可以方便地在不同环境中使用不同的配置。以下是在软件配置中使用环境变量的一些示例:

  1. 使用环境变量来设置数据库连接信息:

    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
    )
  2. 在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)

  1. 区分全局与局部环境变量:根据环境变量的使用范围,合理选择全局或局部环境变量。全局环境变量对所有用户和系统进程生效,适用于通用的系统配置。局部环境变量只对特定用户或进程生效,适用于特定用户的个性化配置。
  2. 使用有意义的名称:为环境变量选择具有描述性的名称,以便于理解其作用。遵循命名规范,如使用大写字母和下划线。
  3. 避免硬编码:在脚本和程序中,尽量使用环境变量代替硬编码的值,以提高代码的可重用性和可维护性。
  4. 合理设置默认值:在程序中,如果环境变量未设置,可以提供合理的默认值,以确保程序在不同环境下的正常运行。

安全性与环境变量(Security and Environment Variables)

  1. 保护敏感信息:不要将敏感信息(如密码、API密钥等)直接写入系统或用户配置文件。可以将敏感信息保存在权限受限的文件中,并在需要时通过脚本或程序读取。例如,使用Docker时,可以通过docker secret来管理敏感信息。
  2. 谨慎授权:谨慎设置环境变量的访问权限,避免未经授权的访问和修改。对于敏感信息,确保只有特定用户或进程可以访问。
  3. 验证输入:在程序中,对从环境变量获取的值进行验证和过滤,以防止潜在的安全风险,如代码注入攻击。
  4. 限制环境变量的数量和大小:合理使用环境变量,避免过多的环境变量导致系统性能下降。尽量保持环境变量的值简洁,避免使用过长的值。

遵循这些最佳实践,可以帮助您更安全、高效地使用环境变量,提高代码的可重用性、可维护性和安全性。

总结(Conclusion)

环境变量在Linux系统中的重要性(The Importance of Environment Variables in Linux Systems)

环境变量在Linux系统中具有重要意义,它们用于存储系统设置、应用程序配置和路径信息等。环境变量提供了一种灵活的方式来管理和配置Linux系统,使得在不同环境和配置中重用代码和配置变得更加方便。环境变量在脚本、程序和系统配置中广泛应用,为Linux系统提供了强大的可定制性。

实践环境变量管理技巧以提高工作效率(Practicing Environment Variable Management Skills to Improve Work Efficiency)

通过学习和实践环境变量的管理技巧,可以提高工作效率和系统可维护性。了解如何查看、设置、删除和持久化环境变量,可以帮助您更好地管理Linux系统和应用程序。遵循最佳实践,如合理设置环境变量、保护敏感信息、验证输入等,可以确保环境变量的安全使用,提高代码的可重用性、可维护性和安全性。

相关文章:

Linux环境变量:不可或缺的系统组成部分

目录标题 引言&#xff08;Introduction&#xff09;Linux环境变量的概念&#xff08;Concept of Linux Environment Variables&#xff09;环境变量的作用与重要性&#xff08;Roles and Importance of Environment Variables&#xff09; Linux环境变量基础&#xff08;Linux…...

FFmpeg命令行解析

目录标题 一、引言&#xff08;Introduction&#xff09;1.1 FFmpeg简介&#xff08;Overview of FFmpeg&#xff09;1.2 FFmpeg命令行的应用场景&#xff08;Application Scenarios of FFmpeg Command Line&#xff09; 二、FFmpeg命令行基础&#xff08;FFmpeg Command Line …...

机器学习——为什么逻辑斯特回归(logistic regression)是线性模型

问&#xff1a;逻辑斯蒂回归是一种典型的线性回归模型。 答&#xff1a;正确。逻辑斯蒂回归是一种典型的线性回归模型。它通过将线性回归模型的输出结果映射到[0,1]区间内&#xff0c;表示某个事物发生的概率&#xff0c;从而适用于二分类问题。具体地说&#xff0c;它使用sig…...

从输入URL到页面展示到底发生了什么

刚开始写这篇文章还是挺纠结的&#xff0c;因为网上搜索“从输入url到页面展示到底发生了什么”&#xff0c;你可以搜到一大堆的资料。而且面试这道题基本是必考题&#xff0c;二月份面试的时候&#xff0c;虽然知道这个过程发生了什么&#xff0c;不过当面试官一步步追问下去的…...

Qt connect传参方式及lambda函数传参方式详解

Qt connect传参方式及lambda函数传参方式详解 Qt是一种流行的跨平台C应用程序框架&#xff0c;它提供了许多有用的工具和函数来帮助开发人员构建高效的图形用户界面和其他应用程序。其中&#xff0c;Qt Connect函数是用于连接信号和槽的重要函数之一&#xff0c;它可以在Qt应用…...

如何在硬盘上恢复已经删除的照片?

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

Unity日记22(携程概念)

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

01-Linux-磁盘分区与目录配置

1. 主引导纪录和磁盘分区表 1.1 MBR分区表 启动引导程序记录区与分区表都放在磁盘的第一个扇区&#xff08;512B&#xff09; 由于分区表仅占 64B&#xff0c;因此最多能有四组记录区&#xff0c;每组记录区记录了该区段的起始与结束的柱面号码。 缺点如下&#xff1a; 操作…...

连接器信号完整性仿真教程 二

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

基于深度学习的图片上色(Opencv,Pytorch,CNN)

文章目录 1. 前言2.图像格式&#xff08;RGB&#xff0c;HSV&#xff0c;Lab&#xff09;2.1 RGB2.2 hsv2.3 Lab 3. 生成对抗网络&#xff08;GAN&#xff09;3.1 生成网络&#xff08;Unet&#xff09;3.2 判别网络&#xff08;resnet18&#xff09; 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.多种方法计算π尾语 &#x1f49d; 前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 1.进制转换 功能&#xff1a; 获取十进制整数的二进制串&#xff0c;相当于内置函数bin。 算法分析&#xff1a; 对2辗转相除&…...

Spring Boot入门与进阶

本文将为您详细讲解Spring Boot的入门与进阶知识&#xff0c;包括Spring Boot的简介、环境搭建、基本功能以及高级特性&#xff0c;并配以丰富的代码示例&#xff0c;帮助大家快速掌握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 芯片&#xff08;动态随机存取存储器&#xff09;的技术指标 1.1 16n Prefetch (预加载) (n --芯片位宽) DDR 体系 链接&#xff1a;DDR扫盲—-关于Prefetch(预取)与Burst(突发)的深入讨论_ddr prefetch_qq_25814297-npl的博客-CSDN博客 1.2 每个通…...

计算机组成原理——第五章中央处理器(中)

辞别再无相见月&#xff0c;终是一人度春秋 文章目录 前言5.4.1 硬布线控制器的设计5.4.2 微程序控制器的基本原理5.4.3 微指令的设计5.4.4 微程序控制单元的设计 前言 本文主要写的是控制器的设计&#xff0c;控制器的设计分为硬部件控制器(就是用纯硬件的方式来实现的一种控…...

ImageJ 用户手册——第三部分(ImageJ扩展)

ImageJ 用户手册-第三部分 ImageJ扩展14. 宏指令&#xff08;Macros&#xff09;宏程序设计 15. 脚本&#xff08; Scripts&#xff09;JavaScript编程 16. 插件&#xff08; Plugins&#xff09;开发ImageJ插件 17. 用其他语言编写脚本Fiji脚本编辑器 18. 从命令行运行ImageJ …...

RK3399平台开发系列讲解(PCI/PCI-E)PCIE相关配置说明

🚀返回专栏总目录 文章目录 一、DTS 配置二、menuconfig 配置三、cmdline 配置沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 本篇将介绍在使用 RK3399 平台 PCIE 时候的配置。 一、DTS 配置 ep-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; 此项是设置 PCIe…...

NAS私有云存储 - 搭建Nextcloud私有云盘并公网远程访问

文章目录 摘要视频教程1. 环境搭建2. 测试局域网访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问 4 配置固定http公网地址4.1 保留一个二级子域名4.1 配置固定二级子域名4.3 测试访问公网固定二级子域名 转载自内网穿透工具的文章&#xff1a;使用Nextcl…...

Revit问题:墙体被楼板剪切及材质库被锁定问题

一、Revit 墙体被楼板剪切怎么办? 建模的时候画的墙总是到楼板就停了&#xff0c;这是为什么&#xff1f;明明顶部约束到标高2了&#xff0c;这种情况如何解决&#xff1f; 首先来分析问题产生的原因是&#xff0c;我们在绘制楼板的时候选择了用楼板剪切重复部分的墙体。 解决…...

CPU信息查询与CPU测试方法总结

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请征得博主同意并附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/mainmaster/article/details/130267689 未经允许不能拷贝本文章内容发布到其他相关载体上。 CPU信息查询 我们知道在嵌入式系统…...

ChatGPT时代,我们可能站到了自然语言编程的大门口

ChatGPT大火&#xff0c;我现在有种感觉&#xff1a;我们可能站到了自然语言编程的门口&#xff0c;一脚下去&#xff0c;也许能把门踹开。 当然&#xff0c;也可能会踢到一块铁板。 回顾我们的编程之路&#xff0c;基本上就是一个编程门槛不断降低的历史。 最早的一批前辈们…...

深入理解AMQP协议

一.AMQP 是什么 AMQP&#xff08;Advanced Message Queuing Protocol&#xff0c; 高级消息队列协议&#xff09;是一个提供统一消息服务的 应用层标准高级 消息队列协议&#xff0c;是 应用层协议的一个 开放标准,为面向消息的中间件设计&#xff0c;是一个进程间传递 异步消息…...

大型体检管理系统源码:适用于大中型医院或独立体检中心

一套专业的体检管理系统源码&#xff0c;是医院、体检中心等单位开展体检业务的得力助手。它将以往人工操作的健康体检过程所得到信息转换成全信息化的电脑管理&#xff0c;使体检过程更为流畅、更有条理&#xff0c;更加便于管理&#xff0c;从而实现体检业务管理的自动化、信…...

ACM 1000 | 简单的a+b

文章目录 0x00 前言 0x01 题目描述 0x02 问题分析 0x03 代码设计 0x04 完整代码 0x05 运行效果 0x06 参考文献 0x07 总结 0x00 前言 C 语言网不仅提供 C 语言&#xff0c;还包括 C 、 java 、算法与数据结构等课程在内的各种入门教程、视频录像、编程经验、编译器教程及…...

系统分析师选择题笔记

目录 1、知识产权与标准化 1.1 保护范围与对象(★★★★) 1.2 保护期限(★) 1.3 知识产权人确定(★★★) 1.4 侵权判断(★★★) 1.5 标准的分类(★) 1.6 标准代号的识别(★) 2、系统配置与性能评价 2.1 系统性能概述 2.2 系统性能&#xff08;性能指标&#xff09;(★…...

MySQL隐式类型转换

当运算符与不同类型的操作数一起使用时&#xff0c;会发生类型转换以使操作数兼容。有些转换是隐式发生的。例如&#xff0c;MySQL会根据需要自动将字符串转换为数字&#xff0c;反之亦然。 转换规则 如果一个或两个参数都为NULL&#xff0c;则比较结果为NULL 。但是相等比较…...

IT知识百科:什么是SSID?

一、什么是SSID SSID&#xff08;Service Set Identifier&#xff09;是无线网络中的一个重要概念&#xff0c;它是一个用于标识无线局域网&#xff08;WLAN&#xff09;的名称。SSID可以看作是无线网络的名称&#xff0c;类似于有线网络中的网络名称或者路由器的名称。在无线…...