我当前的 shell 使用什么配置文件?

我当前的 shell 使用什么配置文件?

有没有办法找出我的 shell 当前正在使用的配置文件?我似乎无法找到它,或者至少它不在任何常见的地方。我使用的是 OS X,但我假设它在所有 UNIX 系统上都是相同的。

答案1

假设它是 bash,我假设它使用主目录中的常规配置文件和/etc。请参阅这个问题该答案主要指向man bash

   When  bash  is invoked as an interactive login shell, or as a non-interactive shell with the --login
   option, it first reads and executes commands 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.

更新:
因此,您正在使用 zsh: man zsh部分 STARTUP/SHUTDOWN FILES。基本上,它将使用.zsomething提到的文件并查找$ZDOTDIR,如果未设置则查找$HOME。文件摘要如下:

   $ZDOTDIR/.zshenv
   $ZDOTDIR/.zprofile
   $ZDOTDIR/.zshrc
   $ZDOTDIR/.zlogin
   $ZDOTDIR/.zlogout
   ${TMPPREFIX}*   (default is /tmp/zsh*)
   /etc/zsh/zshenv
   /etc/zsh/zprofile
   /etc/zsh/zshrc
   /etc/zsh/zlogin
   /etc/zsh/zlogout

答案2

您是否有任何名称与 zsh 配置文件相同但扩展名为 .zwc 的文件?

这些都是经过编译的,如果较新的话,将会运行而不是纯文本版本。

答案3

检查手册页或使用可执行文件上的 strings(1)(或两者)来查找所有可能性,并查找系统中存在的那些。请注意,一个 .profile 可能会调用另一个文件,因此您可能需要检查每个文件。

还要检查上次访问时间;配置文件可能不会在每次启动时被访问,或者是否存在不同的文件等。显然,这完全取决于您的特定 shell。

相关内容