什么是环境变量
环境变量是指在操作系统中用来指定操作系统运行的一些参数:也就是说,操作系统通过环境变量来找到运行时的一些资源。例如链接的时候帮助链接器找到动态库(标准库)或者是执行命令的时候,帮助用户找到命令的位置。
常见的一些环境变量
PATH:指定可执行程序的搜索路径。
我们来看一下“ll”的路径:
HOME:登录到Linux操作系统的用户家目录
shell:当前的命令行解释器,默认是“/bin/bash”
查看当前的环境变量
命令:env
输出的是环境变量名称:环境变量的值(用:进行间隔)。
命令:echo $[环境变量名称]
用来查看单个环境变量对应的值。
环境变量对应的文件
系统级文件:针对各个用户都起作用,root用户有权限修改,强烈不建议修改系统级的环境变量文件,会影响其他用户。
路径:/etc/bashrc
用户级别环境变量文件:只对自己用户的环境变量做出修改,只影响自己。
路径:~/.bashrc以及 ~/.bash_profile
~/.bash_profile中包含了 ~/.bashrc和 /etc/bashrc
修改环境变量
命令范式:export 环境变量名称=$[环境变量名称]:[新添加的环境变量的内容]
先查看一下PATH这个环境变量目前的状态,我们一会儿将对它进行修改:
两种方式修改一下PATH环境变量:
我们是在命令行当中直接进行修改的,这种修改有一个很值得注意的特点,就是它是临时生效的,只在当前终端生效。
在命令行当中修改:如果是新增某个环境变量,可以不要$ [环境变量名称],直接export 环境变量名称=[新添加的环境变量的内容];如果是修改原来的环境变量,必须加上$[环境变量名称],否则之前的环境变量的值就找不到了。
在文件当中修改:修改完后不会立即生效,需要配合source [环境变量文件名称],永久生效。如果是新增某个环境变量,在文件末尾直接添加:export 环境变量名称=[新添加的环境变量的内容];如果是修改原来的环境变量,在原来的后面添加“[新添加的环境变量的内容]”。
在文件当中修改是永久生效的,因为每次登录都会加载环境变量文件。
我们一般执行自己的可执行程序的时候,都是需要在前面加上./的,为什么要这样子呢?因为我们要告诉bash,要执行的可执行程序到底在哪里,./就是告诉bash,执行的可执行程序在当前路径下。那我们可不可以不加./呢?当然可以,只是需要我们将可执行程序的路径配置到PATH环境变量当中。
环境变量的组织方式
环境变量是以字符指针数组的方式进行组织的,最后的元素以NULL结尾。
代码获取环境变量
1、通过main函数来获取
main函数有三个参数,由两部分组成。第一部分是命令行参数:命令行参数的个数、命令行参数的值,也就是前两个参数;第二部分是环境变量的值,也就是第三个参数。
2、用environ获取
3、getenv
char* getenv(const char* name);
参数:环境变量名称
返回值:环境变量的值,没找到返回NULL