在 Linux 系统中,这 4 个命令都是可以查看显示 Shell 中的变量。但实际上的区别都在哪呢?
大家都知道,变量可以分为:环境变量
和 自定义变量
,两者的区别在于:
- 环境变量:可以在其进程的子进程中继续有效。
- 自定义变量:无法延伸至其进程的子进程。
那么,则可以从两者的类型进行区分了:
- env:显示当前用户的环境变量,但不会显示其自定义变量。
- export:功能同 env,也是显示当前用户的环境变量,只不过该命令的输出是按变量名进行排序的。
- set:功能同 declare,显示当前 Shell 中定义的所有变量,包括用户的环境变量和自定义变量。
- declare:显示当前 Shell 中定义的所有变量,包括用户的环境变量和自定义变量,该命令的输出按变量名进行排序。
结论:
- env 和 export 显示的是环境变量。
- set和declare显示的是环境变量和自定义变量。
- 同作用的区别又在于是否按
变量名
进行排序。
设置 Shell 环境变量
$PATH 环境变量,是 Linux 系统比较常用的变量之一。
格式:多个路径组成,由英文冒号(:)进行分割。
echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ascmcs/.local/bin:/home/ascmcs/bin
而它的作用可以大大的提升工作效率,在执行某个命令时,可以快速的在 Linux 系统找到。如果是自身运维的命令,那么可以将其加入至 $PATH 中。
# 假设将用户家目录下的 tools 添加 $PATH
export PATH=$PATH:/home/ascmcs/tools