返回顶部
首页 > 资讯 > 操作系统 >浅谈Linux环境变量与系统编程
  • 168
分享到

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

Linux环境变量Linux系统编程 2023-05-06 10:05:25 168人浏览 八月长安
摘要

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

目录
  • 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环境变量与系统编程内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

      --结束END--

      本文标题: 浅谈Linux环境变量与系统编程

      本文链接: https://lsjlt.com/news/202005.html(转载时请注明来源链接)

      有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

      猜你喜欢
      • 浅谈Linux环境变量与系统编程
        目录1、基本概念:2、环境变量的操作:(1)、对于环境变量的基本操作命令如下:(2)、如何使得修改长期有效,并且不会覆盖原有路径?3、环境变量与环境表:4、如何用函数来对环境变量修改?1、基本概念: 环境变量(envir...
        99+
        2023-05-06
        Linux环境变量 Linux系统编程
      • 浅谈Linux环境变量文件介绍
        在linux系统中,环境变量按照其作用范围不同大致可以分为系统级环境变量和用户级环境变量。 系统级环境变量:每一个登录到系统的用户都能够读取到系统级的环境变量 用户级环境变量:每一个登录到系统的用户只能够读取属...
        99+
        2022-06-04
        Linux环境变量文件 Linux环境变量
      • Linux系统如何添加环境变量
        小编给大家分享一下Linux系统如何添加环境变量,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.查看当前环境变量 echo $PATH2.添加临时环境变量 export PATH=...
        99+
        2023-06-28
      • Linux系统怎么修改环境变量
        本篇文章为大家展示了Linux系统怎么修改环境变量,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、在/etc/profile文件中添加变量【对所有用户生效(永久的)】  用VI在文件/e...
        99+
        2023-06-28
      • Linux系统如何配置环境变量
        这篇文章将为大家详细讲解有关Linux系统如何配置环境变量,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。环境变量简介:环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的...
        99+
        2023-06-28
      • linux如何添加系统环境变量
        要在Linux中添加系统环境变量,可以按照以下步骤进行:1. 打开终端。2. 使用编辑器打开`~/.bashrc`文件,可以使用以下...
        99+
        2023-08-23
        linux
      • linux怎么编辑环境变量
        要编辑Linux的环境变量,可以按照以下步骤进行操作: 打开终端。 使用以下命令打开环境变量文件(通常为`.bashrc`或`.b...
        99+
        2023-10-26
        linux
      • Linux系统如何配置java环境变量
        这篇文章将为大家详细讲解有关Linux系统如何配置java环境变量,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、卸载系统自带java版本java -version查看Linux是否自带装了openjd...
        99+
        2023-06-28
      • Linux系统中如何配置环境变量
        这篇文章给大家分享的是有关Linux系统中如何配置环境变量的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux环境变量配置在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法。下面...
        99+
        2023-06-28
      • Linux系统如何设置QT环境变量
        本文将为大家详细介绍“Linux系统如何设置QT环境变量”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“Linux系统如何设置QT环境变量”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一...
        99+
        2023-06-28
      • Linux系统如何配置ijdk环境变量
        这篇文章主要介绍Linux系统如何配置ijdk环境变量,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、登录虚拟机进入终端切换到root用户,输入:su 接着输入密码 再输入:cd &hellip; 回到ro...
        99+
        2023-06-28
      • Linux如何添加mysql系统环境变量
        目录linux添加mysql系统环境变量添加环境变量有2种方法修改linux下mysql环境变量总结Linux添加mysql系统环境变量 昨天安装完mysql后,直接在export PATH上面一行,增加了export ...
        99+
        2023-04-07
        Linux mysql环境变量 Linux环境变量 mysql环境变量
      • Linux怎么添加mysql系统环境变量
        这篇文章主要讲解了“Linux怎么添加mysql系统环境变量”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux怎么添加mysql系统环境变量”吧!Linux添加mysql系统环境变量昨...
        99+
        2023-07-05
      • 怎么设置与查看Linux系统中的环境变量
        这篇文章主要介绍了怎么设置与查看Linux系统中的环境变量,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。环境变量环境变量是以键值对的形式实现的,是在整个系统范围内都可用的变量...
        99+
        2023-06-15
      • Mac系统 - Mac的环境变量
        环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,即指明操作系统的重要目录在哪里。如:临时文件夹位置和系统文件夹位置等。 对于现在的mac来说,因为默认使用zsh作为shell,...
        99+
        2023-09-02
        macos java Powered by 金山文档
      • Linux Shell脚本系列教程(三):变量和环境变量
        一、玩转变量和环境变量 变量是任何一种编程语言都必不可少的组成部分,用于存放各种类型的变量。脚本语言大多是弱类型语言(动态语言),也就是说在使用变量时,不需要事先声明变量的类型,只需要直接赋值就可以。在Ba...
        99+
        2022-06-04
        变量 脚本 环境变量
      • Linux系统中如何设置java环境变量
        Linux系统中如何设置java环境变量,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。查看java的安装路径查看java执行路径配置java环境变量java的安装路径和执行...
        99+
        2023-06-12
      • Linux系统如何设置环境变量命令
        这篇“Linux系统如何设置环境变量命令”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“Linux系统如何设置环境变量命令”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来...
        99+
        2023-06-28
      • Linux系统中如何修改环境变量PATH
        本篇文章为大家展示了Linux系统中如何修改环境变量PATH,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  要检查用户的环境变量,用户模式下运行下面的命令:  $ echo $PATH  /usr...
        99+
        2023-06-13
      • Linux进程学习【环境变量】
        ✨个人主页: Yohifo 🎉所属专栏: Linux学习之旅 🎊每篇一句: 图片来源 🎃操作环境: CentOS 7.6 阿里云远程服务器 Per...
        99+
        2023-09-02
        linux 学习 centos 运维 服务器
      软考高级职称资格查询
      编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
      • 官方手机版

      • 微信公众号

      • 商务合作