Bash 프롬프트(PS1 환경 변수라고도 함)를 사용자 정의하는 가장 좋은 방법은 무엇입니까?

Bash 프롬프트(PS1 환경 변수라고도 함)를 사용자 정의하는 가장 좋은 방법은 무엇입니까?

PS1다음과 같이 변수를 변경하여 Bash 프롬프트에 Git 분기 이름을 추가하려고 합니다 .

PS1=`echo "$PS1" | sed 's/\\\\\$ $/\$(__git_ps1)\\\\\$ /'`

~/.bashrc그리고 내가 올바르게 이해했다면 개인화 목적으로 업데이트하는 것은 권장되지 않습니다 . 내가 찾은 모든 기사는 그러한 목적으로 .profile또는 업데이트를 제안합니다. .bash_profile그래서 저는 이 라인을 넣을 완벽한 장소를 찾고 있습니다.

지금까지 제가 시도한 장소는 다음과 같습니다.

  • .profile: 출처 없음gnome-terminal
  • .bash_profile: 출처 없음gnome-terminal
  • .bash_login: 출처 없음gnome-terminal
  • .bash_aliasesPS1: 작동하지만 별칭과 관련이 없는 것 같습니다.

gnome-terminal저는 Ubuntu Desktop을 사용하고 있고 또는 에서 작업하고 있으므로 X 환경에서 byobu시작할 때 소스로 제공되는 파일을 찾아야 합니다 . bash그런 .bashrc다음 PS1. 이 목적에 적합하지 않다고 생각되는 것이 .bash_aliases있습니다 ./usr/share/bash-completion/bash_completion

다른 선택은 무엇입니까? Bash 프롬프트를 사용자 정의하는 가장 좋은 방법은 무엇입니까?

답변1

다음 HOWTO에 따르면 .bashrc실제로 $PS1을 조정할 수 있는 가장 좋은 곳은 다음과 같습니다.

PS1 문자열은 에 설정되어야 합니다 .bashrc. 이는 비대화형 bash가 PS1 설정을 해제하기 위해 노력하기 때문입니다. bash 매뉴얼 페이지는 PS1의 존재 여부가 PS1이 대화식 bash 세션인지 비대화식(예: 스크립트) bash 세션에 있는지를 알 수 있는 좋은 방법임을 알려줍니다.

[...]

PS1=..blah..그러므로 는 안에 있어야 .bashrc하고, 없어야 한다는 점을 강조해야 합니다 .profile.

원천:http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/setps.html

답변2

나는 그것이 .bashrc에 위치해야 한다는 @sylvain-pineau의 의견에 동의합니다.

나는 github에서 포크한 git-prompt 쉘 스크립트를 사용하고 있습니다. git, svn 및 hg와 매우 잘 작동합니다. 현재 있는 분기, 새로운 파일, 변경된 파일(다른 색상) 및 마지막 bash 명령의 상태를 보여줍니다.

다음과 같이 다운로드할 수 있습니다.

wget https://raw.githubusercontent.com/stalet/git-prompt/master/git-prompt.sh
chmod +x git-prompt.sh

그런 다음 .bashrc에서 테스트를 사용하여 내 git-prompt 스크립트를 사용할 수 있는지 확인한 다음 소스를 제공합니다.

[[ -s ~/config/git-prompt.sh ]] && source ~/config/git-prompt.sh

면책 조항, 저는 git-prompt github 프로젝트의 커밋자입니다.

관련 정보