默认的 $PATH 值是什么?

默认的 $PATH 值是什么?

在 Mac OS X 上,默认$PATH值为:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

Linux 上的默认值是什么?

答案1

在默认的 Ubuntu 桌面上安装$PATH

$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

但是在 创建的最小 chroot 环境中debootstrap$PATH仅包含:

# echo $PATH
/usr/sbin:/usr/bin:/sbin:/bin

答案2

环境路径值存储在.bashrcubuntu 中的文件。

系统范围的 PATH 变量定义在/etc/environment

答案3

bashPATH如果环境中未设置,则将设置为硬编码的默认值:

$ env -i bash -c 'echo $PATH'
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.

我们可以使用实用程序检查该值确实是硬编码的,而不是从环境或某些文件中读取的strings

$ strings /bin/bash | grep /usr/sbin
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.

但是,我在我的 Arch Linux 机器上得到了不同的结果:

$ env -i bash -c 'echo $PATH'
/usr/local/sbin:/usr/local/bin:/usr/bin

因此,在构建二进制文件时选择默认值bash,这取决于所使用的 Linux 发行版。

手册bash状态

小路

命令的搜索路径。它是一个以冒号分隔的目录列表,shell 会在这些目录中查找命令(请参阅命令执行下)。 的值中的零长度(空)目录名称小路表示当前目录。空目录名可能显示为两个相邻的冒号,或显示为首冒号或尾冒号。默认路径与系统相关,由安装的管理员设置狂欢. 一个共同的价值观是/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin

这里的“安装”可能指的是make install(而不是使用包管理器安装预构建的二进制文件),所以“管理员”指的是发行商。

手册页中的“INVOCATION”部分描述了启动过程,这可能会影响变量的初始值。

答案4

根据您使用的 Linux,情况可能会有所不同。如果您已经登录 Linux,只需输入“env”即可查看您的环境变量。

如果您想知道 PATH 环境变量是如何构建的,请查看主目录中的 .bashrc 和 .bash_profile。如果更感兴趣,您还可以查看 /etc/profile、/etc/profile.d/*(如果存在)和 bash 手册(man bash)。

相关内容