如何在Linux中配置命令提示符以显示当前目录?

21

如何在Linux中配置命令提示符以显示当前目录?我希望能够在 .zshrc 文件中设置这个选项。

5个回答

58
您可以将以下内容放在您的.zshrc文件中: export PS1="%d %% " 其中%d表示当前工作目录(CWD)。
欲了解更多详细信息,请参见此处

简单而优雅! - Vignesh Iyer
我的最爱是类似于Linux的(用户名@主机:路径$)导出PS1="%n@%m:%d$ "。 - Hermann Schwarz

11

如 Jiri Kremser 所说,你可以使用 PS1 变量更改提示符。例如,如果你想将提示符更改为像这样的内容(显示当前路径相对于 HOME 目录):

enter image description here

.zshrc 中使用以下设置:

export PS1="[%~]$ "

运行 source .zshrc 以使更改生效。

关于提示变量的官方zsh文档可以在这里找到。


1
括号有点乱,但非常感谢您的优秀回答。 - dmgd

11

我在我的$PS1中使用"%20<...<%~%<<",这样如果当前工作目录中包含前缀,则会将其替换为~:它适用于$HOME(替换为~)、用户的主目录(替换为~user)和由hash -d定义的目录(例如,如果有hash -d foo=$HOME/path/to/dir,则此目录将被替换为~foo)。%20<...<%<<使zsh可以在左侧截断目录名称,以避免提示过长。


2
如果你在ZSH中使用agnoster主题,那么你可以按照下面的示例自定义.zshrc文件中的路径长度。
展示完整路径
prompt_dir() {
   prompt_segment 蓝色 黑色 '%~'
}

例如:/mnt/c/personal/repo/myprojects/alphagame $

  • 显示当前目录而不是完整路径

    prompt_dir() {
       prompt_segment blue black '%1~'
    }
    
  • Example: alphagame $

  • 同样地,仅显示最后2个目录而不是完整路径

    prompt_dir() {
       prompt_segment blue black '%2~'
    }
    
  • 例子:myprojects/alphagame $


    最好的一个是 '%2~' :) - Wolfgang

    2
    ${PWD/#$HOME/~}添加到您的PROMPT变量中。如果您不想在家目录中显示~,则只需使用$PWD即可。

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接