在 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
bash
PATH
如果环境中未设置,则将设置为硬编码的默认值:
$ 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)。