说到环境变量,相信这个词不是第一次听到了,在WINDOWS中可能在安装JAVA的过程中也会遇到有配置系统环境变量的相关操作
我们知道在一个操作系统中存在着大量的数据信息,但是我们可以在命令行中输入一条命令,能准确的从计算机中的某个位置找到,并且执行对应命令的进程,计算机的命令行为什么能知道这个命令对应的位置在哪里呢?环境变量就是起到了这么一个全局索引的效果,在linux中使用echo$path可以查看当前系统的环境变量.
当我们在命令行中输入一条命令时,系统会自动从如上图中的目录中寻找这个命令对应的可执行程序,如果找到了,便会运行,这就是环境变量的一个应用场景.
如要添加,可以使用export path=$path+path,来向环境变量中添加路径.
使用env
命令可以查看当前用户系统的所有环境变量.其中包括主机名,解释器的目录,本机的ip地址,以及当前登录的用户名,当前解释器的工作目录等.
提到环境变量,那这里就说一下su - 与su的区别,su - 和su都可以切换至root用户,Su-则是使用root重新登录操作系统,环境变量都会换成root的环境变量,而使用su则是只是切换了身份,路径和环境变量都不会改变.
在C语言中,我们可以使用getenv()系统调用来得到当前用户的环境变量,通过这个来完成一系列编程任务,bash生成的子进程,会继承bash的环境变量,但不会继承bash的本地变量,除了使用get env来获得环境变量,还可以使用二级指针char** envrion,获得环境变量,或者在main函数中加入第三个参数系统的环境变量,会以字符串数组 char*[]的方式传入到这个参数中,供主函数直接使用
标签:linux,su,命令,使用,path,环境变量,bash From: https://www.cnblogs.com/qjwxlj/p/18227156