1. 前言
本文主要讲解如何在Linux系统中设置环境变量。
当您在Linux命令行上键入命令时,您实际是在告诉shell运行指定名称的可执行文件。在Linux中,这些可执行程序(如ls、find、file等)通常位于系统上的几个不同目录中。存储在这些目录中的任何具有可执行权限的文件都可以从任何位置运行。保存可执行程序的最常见目录是/bin、/sbin、/usr/sbin、/usr/local/bin和/usr/local/sbin。
但是shell是怎么知道要搜索哪些目录来搜索可执行程序呢?或者shell如何搜索整个文件系统,自己找出对应的程序文件呢?
答案很简单。当您键入命令时,shell将搜索用户$PATH变量中指定的所有目录,以查找该名称的可执行文件。
本文展示了如何将目录添加到Linux系统中的$PATH环境变量中,即如何设置Linux的环境变量
2. 怎么查看Linux中的环境变量
要设置环境变量,我们一定要知道Linux中的$PATH变量,$PATH环境变量是以冒号分隔的目录列表,用于告诉shell搜索可执行文件的目录。
要检查$PATH中的环境变量包括的目录,可以使用或命令:
输出结果类似于以下内容:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
如果在两个不同的目录中有两个相同名称的可执行文件,那么shell将运行位于$PATH环境变量中第一个目录中的文件。
3. 临时设置Linux中的环境变量
在某些情况下,您可能希望添加其他目录$PATH环境变量。例如,有些程序可能安装在不同的位置,或者您可能希望为您的个人用户提供一个专用目录,但是能够在不指定可执行文件的绝对路径的情况下运行它们。要做到这一点,只需将目录添加到$PATH中。
假设您的主目录中有一个名为bin的目录,您将shell脚本保存在其中。要将目录添加到您的$PATH类型中,请输入以下命令设置环境变量:
export命令将修改后的环境变量导出到shell子进程环境。
现在,只需输入可执行脚本名称就可以运行脚本,而不需要指定可执行的完整路径。
但是,这种更改只是临时的,并且只在当前shell会话中有效。
4. 设置永久生效的全局环境变量
要使更改永久性,您需要在shell配置文件中定义$PATH变量。在大多数Linux发行版中,当您启动一个新会话时,从以下文件中读取环境变量:
全局特定于shell的配置文件,如/etc/environment和/etc/profile.如果希望将新目录添加到所有系统用户$PATH环境变量中,请使用此文件。
基于用户设置Linux的环境变量,我们需要知道每个用户特定于shell的配置文件在哪里。例如,如果使用Bash,可以在~/中设置$PATH变量。bashrc文件,如果使用Zsh,则文件名为~/.zshrc。
在本例中,我们将在~/中设置环境变量。bashrc文件。(用文本编辑器打开文件,并在文件末尾添加以下行:
添加以下内容,以设置Linux环境变量
保存文件并使用source命令将新的$PATH加载到当前shell会话中:
要确认环境变量已经设置成功,请键入以下命令打印$ PATH的值:
5. 总结
Linux设置环境变量共有2种形式:全局生效和针对特定用户生效。
设置全局生效的环境变量或者针对特定用户添加新目录都非常简单。这允许您执行存储在非标准位置的命令和脚本,而不需要键入可执行文件的完整路径。
同样的指令适用于任何Linux发行版,包括Ubuntu、CentOS、RHEL、Debian和Linux Mint。
领取专属 10元无门槛券
私享最新 技术干货