linux配置环境变量,及PATH=$PATH中的PATH是什么意思和有些地方说的$PATH可以跟前或者跟后的原因

一、Shell 变量

定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:

1
2
your_name="runoob.com"
1

使用变量
使用一个定义过的变量,只要在变量名前面加美元符号即可,如:

1
2
3
4
your_name="qinjx"
echo $your_name
echo ${your_name}
123

变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:

1
2
3
4
for skill in Ada Coffe Action Java; do
echo "I am good at ${skill}Script"
done
123

如果不给skill变量加花括号,写成echo “I am good at s k i l l S c r i p t “ , 解 释 器 就 会 把 skillScript”,解释器就会把skillScript“,解释器就会把skillScript当成一个变量(其值为空),代码执行结果就不是我们期望的样子了。

推荐给所有变量加上花括号,这是个好的编程习惯。

二、Linux读取环境变量

读取环境变量的方法:

export命令显示当前系统定义的所有环境变量
echo $PATH命令输出当前的PATH环境变量的值
这两个命令执行的效果如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
uusama@ubuntu:~$ export
declare -x HOME="/home/uusama"
declare -x LANG="en_US.UTF-8"
declare -x LANGUAGE="en_US:"
declare -x LESSCLOSE="/usr/bin/lesspipe %s %s"
declare -x LESSOPEN="| /usr/bin/lesspipe %s"
declare -x LOGNAME="uusama"
declare -x MAIL="/var/mail/uusama"
declare -x PATH="/home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
declare -x SSH_TTY="/dev/pts/0"
declare -x TERM="xterm"
declare -x USER="uusama"

uusama@ubuntu:~$ echo $PATH
/home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
123456789101112131415

其中PATH变量定义了运行命令的查找路径,以冒号:分割不同的路径,使用export定义的时候可加双引号也可不加。

二、export 命令用于设置或显示环境变量。

在 shell 中执行程序时,shell 会提供一组环境变量。export 可新增,修改或删除环境变量,供后续执行的程序使用。

推荐Linux环境变量配置方法五

仅对当前用户有效

Linux环境变量配置方法一:

export PATH

使用export命令直接修改PATH的值,配置MySQL进入环境变量的方法:

1
2
export PATH=/home/uusama/mysql/bin:$PATH
1

#或者把PATH放在前面

1
2
export PATH=$PATH:/home/uusama/mysql/bin
1

注意事项:

生效时间:立即生效
生效期限:当前终端有效,窗口关闭后无效
生效范围:仅对当前用户有效
配置的环境变量中不要忘了加上原来的配置,即$PATH部分,避免覆盖原来配置

Linux环境变量配置方法二:vim ~/.bashrc

通过修改用户目录下的~/.bashrc文件进行配置:

1
2
vim ~/.bashrc
1

#在最后一行加上

1
2
export PATH=$PATH:/home/uusama/mysql/bin
1

注意事项:

生效时间:使用相同的用户打开新的终端时生效,或者手动source ~/.bashrc生效
生效期限:永久有效
生效范围:仅对当前用户有效
如果有后续的环境变量加载文件覆盖了PATH定义,则可能不生效

Linux环境变量配置方法三:vim ~/.bash_profile

和修改~/.bashrc文件类似,也是要在文件最后加上新的路径即可:

1
2
vim ~/.bash_profile
1

#在最后一行加上

1
2
export PATH=$PATH:/home/uusama/mysql/bin
1

注意事项:

生效时间:使用相同的用户打开新的终端时生效,或者手动source ~/.bash_profile生效
生效期限:永久有效
生效范围:仅对当前用户有效
如果没有/.bash_profile文件,则可以编辑/.profile文件或者新建一个

针对所有用户

Linux环境变量配置方法四:vim /etc/bashrc

该方法是修改系统配置,需要管理员权限(如root)或者对该文件的写入权限:

#如果/etc/bashrc文件不可编辑,需要修改为可编辑

1
2
3
4
chmod -v u+w /etc/bashrc
1
vim /etc/bashrc
1

#在最后一行加上

1
2
export PATH=$PATH:/home/uusama/mysql/bin
1

注意事项:

生效时间:新开终端生效,或者手动source /etc/bashrc生效
生效期限:永久有效
生效范围:对所有用户有效

Linux环境变量配置方法五:vim /etc/profile

该方法修改系统配置,需要管理员权限或者对该文件的写入权限,和vim /etc/bashrc类似:

#如果/etc/profile文件不可编辑,需要修改为可编辑

1
2
3
4
chmod -v u+w /etc/profile
1
vim /etc/profile
1

#在最后一行加上

1
2
export PATH=$PATH:/home/uusama/mysql/bin
1

注意事项:

生效时间:新开终端生效,或者手动source /etc/profile生效
生效期限:永久有效
生效范围:对所有用户有效

Linux环境变量配置方法六:vim /etc/environment

该方法是修改系统环境配置文件,需要管理员权限或者对该文件的写入权限:

#如果/etc/bashrc文件不可编辑,需要修改为可编辑

1
2
3
4
chmod -v u+w /etc/environment
1
vim /etc/profile
1

#在最后一行加上

1
2
export PATH=$PATH:/home/uusama/mysql/bin
1

注意事项:

生效时间:新开终端生效,或者手动source /etc/environment生效
生效期限:永久有效
生效范围:对所有用户有效

三、linux中PATH=$PATH:$HOME/bin是什么意思呢,冒号:是什么意思

这些代码指的是环境变量,冒号是分隔符。

具体见解如下:

  1. $HOME这个代码是一个环境变量,它代表的是当前登录的用户的主文件夹的意思。(就是家目录的那个)代表软件的安装目录的根目录
  2. $HOME/bin这个代码指的就是主文件夹下的bin子目录,代表的是文件夹的内部子目录。(注意不是根目录的那个)
  3. $PATH:$HOME/bin表示在保留原来的$PATH环境变量的基础上,再增加$HOME/bin这个路径作为新的$PATH环境变量。计算机中的变量有许多,主要应用于系统文件的管理方面。
  4. PATH=$PATH:$HOME/bin这个代码是设置PATH环境变量,就是设置环境变量用等号,首先:冒号是分割符。记得Windows上面也有PATH环境变量,Windows的路径之间的分隔符是;分号。

linux配置环境变量,及PATH=$PATH中的PATH是什么意思和有些地方说的$PATH可以跟前或者跟后的原因
https://www.weiyalong.top/2021/01/11/linux配置环境变量及其含义/
作者
Dragon
发布于
2021年1月11日
许可协议