Environment-Variables

Linux中的PATH環境變數

  • January 14, 2016

我想知道 linux 作業系統給出的標準環境變數,如 PATH、HOME 是如何自動設置的。這些是從哪個文件中讀取的。當特定使用者登錄時,應該有一些文件從中設置這些變數。

您的問題的答案可以在INVOCATION部分找到man bash。以下是相關摘錄:

  When  bash is invoked as an interactive login shell, or as a non-inter-
  active shell with the --login option, it first reads and executes  com-
  mands  from  the file /etc/profile, if that file exists.  After reading
  that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile,
  in  that order, and reads and executes commands from the first one that
  exists and is readable.  The --noprofile option may be  used  when  the
  shell is started to inhibit this behavior.

  When  a  login  shell  exits, bash reads and executes commands from the
  file ~/.bash_logout, if it exists.

  When an interactive shell that is not a login shell  is  started,  bash
  reads  and executes commands from ~/.bashrc, if that file exists.  This
  may be inhibited by using the --norc option.  The --rcfile file  option
  will  force  bash  to  read  and  execute commands from file instead of
  ~/.bashrc.

  When bash is started non-interactively, to  run  a  shell  script,  for
  example, it looks for the variable BASH_ENV in the environment, expands
  its value if it appears there, and uses the expanded value as the  name
  of  a  file to read and execute.  Bash behaves as if the following com-
  mand were executed:
         if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
  but the value of the PATH variable is not used to search for  the  file
  name.

手冊頁中還有更多內容,我建議您閱讀它。

引用自:https://unix.stackexchange.com/questions/21246