Linux环境变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux环境变量相关的知识,希望对你有一定的参考价值。
什么是Linux的环境变量啊?
设置这个变量有什么作用呢?
是不是Linux的启动顺序是什么啊?我echo $PATH查看到的路径就是启动时候后会开启的嘛?
这几个问题我纠结了很久,请帮忙解答,谢谢啦!
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
说明在这些(用:分开的)目录里包含的了你的(还有系统的)命令,你只需要在终端里输入命令的名字(比如ls)就可以执行命令,而不是输入/bin/ls来执行它。
但如果你想要执行/opt里的xkin命令的话,直接在终端里输入xkin是不行的,因为/opt没在PATH里,而是应该输入/opt/xkin来执行xkin这个程序。
---------------------
想把/opt加入到PATH里的话可以通过修改/etc/profile或 ~/.profile来实现,具体的做法可以自己到网上搜。 参考技术A LZ可以输入 env 这个命令看一下。 环境变量不只局限于PATH,所谓的PATH只是shell进行寻找命令时所用到的路径,这个你完全可以改,当然建议是不要乱改。环境变量有很多,比如你的历史命令长度(即记录多少条你曾经输入过的命令,默认是1000),开机时启用的服务,总之进入shell时所需的设置都在这里面。 而Linux的启动顺序。。。似乎所有的系统启动顺序都是一样的吧,先是读取引导扇区,然后加载内核,然后就进入系统了
LZ难道没系统的学一下么?可以看看《鸟哥的Linux私房菜》,讲的还不错的 参考技术B 环境变量,就是你使用一个账户登录时,系统给你产生的一个登录环境里面的一些设置。比如你用管理员root登录,系统给的环境就是全权限模式,所有的命令都能用。你用一个普通账号登录,权限就会很小。 参考技术C 这说明你练linux是什么都不知道
好好把一本linux书看完再来提问吧
Linux_环境变量(添加删除修改)_(命令获取)
Windows下的环境变量
文章目录
1.环境变量概念
环境变量:一般是指在操作系统中用来指定操作系统运行环境的一些参数
如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。
环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性
2.Linux下的环境变量
当我们生成可执行程序时,想要运行必须指定运行路径。但是像Linux下的命令如ls可以不指定运行路径
如上图,自己的可执行程序与系统的ls命令都是可执行程序。
其原因是是有相关环境变量帮助编译器进行查找。
常见的环境变量的查看(PATH,HOME,SHELL)
HOME的查看
echo $HOME
标记的了系统登录的初始目录,不同用户的HOME不同
SHELL的查看
echo $SHELL
查看系統命令行命令行解释器的种类
centos中为bash
PATH的查看
echo $PATH
在输入ls时会查找PATH中的路径,因为ls路径在PATH中所以可以不加路径。这些路径之间以:相隔
所以如果想让自己生成的可执行程序可以直接执行
方法一:
可以将其放到PATH中的目录文件夹中
测试后要记得在路径下删除这个可执行程序,否则会污染工具集
导入环境变量(export)
方法二:
将当前可执行程序路径导入到环境变量中
eg:将路径导入到PATH中
export PATH=$PATH:路径…
这里表示环境变量PATH值为原来PATH值+路径
因为PATH中以:相隔
export PATH=路径
则表示PATH中只有一条路径,原来的PATH值没有在新PATH中
如上图,此时PATH中只有一条路径,此时ls也必须加路径才可以运行
此时重新登录云服务器PATH会恢复
linux环境变量全查看(env)
3.Linux下创建环境变量(export)
export + 变量名=变量值
注意:如果不加export
变量名=变量值
此时这个变量称为本地变量,本地变量只能在本进程(bash)中使用
export+本地变量名就可以将本地变量变为环境变量
环境变量可以被其他进程获取
Linux下取消添加的环境变量(unset)
unset+变量名
4.通过代码获得Linux中的环境变量
命令行参数
如上图argv与envp都是指针数组,argv的大小为argc个,envp数组存放的是指向环境变量的指针
发现运行时跟不同的后缀,argv不同
其中-a -b -c称为命令行参数,其被保存到argv这个指针数组中
1 #include<stdio.h>
2
3 #include<string.h>
4
5 int main(int argc,char*argv[],char*envp[])
6 {
7 if(argc==1)
8 {
9 printf("Hello Linux -NULL\\n");
10 }
11 else
12 {
13 if(strcmp(argv[1],"-a")==0)
14 {
15 printf("Hello Linux -a\\n");
16 }
17 else if(strcmp(argv[1],"-b")==0)
18 {
19 printf("Hello Linux -b\\n");
20 }
21 else
22 {
23 printf("Hello Linux -else\\n");
24 }
25 }
26
27 return 0;
28 }
运行结果为
代码查看环境变量信息
验证:
environ获取环境变量
environ是定义在C语言库的全局变量,使用时要extern声明
运行结果为环境变量的值
以上是关于Linux环境变量的主要内容,如果未能解决你的问题,请参考以下文章