如何缩短命令行 (bash) 提示符?

Mic*_*ant 205 command-line bash prompt bashrc ps1

目前是:

michael@Castle2012-Ubuntu-laptop01:~/Dropnot/webs/rails_v3/linker/spec/controllers$
Run Code Online (Sandbox Code Playgroud)

除了重命名我的机器和目录结构......

我怎样才能让它更像:

michael:controllers$
Run Code Online (Sandbox Code Playgroud)

ish*_*ish 290

仅为当前终端实例更改它

只需输入PS1='\u:\W\$ '并按回车键。


“永久”改变它

在您的 中~/.bashrc,找到以下部分:

如果 [ "$color_prompt" = yes ]; 然后
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\ [\033[00m\]\$'
别的
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
菲

删除@\h, 并将 替换为\w大写\W, 使其变为:

如果 [ "$color_prompt" = yes ]; 然后
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;34m\]\W\[\033 [00m\]\$ '
别的
    PS1='${debian_chroot:+($debian_chroot)}\u:\W\$'
菲

保存、退出、关闭终端并启动另一个以查看结果。


更多选择!

  • 请参阅此处了解更广泛的操作方法,以及更多选项
  • 请参阅此答案以使用一个小的 Python 脚本来设置提示,以便缩短仅在您深入目录结构时发生。


小智 143

在当前终端中运行此代码

PROMPT_DIRTRIM=3
Run Code Online (Sandbox Code Playgroud)

现在 bash 提示符将只显示最后 3 个目录名称。您可以选择 1 以仅显示当前目录。GNU 文档中提供了更多信息。

效果:

/var/lib/apt/lists# PROMPT_DIRTRIM=3
/.../lib/apt/lists# 
Run Code Online (Sandbox Code Playgroud)

如果要永久使用,请~/.bashrc在开头添加以下行:

PROMPT_DIRTRIM=3
Run Code Online (Sandbox Code Playgroud)

或其他大于零的数字。

  • 只是一个旁注:这需要 Bash 4。 (7认同)

小智 21

这是我首选的提示设置:

加入 ~/.bashrc

PS1='[\u@\h \W]\$ '    
Run Code Online (Sandbox Code Playgroud)

它看起来像这样:

[user@hostname dirname]$
Run Code Online (Sandbox Code Playgroud)

($符号后有一个空格)


小智 7

我个人更喜欢在 bash 提示中只看到当前文件夹。我可以使用以下命令执行此操作:

PS1='\W\$ '
Run Code Online (Sandbox Code Playgroud)

如果您希望它在每次启动后生效,请将上述命令添加到您的 ~/.bashrc 中。