2010-03-09 3 views
7

최근에 ~~ .bashrc 파일에이 줄을 추가하여 git 작업 폴더에있는 경우 현재 분기를 표시합니다. 그. 그러나 내가 잃어버린 것은 터미널 폴더에 대한 탭에 표시되는 데 사용되는 현재 폴더 이름이고 현재는 그렇지 않습니다. 항상 '터미널'이라고 말합니다. 그걸 돌려 받고 여전히 자식 물건을 가지고있을 수 있을까요? 문제의 라인은 다음과 같습니다. 문제의 두 번째 라인은 주석으로 두 번째 라인이 문제를 해결합니다.Bash PS1 설정 - 현재 폴더를 터미널 제목으로 다시 가져 오는 방법

source /etc/bash_completion.d/git 
PS1='\h:\w$(__git_ps1 "\[\e[32m\][%s]\[\e[0m\]")$ ' 

PS1의 옵션에 대한 설명을보고 있지만 터미널 창 제목에 대해서는 아무 것도 볼 수 없습니다. 누구든지 조언 할 수 있습니까? 실제로 이미 다른 색상의 각 부분 형식

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

와 터미널을하기 위해 PS1을 조작하지만, 내가 실제로 본 적이없는 감사, 최대

편집

이전에 문서를 본 적이 있으므로 링크에 감사드립니다. 나의 현재 PS1 설정이

\[\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\]$ 

은 아마도 난 내 기존 설정을 잃지 않고 내 터미널 탭의 이름을 설정

export "<something> $PS1" 

처럼 뭔가를 할 수있다. 나는 이것으로 주변을 파고 있었고, 그것을 할 수 없었다.

편집 - 아래의 답변 중 일부를 사용하여 이것을 알아 냈습니다. - 감사합니다! 나는 "renametab"그래서 지금은 예를 들어 그것을 호출 할 수 있습니다이 호출

#!/usr/bin/env bash 
#renames the current terminal tab via the PS1 env var 
source ~/.bashrc 
export PS1="$PS1""\[\e]0;$1 \a\]" 

쉘 스크립트에 싸서

source renametab mytabname 

"소스는"현재 쉘에 변경 사항을 내보낼 필요합니다 : 경우 난 그냥 renametab mytabname 수출 그냥 스크립트가 끝날 때 죽는 subshell 들어갑니다.

모두에게 도움을 청합니다! 내가 터미널의 제목에 관한 내 우분투에 기본으로 가지고 무엇

답변

4

:

PS1='\[\e]0;\[email protected]\h: \w\a\]' 

앞에 추가이 하나와 PS1 그것이 잘되어야

+0

Perfect, thanks Romuald! –

+0

이것은 현재의 PS1 설정을 잃지 않기 위해 내가 한 일입니다.'foo'는 실제 값으로 대체되어야합니다. 'export PS1 = "$ PS1"'\ [\ e] 0; foo \ a \] '' –

5

당신이 시도 할 수 :

PS1="$PS1"'\h:\w$(__git_ps1 "\[\e[32m\][%s]\[\e[0m\]")$ ' 

그러나 PS1이 이전에 ~/.bashrc 또는 /etc/bash.bashrc에 설정되어 있는지 확인하는 데 도움이됩니다.

+0

이것은 훌륭하게 작동합니다. 내 .bashrc를 사용하여 중복 항목을 제거하기 위해'\ h : \ w'를 삭제해야했습니다. 'PS1 = "$ PS1"'$ (__ git_ps1 "\ [\ 3200 \] [% s] \ [\ e [0m \] ") $ '' – sage

0

이렇게하는 또 다른 방법은 PROMPT_COMMAND를 사용하고 PS1이 프롬프트가되도록하는 것입니다. 예 :

PROMPT_COMMAND = 'echo -ne'\ 033] 0; $ {USER} @ $ {HOSTNAME %%.*}, $ {PWD/# $으로 홈/~} "-ne 에코"\ 007 " '

0

나는이 사용

:이 같은 창 제목을 초래

PROMPT_COMMAND='echo -ne "\033]0;${PWD/$HOME/~} - ${USER}@${HOSTNAME}\007"' 

/home/tkirk - [email protected] 
0

내 자신과 같은 진정한 도움이되지 않는 분을 위해 프롬프트에서 git branch 이름을 포함하고 창 제목을 설정하는 Bash RC가 있습니다.이 방법으로 __git_ps1을 사용하는 __git_ps1에 PROMPT_COMMAND를 사용합니다. 2 개의 인수를 취합니다. 첫 번째 인수는 분기 이름 앞에있는 문자열이고, 두 번째 인수는 밀기울 다음의 문자열입니다. 채널 이름.

# 
# ~/.bashrc 
# 

# If not running interactively, don't do anything 
[[ $- != *i* ]] && return 

source ~/git/contrib/completion/git-prompt.sh 

alias ls='ls --color=auto' 
alias cd..='cd ..' 

c_reset='\[\e[0m\]' 
c_prompt='\[\e[1;31m\]' 
c_path='\[\e[0;33m\]' 

if [ -f ~/git/contrib/completion/git-prompt.sh ]; then 
. ~/git/contrib/completion/git-prompt.sh 
GIT_PS1_SHOWDIRTYSTATE=true 
GIT_PS1_SHOWCOLORHINTS=true 
GIT_PS1_UNTRACKEDFILES=true 
# Below, The section "\[\e]0;\w\a\]" sets the window title 
PROMPT_COMMAND="__git_ps1 '${c_path}\w${c_reset}' '\n\[email protected]\t${c_prompt}-->${c_reset}\[\e]0;\w\a\]' " 
fi 

#PS1 is set by the __git_ps1 script above, so comment out below 
#PS1='\w\n[\[email protected]\t]$>' 
2

운이 좋으면 터미널이 Xterm과 호환되며 ANSI 시퀀스를 사용하여 터미널 제목을 설정할 수 있습니다.

시퀀스를 제공하는 대신 documentation을 알려 드리겠습니다. 이제 프롬프트를 색칠 할 수 있습니다. 필요한 시퀀스는 xterm title hack으로 설명됩니다.

프롬프트의 제어 시퀀스를 사용하여 PS1을 설정할 수도 있습니다. 이것들은 BASH 맨 페이지 PROMPTING에 있습니다.

그리고 여기가 내 .bashrc에있는 내용은 다음과 같습니다

PS1="\e]0;BASH: \[email protected]\h\aBASH \v: \[email protected]\h:\w\n\$ " 
  • \e]0;BASH: \[email protected]\h\a - 설정 창 제목
    • \e] - 폐쇄 왼쪽 대괄호 다음에 ESC 문자를 전송합니다. 이것은 ANSI 명령 시퀀스의 시작입니다.
    • 0; - 0 다음에 세미콜론이옵니다. 내 창 제목
      • \u - - 사용자 이름
      • @ - @ 기호
      • \h - 호스트 이름
    • \a - 벨 (Cnrl- 다음 문자열은 제목
    • BASH: \[email protected]\h\을 설정 G) 내 제목 끝내기
  • BASH \v: \[email protected]\h:\w\n\$ - 내 프롬프트를 설정합니다.
    • BASH \v: - 문자열 BASH 다음에 버전이옵니다. 내 기본 쉘은 Ksh, 그래서 내가 BASH 쉘을 사용하고 때, 나는 나의 프롬프트
    • \u에 단어 에게 BASH을보고 싶어 - 사용자 이름
    • \h - 호스트 이름
    • \w - 현재를 작업 디렉토리 (홈 기반)
    • \n - 새 줄 - 내 프롬프트는 두 줄입니다. 이렇게하면 긴 디렉토리는 명령 행 공간을 차지하지 않습니다.
    • \$ - 루트 권한이 있으면 달러 기호 또는 #입니다.

놀고 즐거운 시간 보내십시오. 다른 이스케이프 시퀀스를 사용해보십시오. 색상을 추가하십시오. GIT 물건을 삽입하십시오. 탐색.

컴퓨터 일뿐입니다. 당신이 할 수있는 최악의 상황은 전체 시스템이 무너져 내리고 귀중한 모든 일을 삭제하고, 직장을 잃고, 소득의 유일한 수단이 그것으로 감자 튀김을 원한다면 고객에게 묻는 절망적 인 교도소가되게하는 것입니다. 않는 한, 당신은 은행에서 일합니다. 그런 다음 전체 세계 경제를 파괴 할 수도 있습니다.

+0

PS1을 통해 내 인생을 완전히 망칠 수 있다는 것을 몰랐습니다. var! ;-) 문서에 대한 링크와 'rtfm noob lol'을 말하지 않은 것에 대해 감사드립니다. 내 OP에서 편집을 참조하십시오 - 감사합니다! –

관련 문제