有没有办法找出我的 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。