Linux系统环境变量-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

Linux系统环境变量

1. 环境变量

在这里插入图片描述

在Linux系统中常用的关键信息以键值对Key=Value的形式例如name=“buddha”存储在环境变量配置文件中随着系统启动用户登录加载到进程中该进程及子进程都可以使用该全局变量这称为环境变量。可以用env或printenv命令查看环境变量。

用户环境变量配置文件配置文件加载顺序
root、普通用户/etc/environment1
/etc/profile2
/etc/profile.d/*.sh3
/etc/bashrc4
root~/.bash_profile5
~/.bashrc6
普通用户~/.bash_profile5
~/.bashrc6

**注意**配置文件中存在同名环境变量后面的变量会覆盖前面的变量。

1.1 定义环境变量

环境变量就是在全局变量的基础上用export命令导出。通常环境变量应该大写。

语法

export 变量名=变量值

示例

export MYNAME="buddha"

1.2 使用环境变量

语法

$变量名

${变量名}

示例

echo $MYNAME

echo ${MYNAME}helloworld

2. 环境变量作用

以PATH环境变量为例

2.1 PATH

记录了系统执行任何命令的搜索路径

[root@hecs-141089 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

路径之间以:隔开path变量里记录了以下搜索路径

  • /usr/local/sbin
  • /usr/local/bin
  • /usr/sbin
  • /usr/bin
  • /root/bin

命令本质上是一个有可执行权限x的普通文件

[root@hecs-141089 ~]# which pwd
/usr/bin/pwd
[root@hecs-141089 ~]# ll /usr/bin | grep pwd
-rwxr-xr-x  1 root root   38280 Jul 14  2021 pwd
-rwxr-xr-x  1 root root   12992 Feb  2  2021 pwdx

普通文件的执行需要定位到该文件才能够执行

[root@hecs-141089 ~]# /usr/bin/pwd
/root

但是为什么pwd命令没有用相对路径或绝对路径定位pwd就可以在任意目录去执行呢

[root@hecs-141089 ~]# pwd
/root
[root@hecs-141089 home]# pwd
/home
[root@hecs-141089 profile.d]# /usr/bin/pwd
/etc/profile.d

那是因为执行任何命令的时候都会从path环境变量所记录的搜索路径中按顺序查找有可执行权限的pwd文件找到了就拼上路径执行该文件。

/usr/local/sbin
/usr/local/bin
/usr/sbin
# /user/bin + /pwd
/usr/bin/pwd
/root/bin

所以安装的程序可执行普通文件命令需要在PATH环境变量里。或者修改PATH环境里搜索路径。

**备注**命令本质是一个有可执行权限的普通文件把命令文件全路径补齐一样哪里都可以执行。例如/usr/bin/pwd

3. 设置环境变量

3.1 设置系统级环境变量

系统级环境变量作用域是整个系统

# /etc/profile.d/{文件名.sh} 新建并打开配置文件
vim /etc/profile.d/python.sh

# 文件末尾加变量定义
export MYNAME="buddha"

# 重载配置文件
source /etc/profile.d/python.sh

# 终端使用变量
echo $MYNAME

3.2 设置用户级环境变量

用户级环境变量作用域是当前用户

# 打开配置文件
vim ~/.bash_profile

# 文件末尾加变量定义
export MYNAME="buddha"

# 重载配置文件
source ~/.bash_profile

# 终端使用变量
echo $MYNAME

3.3 设置临时环境变量

临时环境变量作用域只在当前shell会话窗口

# 定义变量
export MYNAME="buddha"

# 使用变量
echo $MYNAME
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: linux