推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

Linux 环境变量 命令行参数

   2023-07-02 网络整理佚名2070
核心提示:环境变量通常用于存储系统级别的配置信息,例如路径、语言、用户名等。可以使用命令行工具如和set来设置和查看环境变量。本地变量仅在定义它们的代码块内部有效,用于存储临时数据;而环境变量在整个系统中可见,用于存储系统级配置信息。env命令的主要作用是在不同的环境变量下执行命令,或者查看当前进程的环境变量。系统自带的可执行文件通过PATH环境变量,找到文件位置,不需要传入了。

文章目录

问题介绍

在Linux下,为什么我们自己写的可执行文件需要指定路径才可以执行,而系统命令却不需要?

如何让我自己的命令在没有路径的情况下也能执行?

环境变量

Linux环境变量的概念:

Linux 环境变量是存储在操作系统中的一个值,用于控制应用程序的行为。 环境变量可以在系统启动时设置,也可以在运行时动态设置。 环境变量常用于存储系统级的配置信息,如路径、语言、用户名等。在Linux系统中,环境变量以键值对的形式存在,键是变量的名称,该值是变量的内容。 可以使用 和 set 等命令行工具来设置和查看环境变量。 应用程序可以通过读取环境变量来获取配置信息来实现不同的行为。

容易明白:

类似于语言学习中的变量int a = 1; a 是一个变量,

1 是当前存储在变量中的值。 在操作系统的学习中,存在着很多变数。 变量的性质不同,作用也不同。 到处都有变数。 顾名思义,环境变量与程序执行的环境有关。 问题涉及到环境变量的问题。

常见/需要了解的环境变量:

PATH :指定命令的搜索路径

HOME:指定用户的主工作目录(即用户登录Linux系统时的默认目录)

SHELL :当前的Shell,其值通常为/bin/bash。

环境变量相关操作(附源码)

如何查看环境变量:

方法一、二、三:

运行结果:

方法4:echo $NAME //NAME:你的环境变量名称。

局部变量和环境变量

在Linux中,局部变量(local)和环境变量()是两种不同类型的变量,它们具有不同的作用域和生命周期。

行动范围:

生命周期:

设置和访问:

使用:

简而言之,局部变量和环境变量在作用域、生命周期、设置和访问方法、用途等方面有所不同。 局部变量仅在定义它们的代码块内有效,用于存储临时数据; 而环境变量在整个系统中都是可见的,用于存储系统级配置信息。

环境指令

在Linux中,env是一个命令行工具,用于显示当前进程的环境变量或在指定环境中执行给定的命令。

env 命令有两种常见用法:

显示当前进程的环境变量:

$ env

这列出了当前进程的所有环境变量及其对应的值。 输出格式为key=value格式。

在指定的环境中执行给定的命令:

$ env -i <key1>=<value1> <key2>=<value2> ... <command>

这将在指定的环境变量下执行给定的命令。 可以通过-i选项清除当前环境变量,然后可以通过=的形式设置新的环境变量。 最后,指示要执行的命令。

例如,要在清除环境变量的情况下执行 ls 命令,可以使用以下命令:

$ env -i ls

如果要执行指定环境变量的命令,可以使用以下命令:

$ env VAR1=value1 VAR2=value2 <command>

例如,要在设置PATH环境变量后执行ls命令,可以使用以下命令:

$ env PATH=/usr/local/bin ls

env命令的主要作用是在不同的环境变量下执行命令,或者查看当前进程的环境变量。 它经常用在脚本中来控制命令执行的环境,或者作为调试工具来检查环境变量的设置。

您可以通过 man env 命令查看 env 命令的更多详细信息和选项。

功能

在Linux中,()是一个C语言函数,用于获取指定环境变量的值。

()函数的原型如下:

#include 
char *getenv(const char *name);

该函数接受一个字符串参数名称,表示要获取的环境变量的名称。 它返回一个指向环境变量值字符串的指针,如果找不到指定的环境变量,则返回 NULL。

下面是使用 () 函数的示例:

#include 
#include 
int main() {
    char *path = getenv("PATH");
    if (path != NULL) {
        printf("PATH: %s\n", path);
    } else {
        printf("PATH environment variable not found\n");
    }
    return 0;
}

在本例中,我们使用 () 函数获取名为 PATH 的环境变量的值并将其存储在路径指针变量中。 然后,我们根据返回值判断环境变量是否已经成功获取,并打印出相应的结果。

需要注意的是,()函数返回的字符串指针指向环境变量的内部存储空间,所以不要尝试修改返回的字符串。 如果需要修改环境变量的值,应该使用相关函数,如()或()。

另外,()函数是标准C库提供的函数,定义在头文件中。 在使用()函数之前需要包含这个头文件。

临时环境变量创建(生命周期就是这次连接Linux)

变量名=变量值

局部变量创建(生命周期在此文件中)

变量名=变量值

命令行参数

argc的含义是指针数组argv中包含的字符串数量。

argv 是接受命令选项的指针数组

env 是接受环境变量的指针数组

argv和argc可以标准化命令的格式,并且可以支持命令的多个选项。

以上3个参数是bash辅助输入(第一阶段粗略理解)

问题解释

在Linux下,为什么我们自己写的可执行文件需要指定路径才可以执行,而系统命令却不需要?

1.默认情况下,子进程会继承父进程的环境变量。 十元的环境变量来自bash,bash的环境变量来自系统文件;

2、我们执行的命令都是在进程中执行的;

3、比如PATH HOME环境变量几乎存在于每个进程中;

4、系统自带的可执行文件可以通过PATH环境变量找到文件位置,不需要传入。

如何让我自己的命令在没有路径的情况下也能执行?

1 通过将我们自定义文件的路径添加到PATH环境变量中

2、PATH变量存储多个系统程序自带的路径,多个路径之间用“:”符号分隔。 如果要添加的话,需要按照这个格式。

3.使用set命令set PATH=PATH+:设置的路径;

(错误使用指令不会造成损失,只需重新连接Linux系统即可,需要在配置文件中操作永久更改,但不建议这样做)

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON