linux环境变量介绍

一 linux环境变量概念的重要性

最初用linux是为了学习机器人操作系统(ros),由于之前没有接触过linux,所以并不了解其中的一些关键概念,导致走了许多弯路,如在ros的安装过程中,没有理解安装教程中的1.6 环境变量建立中的指令的意义,所以导致有时在自己工作空间建立的包会有找不到的情况。因此,本文结合ros安装教程中的部分指令,重点介绍linux环境变量的概念及应用。

二 环境变量的概念

环境变量,就是描述环境的变量。环境就是与shell相关的会话和工作环境,变量就是可变的量。

三 变量的分类及操作

变量分为全局变量和局部变量;

全局变量对shell和shell创建的子进程可见(继承性);

局部变量只对创建它们的shell可见(临时性)。

局部变量可以变为全局变量,供其创建的子进程使用(export);

显示全部环境变量(printenv);

显示所有变量(set)

需要注意的是:这些自己定义的全局变量和局部变量在注销bash时就会失效。

四 PATH环境变量

PATH环境变量决定命令的查找位置和PATH变量中的查找顺序;

为什么是PATH变量中的查找顺序,因为命令运行的顺序是按照以下四个方式查找:

1 以相对/绝对路径执行命令

2 由alias找到该命令

3 bash内置的命令

4 PATH变量中的顺序(如你自己写个shell文件,可以把文件夹的路径加入到其中)

五 环境变量配置文件

系统环境配置文件的作用是让bash启动时可直接读取这些文件,而不需要我们自己定义。

配置文件分为全体系统配置文件和个人用户配置文件。

六 启动shell的不同方式

shell启动方式不同,会启用不同的配置文件。

shell启动方式分为三种:

1 登录shell(默认登录shell):需要输入用户账号和密码的shell

2 非登录shell(交互式shell):不需要输入账号密码的shell

3 运行脚本(非交互shell)

登录shell和非登录shell具体如何调用哪些配置文件,本文不做说明,我们只需要知道都调用了环境配置文件 ~/.bashrc 即可。

七 示例:ros安装教程中环境变量的建立

安装ros的官方教程,我们会发现在建立环境变量时会有给我们三种选择:

第一种:可以在你每次在启动新的shell时自动添加ROS的环境变量

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

第二种:只是在你当前的shell中添加ROS的环境变量

source /opt/ros/kinetic/setup.bash

第三种:使用的是zsh,而不是bash

echo "source /opt/ros/kinetic/setup.zsh" >> ~/.zshrc
source ~/.zshrc

这里我们使用前两种进行说明。

我们上面说过自己定义的全局变量和局部变量在注销bash时就会失效,想让自己定义的变量不失效的办法:写入配置文件

因此,就有了ros中第一种环境变量的建立:

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

第一行表示把"  "中的字符串写入到~/.bashrc中(需要注销再登陆才会生效,>> 表示数据流输出重定向"追加",>表示"替换")

第二行表示把配置文件读入当前的shell中。(立即生效)

所以有ros第二种环境变量建立方法

source /opt/ros/kinetic/setup.bash

把配置文件读取到当前的shell中。

至此,环境变量的大部分概念都已经介绍完毕。

原文地址:https://www.cnblogs.com/qixianyu/p/6568155.html