Mac 终端显示 bash 而不是我的用户名

Mac 终端显示 bash 而不是我的用户名

这使得我很难知道我在哪个目录中。我为学校安装了一个版本的python,现在它说-bash-3.2$而不是MyMacbook: ~$。我确信这真的很简单,但我对终端/bash/shell一无所知。我仍然可以,cd ~/Desktop但它只是说-bash-3.2$而不是MyMacbook: ~Desktop $

答案1

其他人已经有很多机会提到这个房间里的大象,因此这里就是:

PS1Bourne Again Shell 中的提示符由、PS2PS3和变量的值控制PS4。这里相关的是 变量PS1。它尚未设置,因此 Bourne Again Shell 将显示其默认提示符,即提示符字符串 的扩展\s-\v\$ 

可以通过设置变量来实现所需的提示:

PS1='\h:\w\$'

至少有两种情况可能会导致您陷入这种情况。第一种情况72DFBF5B A0DF5BE9,即您突然开始使用 Bourne Again Shell,而之前使用的是 Tenex C Shell。Tenex C Shell 使用不同的变量(promptprompt2,prompt3)来控制显示为提示符的内容,并且具有不同的 rc 文件。

您想要的提示符可以在 Tenex C Shell 中通过如下方式设置变量来实现:

设置提示='%m: %~%$'

~/.tcshrc它将在您的(或/etc/csh.cshrc或或……)脚本中设置~/.login。当然,调用 Bourne Again Shell 不会发现这一点。因此,答案是返回到您之前使用的 shell。

另一种情况是,您确实使用了 Bourne Again Shell,并在(或或或……)脚本中heiglandreas设置了一个变量。然后某些东西打乱了该脚本,或者只是简单地重命名/删除了该脚本。在这种情况下,答案是解开脚本,以便它再次在交互式 shell 中设置。PS1~/.bashrc/etc/profile~/.profilePS1

第三种可能性是,您的变量是在而不是 在 中PS1设置的,它没有被编辑,并且您从登录 shell 调用了辅助 shell。在这种情况下,答案是退出辅助 shell,或者确保您的 shell 提示符是在为登录和非登录 shell 运行的 rc 文件中设置的,而不是在仅为登录 shell 运行的 rc 文件中设置的。~/.profile~/.bashrcexport

为了完整起见,我将提到 Mac OS 10 上常用的另一个 shell:Z Shell。它使用与 Bourne Again Shell 相同的变量,并支持许多百分比样式转义序列Tenex C Shell。

通过在 Z Shell 中设置变量,可以实现所需的提示:

PS1='%m: %~%#'

~/.zshrc这将在(或~/.zprofile/etc/zprofile/etc/zshrc或...)脚本 中设置。

我提到这一点是为了强调这一点:Mac OS 10 上有多个 shell 可供使用,它们都有单独的 rc 文件集,它们的提示变量并不相同,并且这些提示变量可以在每个 shell 中的多个 rc 文件之一中设置。因此,您必须阅读 shell 手册并找出哪个 rc 文件已损坏,或者您之前使用过哪个 shell 并且应该返回,或者您是否只是调用了一个子 shell 而没有以子 shell 可以看到的方式设置您的提示变量。

进一步阅读

答案2

Mac OS X 10.0 到 10.2.8 中使用的默认 shell(或命令行界面)是tcsh

  • 从终端菜单打开“偏好设置”,单击“启动”选项卡

  • 在“打开的 Shell”下,选择“命令(完整路径)”并设置新的 Shell

然后"chsh -s /bin/tcsh在框中输入“

或者打开终端应用程序,然后:

  • 从终端菜单中选择“首选项”。
  • 选择选项“执行此命令(指定完整路径):”,然后写入/bin/tcsh

相关内容