일부 스크린샷(웹 어디에 있는지 기억이 나지 않음)에서 터미널이 [username@machine /]$
굵은 글자로 표시될 수 있다는 것을 보았습니다. 나는 항상 긴 출력을 스크롤하고 명령 다음의 첫 번째 줄을 찾는 데 어려움을 겪고 있기 때문에 이것도 얻기를 기대했습니다.
사용자 이름 등을 굵게 표시하거나 색상을 지정하려면 어떻게 해야 합니까?
답변1
PS1
your 에서 가 설정된 위치를 찾아 시작과 끝 부분에 삽입 .bashrc
하세요 . '\[\e[1m\]'
\[\e[0m\]
\[
\]
내부 클러터가 화면에서 0 공간을 차지하고 있다는 것을 쉘이 인식하도록 하기 위해 필요하며, 이는 줄 편집을 수행할 때 일부 어수선한 동작을 방지할 수 있습니다 . 이것에 대해 너무 걱정할 필요가 없습니다.\e[
CSI(Control Sequence Introducer)라고도 합니다. 참조된 Wikipedia 페이지에 나열된 대부분의 코드에서 사용되는 것을 볼 수 있습니다.\e
이스케이프 문자를 나타냅니다.- Wikipedia 페이지의 SGR 테이블을 보면 1은 밝은/굵은 텍스트로 표시된 숫자이고 0은 재설정 숫자임을 알 수 있습니다. 따라서
CSI 1m
볼드체를 활성화하고CSI 0m
글꼴을 재설정하여 나머지 텍스트가 정상적으로 보이도록 하세요.
Wikipedia에는 완전한 내용이 있습니다.ANSI 이스케이프 코드 목록터미널 에뮬레이터가 지원하는 경우 사용할 수 있습니다.
편집하다
tput
이식성과 가독성을 위해 하드코딩보다는 이스케이프 코드를 사용해야 합니다 . 유일한 단점은 tput
ANSI 코드를 지원하지만 terminfo 데이터베이스가 손상되거나 누락된 터미널에서는 이 방법이 작동하지 않는다는 것입니다. 그러나 이 경우 terminfo에 의존하는 많은 콘솔 응용 프로그램이 제대로 작동하지 않을 수 있으므로 손상된 terminfo가 더 큰 문제입니다. 일하다.
다음은 내가 수행한 작업의 예입니다 .bashrc
.
# color names for readibility
reset=$(tput sgr0)
bold=$(tput bold)
black=$(tput setaf 0)
red=$(tput setaf 1)
green=$(tput setaf 2)
yellow=$(tput setaf 3)
blue=$(tput setaf 4)
magenta=$(tput setaf 5)
cyan=$(tput setaf 6)
white=$(tput setaf 7)
user_color=$green
[ "$UID" -eq 0 ] && { user_color=$red; }
PS1="\[$reset\][\[$cyan\]\A\[$reset\]]\[$user_color\]\u@\h(\l)\
\[$white\]:\[$blue\]\W\[$reset\][\[$yellow\]\$?\[$reset\]]\[$white\]\
\\$\[$reset\] "
이것이 내 일반 버전의 모습입니다. 0
마지막 명령의 종료 상태입니다 .
답변2
다음과 같이 파일 PS1
에서 프롬프트 변수를 설정하여 이를 수행할 수 있습니다 .~/.bashrc
PS1='[\u@\h \w]\$ '
색상을 지정하려면(굵게 표시 가능 - 터미널 에뮬레이터의 활성화 여부에 따라 다름) 이스케이프된 색상 코드를 추가해야 합니다.
PS1='\[\e[1;91m\][\u@\h \w]\$\[\e[0m\] '
1;91m
여기서 및 부분 사이에 이스케이프되지 않은 모든 항목은 0m
색상이 지정됩니다(굵은 빨간색) 1;91
. 다른 색상을 사용하려면 프롬프트의 다른 부분에 이러한 이스케이프 코드를 배치하십시오. 그러나 재설정 색상을 사용하는 것을 기억하십시오. 0m
그렇지 않으면 터미널 출력도 색상이 지정됩니다. 현재 쉘을 업데이트하려면 나중에 이 파일을 가져와야 합니다.source ~/.bashrc
답변3
이것은 cygwin bash 쉘에서 수신되는 기본 프롬프트입니다:
PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$ '
\[\e]0;\w\a\] = Set the Window title to your current working directory
\n = new line
\[\e[32m\] = Set text color to green
\u@\h = display username@hostname
\[\e[33m\] = Set text color to yellow
\w = display working directory
\[\e[0m\] = Reset text color to default
\n = new line
\$ = display $ prompt
인용하다:
man bash
이 부분을 참고하시고 확인하시기 바랍니다PROMPTING
.- 바라보다ANSI 이스케이프 코드 - Wikipedia.