수색…


PS1 프롬프트 변경

PS1을 변경하려면 PS1 쉘 변수의 값을 변경하기 만하면됩니다. 이 값은 배포판에 따라 ~/.bashrc 또는 /etc/bashrc 파일에서 설정할 수 있습니다. PS1은 다음과 같은 일반 텍스트로 변경할 수 있습니다.

PS1="hello "

플레인 텍스트 외에도 다양한 백 슬래시 이스케이프 특수 문자가 지원됩니다.

체재 동작
\a ASCII 벨 문자 (07)
\d "Weekday Month Date"형식의 날짜 (예 : "Tue May 26")
\D{format} 형식은 strftime (3)에 전달되고 결과는 프롬프트 문자열에 삽입됩니다. 빈 형식은 로케일 고유의 시간 표현을 생성합니다. 중괄호가 필요합니다.
\e ASCII 이스케이프 문자 (033)
\h 첫 번째 호스트 이름 '.'
\H 호스트 명
\j 쉘이 현재 관리하고있는 작업의 수
\l 쉘의 터미널 디바이스 명의 basename
\n 개행 문자
\r 캐리지 리턴
\s 쉘의 이름, $ 0 (최종 슬래시 뒤에 오는 부분)의 기본 이름
\t 24 시간 HH : MM : SS 형식의 현재 시간
\T 12 시간 HH : MM : SS 형식의 현재 시간
\@ 오전 12시 / 오후 형식의 현재 시간
\A 24 시간 HH : MM 형식의 현재 시간
\u 현재 사용자의 사용자 이름
\v bash 버전 (예 : 2.00)
\V 배시, 버전 + 패치 레벨 (예 : 2.00.0)
\w $ HOME이 물결표로 축약 된 현재 작업 디렉토리
\W 현재 작업 디렉토리의 기본 이름. $ HOME은 물결표로 축약됩니다.
\! 이 명령의 히스토리 번호
\# 이 명령의 명령 번호
\$ 유효 UID가 0의 경우는 #, 그렇지 않은 경우는 $
\nnn* 8 진수 nnn에 해당하는 문자
\ 백 슬래시
\[ 터미널 제어 시퀀스를 프롬프트에 삽입하는 데 사용할 수있는 일련의 비 인쇄 문자를 시작합니다.
\] 일련의 비 인쇄 문자를 끝내십시오.

예를 들어 PS1을 다음과 같이 설정할 수 있습니다.

PS1="\u@\h:\w\$ "

그리고 출력 할 것이다 :

user @ machine : ~ $

PROMPT_COMMAND를 사용하여 git 분기 표시

자식 저장소의 폴더에 있다면 현재있는 지점을 표시하는 것이 좋습니다. ~/.bashrc 또는 /etc/bashrc 에 다음을 추가하십시오 (이 작업을하려면 필수).

function prompt_command {
    # Check if we are inside a git repository
    if git status > /dev/null 2>&1; then
        # Only get the name of the branch
        export GIT_STATUS=$(git status | grep 'On branch' | cut -b 10-)
    else
        export GIT_STATUS=""
    fi
}
# This function gets called every time PS1 is shown
PROMPT_COMMAND=prompt_command

PS1="\$GIT_STATUS \u@\h:\w\$ "

git 저장소 내부의 폴더에 있으면 다음과 같이 출력됩니다.

branch user @ machine : ~ $

그리고 우리가 보통 폴더 안에 있다면 :

user @ machine : ~ $

터미널 프롬프트에서 git 브랜치 이름 보이기

PS1 변수에 함수를 넣을 수 있습니다. 단 하나 인용하거나 특수 문자로 이스케이프를 사용해야합니다.

gitPS1(){
    gitps1=$(git branch 2>/dev/null | grep '*')
    gitps1="${gitps1:+ (${gitps1/#\* /})}"
    echo "$gitps1"
}

PS1='\u@\h:\w$(gitPS1)$ '

다음과 같은 프롬프트가 표시됩니다.

user@Host:/path (master)$ 

노트:

  • ~/.bashrc 또는 /etc/bashrc 또는 ~/.bash_profile 또는 ~./profile 파일 (OS에 따라 다름)을 변경하고 저장하십시오.
  • 파일을 저장 한 후 source ~/.bashrc (distro specific)를 실행하십시오.

터미널 프롬프트에 시간 표시

timeNow(){
    echo "$(date +%r)"
}
PS1='[$(timeNow)] \u@\h:\w$ '

다음과 같은 프롬프트가 표시됩니다.

[05:34:37 PM] user@Host:/path$ 

노트:

  • ~/.bashrc 또는 /etc/bashrc 또는 ~/.bash_profile 또는 ~./profile 파일 (OS에 따라 다름)을 변경하고 저장하십시오.
  • 파일을 저장 한 후 source ~/.bashrc (distro specific)를 실행하십시오.

터미널 프롬프트 색상 화 및 사용자 정의

저자가 개인 PS1 변수를 설정하는 방법은 다음과 같습니다.

gitPS1(){
    gitps1=$(git branch 2>/dev/null | grep '*')
    gitps1="${gitps1:+ (${gitps1/#\* /})}"
    echo "$gitps1"
}
#Please use the below function if you are a mac user
gitPS1ForMac(){
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
timeNow(){
    echo "$(date +%r)"
}
if [ "$color_prompt" = yes ]; then
  if [ x$EUID = x0 ]; then
    PS1='\[\033[1;38m\][$(timeNow)]\[\033[00m\] \[\033[1;31m\]\u\[\033[00m\]\[\033[1;37m\]@\[\033[00m\]\[\033[1;33m\]\h\[\033[00m\] \[\033[1;34m\]\w\[\033[00m\]\[\033[1;36m\]$(gitPS1)\[\033[00m\] \[\033[1;31m\]:/#\[\033[00m\] '
  else
    PS1='\[\033[1;38m\][$(timeNow)]\[\033[00m\] \[\033[1;32m\]\u\[\033[00m\]\[\033[1;37m\]@\[\033[00m\]\[\033[1;33m\]\h\[\033[00m\] \[\033[1;34m\]\w\[\033[00m\]\[\033[1;36m\]$(gitPS1)\[\033[00m\] \[\033[1;32m\]:/$\[\033[00m\] '
  fi
else
    PS1='[$(timeNow)] \u@\h \w$(gitPS1) :/$ '
fi

그리고 이것이 내 프롬프트가 어떻게 생겼는지입니다. 여기에 이미지 설명을 입력하십시오.

색상 참조 :

# Colors
txtblk='\e[0;30m' # Black - Regular
txtred='\e[0;31m' # Red
txtgrn='\e[0;32m' # Green
txtylw='\e[0;33m' # Yellow
txtblu='\e[0;34m' # Blue
txtpur='\e[0;35m' # Purple
txtcyn='\e[0;36m' # Cyan
txtwht='\e[0;37m' # White
bldblk='\e[1;30m' # Black - Bold
bldred='\e[1;31m' # Red
bldgrn='\e[1;32m' # Green
bldylw='\e[1;33m' # Yellow
bldblu='\e[1;34m' # Blue
bldpur='\e[1;35m' # Purple
bldcyn='\e[1;36m' # Cyan
bldwht='\e[1;37m' # White
unkblk='\e[4;30m' # Black - Underline
undred='\e[4;31m' # Red
undgrn='\e[4;32m' # Green
undylw='\e[4;33m' # Yellow
undblu='\e[4;34m' # Blue
undpur='\e[4;35m' # Purple
undcyn='\e[4;36m' # Cyan
undwht='\e[4;37m' # White
bakblk='\e[40m'   # Black - Background
bakred='\e[41m'   # Red
badgrn='\e[42m'   # Green
bakylw='\e[43m'   # Yellow
bakblu='\e[44m'   # Blue
bakpur='\e[45m'   # Purple
bakcyn='\e[46m'   # Cyan
bakwht='\e[47m'   # White
txtrst='\e[0m'    # Text Reset

노트:

  • ~/.bashrc 또는 /etc/bashrc 또는 ~/.bash_profile 또는 ~./profile 파일 (OS에 따라 다름)을 변경하고 저장하십시오.

  • root 경우 /etc/bash.bashrc 또는 /root/.bashrc 파일을 편집해야 할 수도 있습니다.

  • 파일을 저장 한 후 source ~/.bashrc (distro specific)를 실행하십시오.

  • 참고 : ~/.bashrc 변경 사항을 저장 한 경우 ~/.bash_profilesource ~/.bashrc 를 추가하여 터미널 응용 프로그램이 시작될 때마다 PS1 변경 내용이 기록되도록하십시오.

이전 명령 반환 상태 및 시간 표시

때로는 이전 명령의 반환 상태를 나타내는 시각적 힌트가 필요합니다. 다음 스 니펫은 PS1의 헤드에 놓습니다.

__stat () 함수는 새 PS1이 생성 될 때마다 호출되어야하며, 그렇지 않으면 .bashrc 또는 .bash_profile의 마지막 명령의 반환 상태를 유지해야합니다.

# -ANSI-COLOR-CODES- #
Color_Off="\033[0m"
###-Regular-###
Red="\033[0;31m"
Green="\033[0;32m"
Yellow="\033[0;33m"
####-Bold-####

function __stat() {
    if [ $? -eq 0 ]; then
        echo -en "$Green ✔ $Color_Off "
    else
        echo -en "$Red ✘ $Color_Off "
    fi
}

PS1='$(__stat)'
PS1+="[\t] "
PS1+="\e[0;33m\u@\h\e[0m:\e[1;34m\w\e[0m \n$ "

export PS1

여기에 이미지 설명을 입력하십시오.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow