嵌入式 Linux 入门(七、Linux 下的环境变量)

2023-11-18

嵌入式 Linux 入门第七课,学习理解 linux 的环境变量  ......矜辰所致

前言

学习完 Linux 的 Shell 命令 和 Shell 脚本,我们还需要理解一个东西 :环境变量,理解了 Linux 的环境变量,前面的文章中有些细节的东西,在本文可以得到说明和体现。

❤️ >嵌入式 Linux 入门系列博文:
嵌入式 Linux 入门(一、Linux 基本介绍及文件结构)
嵌入式 Linux 入门(二、Linux 文件系统、文件类型及权限管理)
嵌入式 Linux 入门(三、Linux Shell 及常用命令说明)
嵌入式 Linux 入门(四、Linux 下的编辑器 — 让人爱恨交加的 vi )
嵌入式 Linux 入门(五、Shell 脚本编程上:认识 Shell 脚本)
嵌入式 Linux 入门(六、Shell 脚本编程下:Shell 脚本语法)
.
我是矜辰所致,一名摸爬滚打于物联网行业十多年的嵌入式工程师,尽量用心写好每一系列文章,不浮夸,不将就,认真对待学知识的我们,矜辰所致,金石为开!

一、什么是环境变量

环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息,操作系统工作环境的一些设置选项或属性参数。

环境变量相当于给系统或用户应用程序设置的一些参数。

作为嵌入式开发人员,多少都会接触过环境变量,在我们常用的 windows 系统中,设置环境变量的方法如下:

在这里插入图片描述

即便知道 windows 下的环境变量设置方法,也有大多数朋友并不知道环境变量的真正含义,很多时候我们只是根据某个教程按照步骤设置而已,并没有深入的去思考。

比如上图中的 Path,是告诉系统,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。

在上面的 Path 中有一个 gcc 相关的环境变量,在 windows 系统中是不自带 gcc 编译器的,所以我们需要使用 gcc 编辑器需要把其添加到环境变量,才可以使用 gcc 程序对应的一系列命令:

在这里插入图片描述

还是因为 windows 下大多是图形化界面操作,而且很多 IDE 会在安装的时候自动帮我们配置好环境变量,所以对于环境变量的理解要求呀不需要那么多。但是现在我们学习 Linux ,所有的东西都是文件,都是使用 Shell 命令执行,所以学习认识 Linux 下的环境变量,能让我们更好的理解环境变量,也是我们学习 Linux 必须要了解的知识点。

二、Linux 环境变量简介

在我们的上一篇文章,说明 Shell 脚本编程变量的时候提到过环境变量:

在这里插入图片描述

Linux 下的环境变量是 Shell 变量的一种,Linux 环境变量也可称之为 Shell 环境量变。

为什么呢 ?简单理解一下,在 Linux 中,因为所有程序操作都可以使用 Shell 命令完成,而环境变量就是给系统或应用程序设置的一些参数。

按照上图的说法,我们在 Shell 脚本中,临时使用=定义的变量就做局部变量,比如 a=123,这个a就是局部变量,而环境变量呢?是在 shell 启动的时候就已经定义好了的,这个我们在下面会有说明。

2.1 环境变量分类

按变量的 生存周期 来划分:

  • 永久环境变量:在环境变量脚本文件中配置,变量永久生效,用户每次登录时会自动执行这些脚本。
  • 临时环境变量:在 Shell 中临时定义的,使用 export 命令声明,变量在关闭 shell 时失效。

按变量的 生效范围 来划分:

  • 系统环境变量:公共的,对全部的用户都生效。
  • 用户环境变量:用户私有的,只对该用户生效。

上面说明的划分方式,以及说明,我都会在下文示例得到体现。

2.2 查看环境变量

env 命令

env 命令: 查看 当前用户 全部的环境变量。

在这里插入图片描述

上图是 env 命令结果的结尾部分,其中上面还有很多。

额外提一下,有没有发现上面的环境变量的名字都是大写,环境变量的赋值语句就是我们学过的 Shell 脚本编程的变量定义语句,使用变量名=赋值。

export 命令

export 命令: 用来显示和设置环境变量 ,不加参数直接输入会显示当前 导出成用户变量 的 shell 变量。

在这里插入图片描述

这里就有一个问题说明,如何理解这个 导出成用户变量 的 shell变量 ?

每个 shell 有自己特有的变量,这个和用户变量是不同的,当前用户变量和你用什么 shell 无关,不管你用什么shell都在,比如 HOME,SHELL 等这些变量,可以理解为上面所说的环境变量。

shell 自己的变量可以理解为 shell 的局部变量,在脚本或者命名中定义,换一个 shell 就不一样了。

一个 shell 自己的变量可以通过export “导出”变成一个用户变量,我们来看一下一个示例说明:

在这里插入图片描述

在上图中,我们直接在当前 Shell 中新建了一个变量,然后只要这个 Shell 不关,这个变量就一直可以调用,没想到这也可以把? 就是这么神奇!

上图中说到了 Shell 子进程的内容,这里我们复习一个知识点,在文章 嵌入式 Linux 入门(五、Shell 脚本编程上:认识 Shell 脚本) 中的 “2.2 Shell 脚本的启动方式” 我们提到过 Shell 的 3 种启动方式,文中提到过 3 种启动方式,其中有 2 种方式运行脚本会开启子进程:
在这里插入图片描述

具体的理解我们来看一个示例:

在这里插入图片描述

echo 命令

echo 命令我们在以前文章就介绍过,可以把终端的变量内容打印出来。

使用命令查看变量一下子看太多了,我们一般都是根据自己的需要查看对应的环境变量,比如在文章 嵌入式 Linux 入门(五、Shell 脚本编程上:认识 Shell 脚本) 中的 “1.3 Shell 命令的本质” 小结我们查看了一个 PATH 的环境变量:

在这里插入图片描述
这个 PATH 环境变量意思是:可执行程序的搜索目录,可执行程序包括 Linux 系统命令和用户的应用程序。

当然,我们还可以查看很多其他的环境变量,比如:

在这里插入图片描述

如上图所说,我们使用 echo 打印出的环境变量,其实就是 Shell 脚本编程的基础语法,只使用一个命令 echo 把变量打印出来而已,并不是有些人所认为的Linux 下怎么这么复杂,打印都这么多“命令”。

一些常用的环境变量:

PATH :可执行程序的搜索目录,决定了shell 将到哪些目录中寻找命令或程序
HOME :当前用户主目录
USER :当前登录用户的用户名
HISTSIZE  :保存历史命令的数目
LOGNAME :当前用户的登录名
HOSTNAME :指主机的名称
SHELL :当前用户 Shell 解析器
LANG :Linux系统的语言、地区、字符集
LANGUGE  :语言相关的环境变量,多语言可以修改此环境变量

2.3 做个简单小结

我结合了太多的地方说明,然后加上自己的理解总结,不同的教程对变量的准确定义还不完全一样,最终还是发现上面的一些变量的说明有点绕,如果有觉得不妥的地方请大佬们指出  ̄□ ̄|| 。

其实上面概念有点区分不清楚也问题不大,记住一点,环境变量也是个变量,不同的变量关键在于,使用不同的 Shell 或者 不同的用户,能不能够使用这些变量,这是我们在以后需要注意的问题。

我们在下文会介绍,如何设置环境变量,使得其对所有用户有效,或者只对某个用户有效。

我们下面会讲一下如何设置环境变量的一些方法。

三、设置环境变量

在上面我们介绍 export 命令的时候,我们使用 export 命令把 Shell 变量变成了用户变量,使得在同一个终端中的所有 shell 都可以打印变量,但是,我们如果重新打开一个终端,变量又变成了无法识别:

在这里插入图片描述

我们使用 export 命令定义的变量只对当前 shell 有效果,上面我们打开一个新的终端, 变量就无法识别了,如果关闭终端,重新打开,变量也会消失,这种变量是临时的,那么如果想要一个变量,新开的终端或者重新启动 Shell 都能识别,有什么办法吗?

当然有,那就是修改 Shell 配置文件,把变量设置成永久的环境变量。

所以再次说明一下,上面环境变量的理论如果有点稀里糊涂问题也不大,等以后熟悉了自然会越来越理解,前面的铺垫只是为了引出本文的重点:

❤️
本文的重点 ☆ 如何设置 对所有用户永久生效的对单用户永久生效 的变量 ☆ 。
❤️

3.1 Linux 环境变量文件

在 Linux 中,与环境变量有关的文件如下:

  • 全局配置
  • /etc/profile
    全局配置,所有用户登录时都会读取该文件。
    登录用户以后重新打开终端吗,这个/etc/profile不会再执行。意思就是登录以后临时在这个文件里面添加的变量,需要重启重启生效或者手动执行 source /etc/profile
  • /ect/bashrc
    全局配置,所有用户登录时都会读取该文件,该文件配置的环境变量将会影响全部用户使用的bash shell ,不管是何种方式执行 bash ,都会读取此文件。
    Ubuntu没有此文件,与之对应的是/ect/bash.bashrc
    登录用户以后重新打开终端吗,这个/ect/bash.bashrc还会执行。开一次终端就执行一次,意思就是登录以后临时在这个文件里面添加的变量,重新打开终端就能立即生效。
  • /etc/profile.d目录
    /etc/profile在每次启动时会执行 /etc/profile.d下全部的脚本文件。
  • 用户配置
  • ~/.profile
    当前用户登录的时候执行,若 bash 是以 login 方式执行时,读取~/.bash_profile,若它不存在,则读取 ~/.bash_login,若前两者不存在,读取~/.profile
    另外,图形模式登录时,此文件将被读取,即使存在~/.bash_profile~/.bash_login
    登录用户以后重新打开终端吗,这个~/.profile不会再执行,同上面/etc/profile类似理解。
  • ~/.bash_login
    若 bash 是以 login 方式执行时,读取~/.bash_profile,若它不存在,则读取~/.bash_login,若前两者不存在,读取~/.profile
  • ~/.bash_profile
    当用户登录时执行,每个用户都可以使用该文件来配置专属于自己的环境变量。
    只有 bash 是以 login 形式执行时,才会读取此文件。通常该配置文件还会配置成去读取~/.bashrc
    Ubuntu 没有此文件。
  • ~/.bashrc
    当用户登录时以及每次打开新的Shell时该文件都将被读取。
    当 bash 是以 non-login 形式执行时,读取此文件。若是以 login 形式执行,则不会读取此文件。
    登录用户以后重新打开终端吗,这个~/.bashrc还会执行。开一次终端就执行一次,同上面/ect/bashrc类似理解。
  • ~/.bash_logout
    当每次退出系统(退出bash shell)时执行该文件。
    注销时,且是 longin 形式,此文件才会读取。也就是说,在文本模式注销时,此文件会被读取,图形模式注销时,此文件不会被读取。

/etc/profile

在我们使用的 Ubuntu 系统中,我们找到 /etc/profile 文件来看看:

在这里插入图片描述

在这里插入图片描述

~/.profile

同样的,查看一下用户目录下的~/.profile文件:

在这里插入图片描述

shell 执行顺序

根据不同的登录模式,Shell 的执行顺序也有一定的区别,一般情况如下:

(1) 图形模式登录:/etc/profile —>~/.profile

(2) 图形模式登录后,打开终端时,读取顺序:/etc/bash.bashrc—>~/.bashrc

(3) 文本模式登录时:/etc/bash.bashrc—>/etc/profile—>~/.bash_profile

凡是读取到~/.bash_profile的,若该文件不存在,则读取~/.bash_login,若前两者不存在,读取~/.profile

❤️ 结合我们上面的文件程序,我们可以得出来,在我使用的虚拟机 Ubuntu 上的 Shell 脚本执行顺序为:

/etc/profile—>/etc/bashrc—>/etc/profile.d—>~/.profile—>~/.bashrc

3.2 ☆添加环境变量☆

前面我们讲过了使用 export 命令可以临时的添加一个环境变量,但是也只能在当前终端的 Shell 下面有效果,我们现在来说明一下,添加全部用户,永久有效的环境变量。

3.2.1 全部用户

通过上文我们提到的环境变量配置文件,我们要添加 针对全部用户有效果的 环境变量,可以从全局配置的文件入手:

在这里插入图片描述

这里我感觉上面的图我已经讲得很详细了,这里举个简单例子说明,我们使用上图说的第二种方式:

在这里插入图片描述

上面我们通过 /ect/bash.bashrc 文件定义了一个新的变量 testvar,我们重新打开终端,就可以使用这个变量,如下图:

在这里插入图片描述

通过上面方式添加的环境变量,是针对所有用户,所有进程都共享的 永久的 环境变量。

❤️ 至于具体使用过程中,使用哪种方式定义全部用户的环境变量,根据自己的需求,但是总的来说,在/etc/profile.d目录下面添加脚本是 Linux 比较推荐的一种方式,也就是上面我说的第三种方式,因为便于管理,而且可以区分不同的类型,不同的应用的环境变量。

3.2.2 单个用户

有了上面的说明,对单个用户永久生效的 环境变量就好理解了,针对我们使用的 Ubuntu 系统,有2种方式添加永久生效的单个用户环境变量。

在这里插入图片描述

这个的测试简单就不上图了,直接修改文件,然后重新打开新的 Shell 终端,可以使用变量,但是切换到另外一个用户,就无法打印。

结语

通过本文的学习,我们对 Linux 下的环境变量有了一个全面的认识,而且通过对环境变量的学习,对我们理解 Shell 的运行有了更深一层的认识。

在我使用的虚拟机 Ubuntu 上的 Shell 脚本执行顺序为:

/etc/profile—>/etc/bashrc—>/etc/profile.d—>~/.profile—>~/.bashrc

本文的重点在于学会添加设置 对所有用户永久生效的 和 对单用户永久生效 的环境变量。

内容不算多,但是也需要好好理解,希望看完大家都能有所收获!ヾ(◍°∇°◍)ノ゙ !

本文就到这里,谢谢大家!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

嵌入式 Linux 入门(七、Linux 下的环境变量) 的相关文章

  • 如何“grep”连续流?

    可以用吗grep在连续的流中 我的意思是有点tail f
  • 即使 makefile 和源代码存在,为什么“Build Project”在 Eclipse Helios CDT 中显示为灰色?

    我无法构建我的项目 我在 Eclipse Helios 中创建了一个新的 CDT 项目 并告诉它使用现有的源代码和 makefile 这两者都正确显示在 Package 和 Project 视图中 然而 项目 菜单中的 构建全部 和 构建项
  • bash双括号问题

    我对 bash 脚本非常陌生 在使用双括号时遇到了问题 我似乎无法让它们在 Ubuntu Server 11 10 中工作 我的下面的脚本位于 if test sh 中 bin bash if 14 14 then echo FOO fi
  • 有关 Linux 内存类型的问题

    关于Linux内存我有以下问题 我知道活动内存是最常访问的内存部分 但是有人可以解释一下 linux 如何考虑将内存位置用于活动内存或非活动内存 主动存储器由哪些部分组成 磁盘 文件缓存是否被视为活动内存的一部分 有什么区别Buffers
  • jpackage linux 创建的桌面文件不足

    我刚刚开始使用 jpackage 它是一个非常棒的工具 只要迈出一步 我的肩上的工作就减轻了很多 我对看起来硬编码且无法定制的东西越感到惊讶 JPackage 自动生成启动器 lib
  • 测试linux下磁盘空间不足

    我有一个程序 当写入某个文件的磁盘空间不足时 该程序可能会死掉 我不确定是否是这种情况 我想运行它并查看 但我的测试服务器不会很快耗尽空间 有什么办法可以嘲笑这种行为吗 看起来没有任何方法可以在 Ubuntu 中设置文件夹 文件大小限制 并
  • Linux TCP服务器:在接受连接之前读取客户端的IP地址

    Related C Winsock API如何在接受连接之前获取连接客户端IP https stackoverflow com questions 716209 c winsock api how to get connecting cli
  • 将 stdout 作为命令行 util 的文件名传递?

    我正在使用一个命令行实用程序 该实用程序需要传递文件名以将输出写入 例如 foo o output txt 它唯一写入的东西stdout是一条消息 表明它运行成功 我希望能够通过管道传输写入的所有内容output txt到另一个命令行实用程
  • 静态链接共享对象?或者损坏的文件?

    我有一个从专有来源获得的库 我正在尝试链接它 但出现以下错误 libxxx so 文件无法识别 文件格式无法识别 Collect2 ld 返回 1 退出状态 确实 ldd libxxx so statically linked 这究竟意味着
  • UDP 广播发送失败:在 Linux 2.6.30 上“网络无法访问”

    我用udp广播写了一个程序 代码段如下 struct sockaddr in broadcast addr socklen t sock len sizeof broadcast addr bzero broadcast addr sock
  • 使用脚本自动输入 SSH 密码

    我需要创建一个自动向 OpenSSH 输入密码的脚本ssh client 假设我需要通过 SSH 进入myname somehost用密码a1234b 我已经尝试过 bin myssh sh ssh myname somehost a123
  • Windows 与 Linux 文本文件读取

    问题是 我最近从 Windows 切换到 Ubuntu 我的一些用于分析数据文件的 python 脚本给了我错误 我不确定如何正确解决 我当前仪器的数据文件输出如下 Header 有关仪器等的各种信息 Data 状态 代码 温度 字段等 0
  • Gradle 1.3:build.gradle 不构建类

    这里有一个新问题 我有一个 build gradle 文件apply plugin java在其中 并与 java 项目 包关联 当我跑步时gradle build从命令行我得到 compileJava UP TO DATE process
  • Linux 中的电源管理通知

    在基于 Linux 的系统中 我们可以使用哪些方法 最简单的方法 来获取电源状态更改的通知 例如 当计算机进入睡眠 休眠状态等时 我需要这个主要是为了在睡眠前保留某些状态 当然 在计算机唤醒后恢复该状态 您只需配置即可获得所有这些事件acp
  • 如何从 Linux 的 shell 中删除所有以 ._ 开头的文件?

    确实如标题所示 我已将许多文件从 Mac 复制到 Raspberry Pi 这导致了许多以前缀开头的多余文件 我想删除以以下开头的文件夹中的每个文件 我该怎么做 尝试类似的方法 cd path to directory rm rf 或者 如
  • 无关的库链接

    我有一个可能有点愚蠢的问题 因为我很确定我可能已经知道答案了 假设你有静态库A 动态共享库B和你的linux下的程序C 假设库 A 调用库 B 中的函数 并且您的程序调用库 A 中的函数 现在假设 C 在 A 中调用的所有函数都不使用 B
  • 如何通过代理将套接字连接到http服务器?

    最近 我使用 C 语言编写了一个程序 用于连接到本地运行的 HTTP 服务器 从而向该服务器发出请求 这对我来说效果很好 之后 我尝试使用相同的代码连接到网络上的另一台服务器 例如 www google com 但我无法连接并从网络中的代理
  • CentOS目录结构是树形的吗?

    CentOS 上有相当于树的东西吗 如果你的 Centos 系统上没有安装 tree 无论如何我通常建议服务器设置使用最小安装磁盘 你应该在命令行中输入以下内容 yum install tree y 如果没有安装 那是因为您没有正确的存储库
  • 如何查明 Ubuntu 上安装了哪个版本的 GTK+?

    我需要确定 Ubuntu 上安装了哪个版本的 GTK 男人似乎不帮忙 这个建议 https stackoverflow com a 126145 会告诉您安装了哪个 2 0 的次要版本 不同的主要版本将具有不同的包名称 因为它们可以在系统上
  • 将数组传递给函数名称冲突

    Specs GNU bash 版本 3 1 17 无法升级 Premise 我一直在摆弄数组 我想知道是否有任何方法可以让函数的本地变量与所述函数外部的数组同名 Example 在下面的示例中 我将尝试显示该问题 Working bin b

随机推荐

  • Java 反射机制(二)

    前言 在上篇 Java 反射机制 一 介绍了一些 Java 反射相关的常用 API 在知道了如何去使用反射之后 作为一个合格的工程师 下一步肯定是要去了解它的如何实现的 我们今天就来看看在 JDK 源码中是如何去实现反射的 PS 以下源码分
  • docker查看mysql日志_如何查看docker运行日志

    查看docker运行日志的方法介绍 docker attach命令 docker attach options 容器会连接到正在运行的容器 然后将容器的标准输入 输出和错误流信息附在本地打印出来 命令中options的取值有三种 detac
  • 护网蓝队(初级)

    护网蓝队 初级 主要是会看各种攻击payload 注意常见的payload 练习各种漏洞的利用方法 学会看利用漏洞的请求长什么样 payload长什么样 payload长什么样 给个请求包 能不能认出来是攻击流量 是的话是什么漏洞的利用 蓝
  • 树09--二叉树的下一个结点

    树09 二叉树的下一个结点 jz57 题目概述 解析 参考答案 注意事项 说明 题目概述 算法说明 给定一个二叉树其中的一个结点 请找出中序遍历顺序的下一个结点并且返回 注意 树中的结点不仅包含左右子结点 同时包含指向父结点的next指针
  • Qt 信号连接多个槽函数 执行顺序

    执行顺序 同一信号连接多个槽呢 槽函数执行没有绝对的先后顺序 如 connect slider QSlider valueChanged spin box QSpinBox setValue connect slider QSlider v
  • 读研期间小论文投稿-个人总结

    我是2014级研究生 学校只是一个普通211 而且工科很弱 导师对我是放养 让我回忆下 上学期就见过她一次 而且她快退休了 没项目没经费没权利 但我觉得跟着她还挺好 因为我可以自己研究自己喜欢的 没人妨碍 但同时导师没有基金 所以我的小论文
  • 两个linux服务器间复制文件

    scp是secure copy的简写 用于在Linux下进行远程拷贝文件的命令 和它类似的命令有cp 不过cp只是在本机进行拷贝不能跨服务器 1 命令格式 scp 参数 原路径 目标路径 2 命令实例 从本地服务器复制到远程服务器 1 复制
  • Vue使用Swiper看这一篇就够了

    Vue使用Swiper看这一篇就够了 此案例实现需求 完成swiper动态异步数据下的slide渲染 自定义分页器样式 解决loop true设置时的事件丢失问题 swiper鼠标移入 移出 暂停 开始轮播 单页面渲染多个swiper组件互
  • 什么是区块链概念

    区块链到底有什么价值 区块链技术被称为价值互联网 大体上原因在于它解决了原有互联网的三个基本问题 第一 区块链通过在数字货币领域的应用 提供了资金流 或者叫资本流 信息在互联网的流动的解决方案 第二 区块链通过加密和分布式账本的引用 解决了
  • 关于Visual Studio 不支持x64 内联汇编分析

    记录一下今天的大坑 实在是有必要记录一下 调程序发现参数在函数传递时 出现了异常的值 已经确认不是指针破坏的问题 用汇编看了下 发现汇编寄存器地址都取错了 在release开启o2优化时出现 关掉又正常 实在是百思不得其解 对于内联汇编 其
  • Mysql根据拼音首字母分组和排序

    最近业务上有个需求 需要根据英文字母展示对应的人名 和我们手机的通讯录差不多 如下图所示 通常如果表设计的时候增加了对应的首字母字段应该很好实现 那如果没加 应该怎么实现呢 图示Sql SELECT name ELT INTERVAL CO
  • Java FileOutputStream类

    文章目录 总结 FileOutputStream类数据结构 FileOutputStream类方法 构造方法 操作方法 总结 FileOutputStream类用于将数据写入文件或文件描述符的输出流 FileOutputStream用于写入
  • 如何查看局域网内所有IP

    要如何查看局域网内正在使用的电脑的IP一共分以下几个步骤 第一步 点击电脑左下角的 开始 然后再点击 运行 第二步 在运行窗口里填入 cmd 然后点击确定 第三步 在cmd命令窗口输入 ipconfig ALL 命令 点击键盘上的回车键 第
  • 2021年字节跳动+京东+美团面试总结!内含福利

    开篇 说一下我大概的情况 渣本毕业 工作已经有快3年了 从高中就开始玩小破站 无论是学习还是日常放松都是在b站 大学主学的软件技术专业 所以 入职bilibili是我大学时期给自己定的小目标 在学校 专业学的算中上的水平 课本知识和老师讲的
  • delphi with do和for do语句

    1 with 对象名 do语句只是为了减少输入的字符 不必每次重复名字 直接写变量 procedure TForm1 Button1Click Sender TObject 正常写法beginedit1 text hello edit1 c
  • J1939协议与CAN2.0对应关系

  • python贪吃蛇小游戏,面向对象设计模式,附带源码以及所需素材

    在python中通过面向对象设计模式来实现一个贪吃蛇小游戏 源码在最下方 上传的资源包内也包括代码源文件以及所需素材等 源文件在game文件夹内 exe文件可直接运行 pygame模块需要自行下载 先来看运行效果图 开始界面 点击按钮开始游
  • Leetcode 括号的分数 -- 栈

    题目描述 leetcode 856 括号的分数 给定一个平衡括号字符串 S 按下述规则计算该字符串的分数 得 1 分 AB 得 A B 分 其中 A 和 B 是平衡括号字符串 A 得 2 A 分 其中 A 是平衡括号字符串 示例 1 输入
  • Go语言学习18-基准测试

    基准测试 引言 基准测试 1 编写基准测试函数 2 计时器 3 内存分配统计 4 基准测试的运行 结语 引言 所谓基准测试 Benchmark Test 简称BMT 是指 通过一些科学的手段实现对一类测试对象的某项性能指标进行可测量 可重复
  • 嵌入式 Linux 入门(七、Linux 下的环境变量)

    嵌入式 Linux 入门第七课 学习理解 linux 的环境变量 矜辰所致 前言 学习完 Linux 的 Shell 命令 和 Shell 脚本 我们还需要理解一个东西 环境变量 理解了 Linux 的环境变量 前面的文章中有些细节的东西