![Bash에서 명령 프롬프트 색상을 변경하는 방법은 무엇입니까? [복사]](https://linux55.com/image/2737/Bash%EC%97%90%EC%84%9C%20%EB%AA%85%EB%A0%B9%20%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8%20%EC%83%89%EC%83%81%EC%9D%84%20%EB%B3%80%EA%B2%BD%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
명령을 실행할 때 명령 출력의 시작 부분을 찾는 데 종종 어려움을 겪습니다. 이 문제를 해결하는 쉬운 방법은 명령 프롬프트에 색상을 지정하거나 굵게 표시하여 중단한 위치를 쉽게 확인할 수 있도록 하는 것입니다. 어떻게?
답변1
이것이 제가하는 것입니다. Escape 문은 사람이 읽기 어렵기 때문에 추가 Escape 문 대신 tput(1)을 사용합니다.
이것은 내 .bashrc에서 가져온 것입니다.
### Set the prompt like "username@hostname:~ $"
# See: http://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/
# And: http://mywiki.wooledge.org/BashFAQ/037
# 'tput bold' will work regardless of the foreground and background colors.
# Place the tput output into variables, so they are only execd once.
bold=$(tput bold)
reset=$(tput sgr0)
export PS1="\u@\[$bold\]\h\[$reset\]:\w \$ "
이것은 또 다른 옵션입니다. 이는 이스케이프 시퀀스보다 더 읽기 쉽습니다.
# Bash
red=$(tput setaf 1)
green=$(tput setaf 2)
blue=$(tput setaf 4)
reset=$(tput sgr0)
PS1='\[$red\]\u\[$reset\]@\[$green\]\h\[$reset\]:\[$blue\]\w\[$reset\]\$ '
답변2
사용 편의성을 위해 먼저 색상을 프롬프트 변수에 매핑한 .bashrc
다음 $PS1
프롬프트 변수()에서 재사용할 수 있습니다.
1단계: 지도 색상:
#~/.bashrc
# Color mapping
grey='\[\033[1;30m\]'
red='\[\033[0;31m\]'
RED='\[\033[1;31m\]'
green='\[\033[0;32m\]'
GREEN='\[\033[1;32m\]'
yellow='\[\033[0;33m\]'
YELLOW='\[\033[1;33m\]'
purple='\[\033[0;35m\]'
PURPLE='\[\033[1;35m\]'
white='\[\033[0;37m\]'
WHITE='\[\033[1;37m\]'
blue='\[\033[0;34m\]'
BLUE='\[\033[1;34m\]'
cyan='\[\033[0;36m\]'
CYAN='\[\033[1;36m\]'
NC='\[\033[0m\]'
2단계. PS1 변수를 재정의합니다.
PS1="$yellow[$CYAN\t$yellow][$red\H$yellow][$GREEN\w$grey$yellow]$NC# "
답변3
Bash 프롬프트 색상을 지정하는 방법을 설명하는 좋은 참조 페이지가 있습니다.아치 리눅스 위키.
여기에는 색상, 이스케이프 시퀀스 및 프롬프트나 인쇄 정보(디렉토리, 호스트 등)에 다른 문자를 포함하는 올바른 방법에 대한 정보가 포함됩니다.
예를 들어 다음과 같은 간단한 팁이 있습니다.
PS1='\[\e[1;32m\][\u@\h \W]\$\[\e[0m\] '
이는 다음 요소로 나눌 수 있습니다.
\[\e[1;32m]
- 녹색 대괄호 (1;32m)
[\u@h \W]
- 현재 작업 디렉토리의 사용자 이름@호스트 이름 및 기본 이름
\$
- 프롬프트( #
UID가 0인 경우)
\[e[0m\]
- 텍스트 재설정 이스케이프는 색상 순서의 끝을 나타냅니다.
이러한 시퀀스를 사용하면 다채롭고 유익한 프롬프트를 만들 수 있습니다.
주의 사항: 시퀀스를 올바르게 이스케이프 처리하지 못하면 터미널의 텍스트 인쇄 기능에 큰 피해를 줄 수 있습니다.
답변4
이것은 내 .bashrc입니다.
case $HOSTNAME in
plato*) PSC="\e[1;33m" ;;
*) PSC="\e[36m" ;;
esac
PS1="[\j]\[${PSC}\]\u@\h(\l) \[\e[37m\][ \w ]\[\e[00m\]\n\[\e[1m\]\#\[\e[0m\] \$ "
취향에 맞게 편집하세요. 또한 메인 워크스테이션과 다른 호스트에 서로 다른 색상을 사용합니다.