我的 MacOSX 终端不显示当前目录

我的 MacOSX 终端不显示当前目录

无论我输入哪个目录,终端总是显示根目录,即“Nidas-MBP”

Nidas-MBP% cd Projects
Nidas-MBP% ls
09-Selector-Exercise-Starter.zip    My Little Form
09_Selector_Exercise_Starter        Prefix Free File
Blog                                Recursion Practice
Callbacks                           Themes
Callbacks-Exercise                  Todo-Vanilla
Copywriting                         css3-contact-form.zip
Freelancer Theme                    webpack-deepdive
Frog Chase

Nidas-MBP% cd webpack-deepdive
Nidas-MBP% ls
es6-todomvc
Nidas-MBP% 

我尝试将以下命令添加到 ~/.bashrc 文件和 ~/.profile 文件的末尾,但终端仍然保持不变。

PS1='[\u \W$] '

当我运行时echo "$PS1"它说

%m%#

PS1=[ \W]\$ PS1='[ \W]$ '我发现里面有两行~/.bash_profile,所以我将它们都替换为PS1='[\u \W$] '和 键入source ~/.bash_profile。作为回应,我的终端开始显示[\u \W$]而不是Nidas-MBP.

我不知道现在应该做什么才能让它恢复到原来的样子。

答案1

根据 JdeBP 的观察,这zsh不是完全重新设计的bash

bashzsh是两个不同的 shell,并且在启动它们时使用两组不同的文件。bash使用.bash_profile.bashrc、 和.profilezsh使用.zprofile.zshrc、 和其他。

zsh还使用不同的语法来指示提示。echo $PROMPT会告诉您提示的当前设置。例如,要在提示符下显示当前目录,请将其添加到$ZDOTDIR/.zshrc(如果ZDOTDIR未设置,zsh将使用HOME):

PROMPT='%~> '
来源

然后source ~/.zshrc或者重新启动终端。

答案2

PS1显然你设置之后肯定有一些东西发生了变化。

找到你可以的地方

  • grep您的主目录和/etc.

    grep PS1 -r /etc $HOME
    
  • set -x设置后使用PS1即可查看哪里发生了变化。

  • 用于strace找出哪个文件包含该值。

答案3

我不知道 bash 和 zsh 之间的命令有区别。显然,我应该打字PS1='%m %1d$ '。所以我在~/.zshrc文件中做了这个,现在它可以工作了。

https://superuser.com/questions/1108413/zsh-prompt-with-current-working-directory

相关内容