在linux系统中,环境变量path负责记录系统查找可执行命令的搜索路径,当我们输入一个命令时,系统会按照path中记录的路径顺序逐个查找,找不到就会提示“command not found”。很多新手甚至部分开发人员对查看path的多种方法不够了解,本文就全面梳理linux下查看path的常用方法,覆盖不同使用场景。

使用echo命令快速查看当前生效的path
这是最常用、最高效的查看方式,用法非常简单,只需要在终端输入命令 `echo $path` 即可输出当前会话生效的path内容。linux中引用环境变量都需要加上前缀`$`,这是语法要求,不要遗漏。输出结果会以冒号`:`分隔不同的搜索路径,如果path包含的路径较多,整行输出阅读起来不够清晰,可以配合tr命令做格式转换,输入`echo $path | tr ':' '

'` 就能让每个路径单独占一行,可读性大大提升,适合路径较多的场景使用。
使用env/printenv命令查看path
env和printenv都是linux中专门用于输出系统环境变量的命令,如果只需要查看path,直接输入`printenv path`即可得到结果。注意和echo不同,printenv直接跟变量名,不需要加`$`前缀,很多新手容易在这里写错。如果想要查看所有和路径相关的环境变量,比如常用的依赖库路径变量`ld_library_path`,可以输入`env | grep path`,会列出所有名称包含path的环境变量,适合排查命令找不到、程序依赖缺失这类问题时使用。
查看配置文件中path的原始定义
前面两种方法查看的都是当前终端会话已经生效的path,如果想要修改path,首先需要知道path是在哪个配置文件中定义的。系统级的全局path定义一般存放在`/etc/profile`、`/etc/environment`、`/etc/bash.bashrc`中,对所有登录用户生效;单用户自定义的path一般存放在当前用户目录的个人配置文件中,bash shell对应`~/.bashrc`、`~/.bash_profile`,zsh shell对应`~/.zshrc`。可以使用`grep path 文件名`快速定位文件中的path定义,比如输入`grep path ~/.bashrc`就能快速查看当前用户在bash配置中自定义的path规则。

不同场景对应不同方法:日常快速查看当前生效path用echo即可,排查环境问题可以用printenv或env过滤,需要修改path前先到对应配置文件中查看原始定义,就能满足绝大多数linux开发和使用的需求,全文约680字,覆盖了绝大多数查看需求。






























