如何更改bash提示以显示工作目录?


33

我可以这样打印我当前的工作目录

myPrompt$ pwd
/Users/me/myDir

我希望我的外壳看起来像这样

/Users/me/myDir$ pwd
/Users/me/myDir

那可能吗?我该怎么做?


在OS X上,文件名是.bash_profile,而不仅仅是.profile。这样会自动为您加载。

不完全的。OSX 开始登录shell默认,这意味着,bash的验看~/.bash_profile~/.bash_login~/.profile以该顺序,并且读取并从存在并且可读的第一个执行命令。无论如何,这实际上是评论,而不是答案,因此我将其转换为一个。
terdon

Answers:


39

您可以在提示变量中使用转义序列

把它放在你的~/.bashrc

PS1='\w\$ '

2
谢谢。我做了那个改变。现在,我看到:Abrams-MacBook-Air-3:tmp abramhandler $ pwd; / Users / abramhandler / tmp Abrams-MacBook-Air-3:tmp abramhandler $...。我只想在提示中显示“ tmp”部分。我如何隐藏其余部分?我想隐藏“ abramhandler”和“ Abram's-MacBook-Air-3”部件
bernie2436 2013年

7
@ akh2103使用\W代替\w。请参阅Gilles给您的链接,以获取(简短的)转义码说明。
terdon

@terdon我用\ W和\ w看到相同的东西。我在OSX上运行Unix。
bernie2436

2
@ akh2103(如果您正在运行OSX并使用终端应用程序),则应对〜/ .profile而不是.bashrc进行更改,因为终端默认情况下会运行登录shell。您还应该来源〜/ .profile或打开一个新终端,以使更改生效。另外,请进行编辑以添加更多信息,根据您的最新评论我无法理解您的要求。
terdon

@terdon当我运行source〜/ .profile时,它会在当前终端中正确更改路径。但是,当我打开一个新终端时,仍然看到“ abram的mac book air”等信息。我尝试将源〜/ .profile添加到.profile和.bashrc文件中,但还是没有运气。有任何想法吗?
bernie2436

4

这是OSX的一线工具。它将所需的提示附加到配置文件中,然后重新加载配置文件。

echo "PS1='\w\$ '" >> ~/.bash_profile; source ~/.bash_profile

在El Capitan,您需要使用

echo "PS1='\w\$ '" >> ~/.profile; source ~/.profile

1

出于某种原因,它对'\w\$'我不起作用,但我却做了:export PS1="$(pwd) \$"它起作用了。


4
当您更改目录时,这不会太好...
Stephen Kitt

0

看起来像旧线程,但是以下步骤在OS X 10.9.5上对我有用

  • PS1='\w\$ '~/.profile
  • 如果您进行了任何更改,~/.bashrc将其删除
  • cmd+ 关闭终端q
  • 重新打开终端

1
就我而言,完整的PATH确实很大,因此我为下一行添加了一个标志,例如PS1 ='\ w \ n \ $'
victor 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.