是否有影响 PATH 的所有文件的列表?

是否有影响 PATH 的所有文件的列表?

$PATH 环境变量中有一个路径我想更改,但我找不到添加该路径的脚本。

我查看过了~/.profile~/.bashrc但是它不在那里。

找到谁为我添加了路径的一个好方法是什么$PATH

答案1

帮助中心有一个关于环境变量的综合页面,其中 PATH 只是其中之一。

其中提到的文件是

针对一个用户的会话

  • ~/.pam_environment
  • ~/.profile
  • 仅限 bash
    • ~/.bashrc
    • ~/.bash_profile
    • ~/.bash_login

对于系统上的所有用户

  • /etc/environment
  • /etc/profile.d/*.sh
  • 仅适用于 Bash
    • /etc/bash.bashrc

答案2

您可以在 /etc/profile.d/ 中找到更改 PATH 变量的脚本

/home/a>echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin
/home/a>ls -l /etc/profile.d/
total 24
-rw-r--r-- 1 root root   40 Jan 21  2015 appmenu-qt5.sh
-rw-r--r-- 1 root root  663 Nov  6  2014 bash_completion.sh
-rw-r--r-- 1 root root  857 Apr 10 19:29 cedilla-brazil.sh
-rwxr-xr-x 1 root root  301 Feb 20  2013 jdk.csh
-rwxr-xr-x 1 root root  299 Feb 20  2013 jdk.sh
-rw-r--r-- 1 root root 1940 Dec 16  2014 vte-2.91.sh
/home/a>cat /etc/profile.d/jdk.sh 
export J2SDKDIR=/usr/lib/jvm/java-8-oracle
export J2REDIR=/usr/lib/jvm/java-8-oracle/jre
export PATH=$PATH:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export DERBY_HOME=/usr/lib/jvm/java-8-oracle/db
/home/a>

参考此关联这帮助我找到“如果 bash 使用名称 sh 而不是名称 bash,它会模拟原始的 Bourne shell 初始化:它只获取文件/etc/配置文件和 ~/.profile 仅适用于登录 shell。”

相关内容