我的编程空间,编程开发者的网络收藏夹
学习永远不晚

浅谈Linux环境变量与系统编程

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

浅谈Linux环境变量与系统编程

目录
  • 1、基本概念:
  • 2、环境变量的操作:
    • (1)、对于环境变量的基本操作命令如下:
    • (2)、如何使得修改长期有效,并且不会覆盖原有路径?
  • 3、环境变量与环境表:
    • 4、如何用函数来对环境变量修改?

      1、基本概念:

      环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数。
      系统环境变量有多种多样,比如:

      • PATH:指定可执行程序的搜索路径(命令也属于程序)
      • LD_LIBRARY_PATH:指定动态库的搜索路径

      举个简单的例子:

      浅谈Linux环境变量与系统编程

      我们查看PATH这个变量,可以发现该目录下有许多路径(每个路径用冒号(:)分隔),其中包括shell命令目录。若果我们将/bin这个路径从PATH中删除掉,那么ls就不能直接使用了,而必须在命令行下输入:/bin/ls,所以为了方便,将shell命令这种可执行文件的路径加入到PATH变量中来,就可以实现不带路径执行。那么带路径也是同样的效果,如下所示(虽然我们在根目录下,但是依旧可执行/bin目录下的ls,就是因为PATH中存在/bin默认路径):

      浅谈Linux环境变量与系统编程

      2、环境变量的操作:

      (1)、对于环境变量的基本操作命令如下:

      echo        //显示某个环境变量值
      export      //设置一个新的环境变量
      env         //显示所有环境变量
      set         //显示本地定义的shell变量
      unset       //清除环境变量
      readonly    //设置只读环境变量

      echo我们在上面用过了,而export则是为一个环境变量修改新的内容,我们经常在动态库制作时会这样写:export LD_LIBRARY_PATH=.,就是将当前路径设置为动态库的搜索路径的环境变量中。注意:export只能在当前shell下生效,登出重新启动shell就失效了。

      举例如下:

      浅谈Linux环境变量与系统编程

      当我们编写一个“Hello PATH!”的打印程序时,编译完成,在运行时需要加上./path_test,而不是直接像ls那样不带路径运行path_test,因为当前目录不在PATH中,而当我们将当前目录加到PATH变量中export PATH=. 时再运行path_test就可以执行了。

      但是当我们CTRL+D退出,再重新登录时,修改已经不再生效了,如下:

      浅谈Linux环境变量与系统编程

      并且,export有个缺点:export为修改,而不是增加。它会将原有的路径完全删除,使得当前shell下不能使用基本命令,如下:

      浅谈Linux环境变量与系统编程

      (2)、如何使得修改长期有效,并且不会覆盖原有路径?

      方法如下(修改配置文件.bashrc):

      ①回到当前用户家目录
      ②ls -a
      ③vim .bashrc
      ④重启shell后生效

      浅谈Linux环境变量与系统编程

      浅谈Linux环境变量与系统编程

      注意:“export PATH=$PATH:.”千万不能写错,写错有可能导致基本的ls等命令不能使用,而且你的vim、vi都不能使用(其实是可以用的,下面再说)!!但是,只有出错,才会使得记忆更加深刻,在我第一次修改时,我就写错了(←_←)。那怎样解决呢?

      方法一:重新设置PATH

      PATH=/bin:/usr/bin 
      cd
      vim .bashrc        

      方法二

      既然明白方法一,那么方法二就自然而然容易明白了:
      操作如下:

      cd
      /usr/bin/vim .bashrc
      修改.bashrc文件即可

      3、环境变量与环境表:

      所有的环境变量在程序中通过环境表获取;环境表是一个全局变量,类型为字符串数组指针(二级指针),以NULL结束,获取方式为:

      extern char ** environ;//envioron存储环境表的首地址

      举例说明:

      
      # include<stdio.h>
      # include<string.h>
      int main(void)
      {
          extern char ** environ;
          char ** p = environ;
          while(*p){
              printf("%s\n",*p);
              p++;
          }
          return 0;
      }

      那么如何取得某一个特定的环境变量,如PATH呢?

      # include<stdio.h>
      # include<string.h>
      int main(void)
      {
          extern char ** environ;
          char ** p = environ;
          while(*p){
              if(strncmp(*p,"PATH=",5) == 0){
                 
      

      我们还有一种方式来获取环境表:

      #include<stdio.h>
      #include<stdlib.h>
      
      int main(int argc, char ** argv, char ** env)
      {
          
          extern char ** environ;
          printf("env=%p\nenviron=%p
      

      这几个程序就不测试了,编译运行即可观察

      4、如何用函数来对环境变量修改?

      函数如下:

      #include<stdlib.h>
      char * getenv(const char * name);
      
      int putenv(char * string);
      
      int setenv(const char * name,const char *value,int overwrite);
      
      int unsetenv(const char * name);
      int clearenv(void);

      基本测试:

      #include<stdio.h>
      #include<stdlib.h>
      int main(void)
      {
          extern char ** environ;
          char * path_value = getenv("PATH");
          printf("PATH=%s\n",path_value);
          
          putenv("KANGRUOJIN=123456789");
          printf("KANGRUOJIN=%s\n",getenv("KANGRUOJIN"));
          putenv("KANGRUOJIN=987654321");
          printf("KANGRUOJIN=%s\n",getenv("KANGRUOJIN"));
          setenv("KANGRUOJIN","ABCDEFG",0);
          printf("KANGRUOJIN=%s\n",getenv("KANGRUOJIN"));
          setenv("KANGRUOJIN","GFEDCBA",1);
          printf("KANGRUOJIN=%s\n",getenv("KANGRUOJIN"));
          return 0;
      }

      结果如下:

      浅谈Linux环境变量与系统编程

      到此这篇关于浅谈linux环境变量与系统编程的文章就介绍到这了,更多相关Linux环境变量与系统编程内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

      免责声明:

      ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

      ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

      浅谈Linux环境变量与系统编程

      下载Word文档到电脑,方便收藏和打印~

      下载Word文档

      猜你喜欢

      浅谈Linux环境变量与系统编程

      目录1、基本概念:2、环境变量的操作:(1)、对于环境变量的基本操作命令如下:(2)、如何使得修改长期有效,并且不会覆盖原有路径?3、环境变量与环境表:4、如何用函数来对环境变量修改?1、基本概念: 环境变量(environment var
      2023-05-06

      浅谈Linux环境变量文件介绍

      在linux系统中,环境变量按照其作用范围不同大致可以分为系统级环境变量和用户级环境变量。系统级环境变量:每一个登录到系统的用户都能够读取到系统级的环境变量用户级环境变量:每一个登录到系统的用户只能够读取属于自己的用户级的环境变量 自然而然
      2022-06-04

      Linux系统如何配置环境变量

      这篇文章将为大家详细讲解有关Linux系统如何配置环境变量,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。环境变量简介:环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的
      2023-06-28

      Linux系统如何添加环境变量

      小编给大家分享一下Linux系统如何添加环境变量,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.查看当前环境变量 echo $PATH2.添加临时环境变量 export PATH=/usr/local/bin:$PATH
      2023-06-28

      linux如何添加系统环境变量

      要在Linux中添加系统环境变量,可以按照以下步骤进行:1. 打开终端。2. 使用编辑器打开`~/.bashrc`文件,可以使用以下命令打开文件:```vi ~/.bashrc```3. 在文件的末尾添加一个新的环境变量,例如:```exp
      2023-08-23

      Linux系统怎么修改环境变量

      本篇文章为大家展示了Linux系统怎么修改环境变量,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、在/etc/profile文件中添加变量【对所有用户生效(永久的)】 用VI在文件/etc/pr
      2023-06-28

      Linux环境变量与动态链接关系

      Linux环境变量与动态链接关系密切,其中LD_LIBRARY_PATH环境变量尤为重要,它指定了动态链接器在运行时查找共享库的路径。环境变量对动态链接的影响动态链接库的搜索路径:动态链接库(共享库)是在程序运行时加载的,系统会根据LD_
      Linux环境变量与动态链接关系
      2024-09-24

      Linux怎么添加mysql系统环境变量

      这篇文章主要讲解了“Linux怎么添加mysql系统环境变量”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux怎么添加mysql系统环境变量”吧!Linux添加mysql系统环境变量昨
      2023-07-05

      Linux系统中如何配置环境变量

      这篇文章给大家分享的是有关Linux系统中如何配置环境变量的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux环境变量配置在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法。下面
      2023-06-28

      Linux系统如何配置ijdk环境变量

      这篇文章主要介绍Linux系统如何配置ijdk环境变量,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、登录虚拟机进入终端切换到root用户,输入:su 接着输入密码 再输入:cd … 回到root用户
      2023-06-28

      Linux如何添加mysql系统环境变量

      目录linux添加mysql系统环境变量添加环境变量有2种方法修改linux下mysql环境变量总结Linux添加mysql系统环境变量昨天安装完mysql后,直接在export PATH上面一行,增加了exportACETyitCf P
      2023-04-07

      Linux系统如何设置QT环境变量

      本文将为大家详细介绍“Linux系统如何设置QT环境变量”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“Linux系统如何设置QT环境变量”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一
      2023-06-28

      Linux系统如何配置java环境变量

      这篇文章将为大家详细讲解有关Linux系统如何配置java环境变量,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、卸载系统自带java版本java -version查看Linux是否自带装了openjd
      2023-06-28

      怎么设置与查看Linux系统中的环境变量

      这篇文章主要介绍了怎么设置与查看Linux系统中的环境变量,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。环境变量环境变量是以键值对的形式实现的,是在整个系统范围内都可用的变量
      2023-06-15

      Linux环境变量与程序启动顺序

      在Linux系统中,环境变量是一种存储系统设置的方法,这些设置可以被 shell 或其他程序使用程序启动顺序通常遵循以下步骤:用户登录:用户输入用户名和密码进行登录。启动 shell:登录成功后,shell 会被启动。shell 是一个命
      Linux环境变量与程序启动顺序
      2024-09-25

      Linux环境变量与程序执行路径

      在Linux系统中,环境变量是一种存储系统设置的方法,这些设置可以被shell或操作系统中的其他程序使用当程序执行时,它需要知道从哪里找到所需的库和可执行文件。这就是程序执行路径的作用。程序执行路径通常包括以下几个部分:系统路径(Syst
      Linux环境变量与程序执行路径
      2024-09-25

      Linux Shell脚本系列教程(三):变量和环境变量

      一、玩转变量和环境变量 变量是任何一种编程语言都必不可少的组成部分,用于存放各种类型的变量。脚本语言大多是弱类型语言(动态语言),也就是说在使用变量时,不需要事先声明变量的类型,只需要直接赋值就可以。在Bash中,每一个变量的值都是字符串。
      2022-06-04

      Linux系统中如何设置java环境变量

      Linux系统中如何设置java环境变量,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、查看java的安装路径2、查看java执行路径3、配置java环境变量4、java
      2023-06-12

      Linux系统如何设置环境变量命令

      这篇“Linux系统如何设置环境变量命令”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“Linux系统如何设置环境变量命令”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来
      2023-06-28

      Linux系统中如何修改环境变量PATH

      本篇文章为大家展示了Linux系统中如何修改环境变量PATH,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  要检查用户的环境变量,用户模式下运行下面的命令:  $ echo $PATH  /usr
      2023-06-13

      编程热搜

      目录