一:环境变量
1.1:概念
小黑:大家在windows上配置过环境变量吗?
是不是感觉很神奇呢?
-
环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数
-
还有在系统当中通常具有全局特性
小辉: 请看下列环境变量的特征
- 1.字符串(本质)
- 2.有统一的格式名=(值)
- 3.值用来描述进程环境信息
环境变量是一个键值对结构: 键:变量 值:变量内容
- env 查看到系统上所有的环境变量
1.2:常见环境变量
小黑:请大家看一下常见的几种环境变量的使用
- PATH : 指定命令的搜索路径
使用格式:echo $PATH
- 与其作用相似
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
int main(){
char *result =getenv("PATH");
printf("%s\n",result);
return 0;
}
- HOME : 指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)
使用格式: echo $HOME
- SHELL : 当前Shell,它的值通常是/bin/bash
使用格式: echo $ SHELL
- LANG :当前使用的语言
使用格式: echo $LANG
小黑:main函数有三种形式你知道吗?
1.没有参数
2.main(int argc, char *argv[])
3.main(int argc,char *argv[],char *env[])
//参数argc:指明参数的个数
//参数argv:相当于参数的列表
//env也是一种字符串数组,当前的环境变量都有啥
通过main函数的第三个参数就能够获取到当前的环境变量
- argc和argv的验证程序
#include<stdio.h>
#include<unistd.h>
int main(int argc,char* argv[]){
printf("argc:%d\n",argc);
int i=0;
for(;i<argc;i++){
printf("%s\n",argv[i]);
}
return 0;
}
- 运行结果
- 对参数env的验证程序
#include<stdio.h>
#include<unistd.h>
int main(int argc,char* argv[],char *env[]){
printf("argc:%d\n",argc);
int i=0;
for(;env[i]!=NULL;i++){
printf("%s\n",env[i]);
}
return 0;
}
- 运行结果
1.3:查看环境变量的命令
小黑:让我告诉大家几种查看环境变量的方法吧
- 打印环境变量表
#include<stdio.h>
extera char** environ;
int main(){
int i=0;
for(;environ[i];i++){
printf("%s\n",environ[i]);
}
return 0;
}
echo $NAME //NAME:你的环境变量名称
例如: echo $ PATH :查看PATH路径
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
int main(int argc,char *argv[],char *env[]){
(void)argc;
(void)argv;
(void)env;
char* result = getenv("PATH");
printf("%s \n",result);
return 0;
}
//也可以获得与echo $PATH 相同的结果
- 运行结果
或者echo $ HOME:普通模式下查看到的是用户的家目录,root模式下查看到的是 root
1.4:Linux上修改环境变量
小辉:那么如何在Linux上通过命令来修改
环境变量呢?
pwd
- 查看当前目录的绝对路径
echo ${PATH}
export PATH=$PATH:+pwd的结果
echo $PATH
- 此时所看到的结果为你设置后的结果
小黑:这只是暂时的改变了环境变量,
重启终端就可以恢复
如果想要永久的修改,还需要如下
操作
修改这个文件 ~ /. bashrc 能够让环境变量持久生效(rc:运行时控制)
【操作步骤】
- 1.vim ~/.banshrc
- 2.添加export PATH=$PATH:+所要添加的目录
- 3.重连终端,就会生效
1.5:和环境变量相关的命令
- 1.echo: 显示某个环境变量值[重点]
- 2.export: 设置一个新的环境变量[重点]
- 3.env: 显示所有环境变量[重点]
- 4.unset: 清除环境变量
- 5.set: 显示本地定义的shell变量和环境变量
1.6:Linux 上查看环境变量的命令:env
- env : 查看系统上所有的环境变量
- 2.echo $ {环境变量名} 查看某个环境变量
- 3.export 修改环境变量,对于PATH 修改一般只是进行追加,不会把原来内容(路径)去掉
指令格式:export PATH=$PATH:/home/jack/a(将PATH路径与/home/jack/a进行了拼接)
可以通过重启终端来恢复PATH
PATH:shell中敲下的指令,去哪些目录中查找对应的可执行程序