首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Bash PS1设置-如何将当前文件夹恢复为终端标题

Bash PS1设置-如何将当前文件夹恢复为终端标题
EN

Stack Overflow用户
提问于 2010-03-10 00:49:34
回答 6查看 5.6K关注 0票数 7

我最近在我的~/.bashrc文件中添加了这几行代码,以便在git工作文件夹中显示当前分支,这样做效果很好。然而,我丢失的是,过去我打开的终端的标签中显示的是当前文件夹名称,但现在不是了:它总是显示“终端”。我能不能拿回那玩意儿还留着那些东西?这就是问题所在的第二行,因为注释掉第二行就解决了这个问题。

代码语言:javascript
运行
复制
source /etc/bash_completion.d/git
PS1='\h:\w$(__git_ps1 "\[\e[32m\][%s]\[\e[0m\]")$ '

我一直在查看PS1选项的解释,但在那里看不到任何关于终端窗口标题的内容。有人能给点建议吗?谢谢,麦克斯

编辑

实际上,我已经对PS1进行了操作,以便拥有一个具有以下格式的终端

<rvm version and gemset> <computer name> <current folder> <git branch>

,每个部分都有不同的颜色,但我以前从未真正看到过文档,所以谢谢你提供的链接。我当前的PS1设置是

代码语言:javascript
运行
复制
\[\033[0;31m\]$(__my_rvm_ruby_version)\[\033[0;33m\]\h\[\033[0;37m\]:\[\033[1;33m\]\W\[\033[1;32m\]$(__git_branch)\[\033[1;32m\]$(__git_dirty) \[\033[0;37m\]$

大概我可以这样做

代码语言:javascript
运行
复制
export "<something> $PS1"

要在不丢失现有设置的情况下设置我的终端选项卡名称。虽然我一直在探索这个问题,但还是没有做到。

编辑-在下面一些答案的帮助下解决了这个问题-谢谢所有人!我将它封装在一个shell脚本中

代码语言:javascript
运行
复制
#!/usr/bin/env bash
#renames the current terminal tab via the PS1 env var
source ~/.bashrc
export PS1="$PS1""\[\e]0;$1 \a\]"

它被称为"renametab“,所以我现在可以用例如

代码语言:javascript
运行
复制
source renametab mytabname

需要“源”来将更改导出到当前shell中:如果我只执行renametab mytabname,则导出只会进入一个子shell,当脚本完成时,该子shell将被终止。

再次感谢大家的帮助!

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-03-10 00:54:32

这是我的Ubuntu上关于终端标题的默认设置:

代码语言:javascript
运行
复制
PS1='\[\e]0;\u@\h: \w\a\]'

在你的PS1前加上这段代码,应该没问题。

票数 4
EN

Stack Overflow用户

发布于 2010-03-10 00:55:45

您可以尝试:

代码语言:javascript
运行
复制
PS1="$PS1"'\h:\w$(__git_ps1 "\[\e[32m\][%s]\[\e[0m\]")$ '

但是如果能早点知道PS1在~/.bashrc/etc/bash.bashrc中设置的值会很有帮助。

票数 5
EN

Stack Overflow用户

发布于 2013-10-31 00:06:16

如果您幸运的话,您的终端是Xterm兼容的,您可以使用ANSI序列来设置您的终端标题。

我不会给你序列,而是给你documentation。现在,您可以为提示符添加颜色。您需要的序列被描述为xterm title hack,这就是它。

您还可以使用提示中的控制序列来帮助设置PS1。这些可以在PROMPTING下的BASH手册页中找到。

这是我的.bashrc中的内容

代码语言:javascript
运行
复制
PS1="\e]0;BASH: \u@\h\aBASH \v: \u@\h:\w\n\$ "

  • \e]0;BASH: \u@\h\a -设置窗口标题
    • \e] -发送ESC字符,后跟左方括号。这是ANSI命令sequence.
    • 0; -0的开始,后面跟着一个分号。以下字符串设置主机-我的窗口标题
      • \u -用户Name
      • @ - The @ sign
      • \h -sign
      • \h Name

代码语言:javascript
运行
复制
- `\a` - The BEL (Cnrl-G) which ends my title

  • BASH \v: \u@\h:\w\n\$ -设置我的提示符
    • BASH \v: -字符串BASH,后跟版本。我的默认shell是Ksh,所以当我使用BASH shell时,我希望在我的prompt
    • \u中看到单词BASH -用户name
    • \h -主机name
    • \w -当前工作目录(主based)
    • \n -新行-我的提示符是两行。这样,如果有根privileges.

,长目录就不会占用命令行space.

  • \$ -美元符号或#

尽情玩耍,玩得开心。尝试不同的转义序列。添加颜色。嵌入GIT的东西。探索。

记住,它只是一台电脑。你所能做的最糟糕的事情就是导致整个系统崩溃,删除你所有有价值的工作,丢掉你的工作,成为一个无可救药的弃儿,他们唯一的收入来源就是问顾客是否想要薯条。除非你在银行工作。然后,你还可以拖累整个全球经济。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2410802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档