편집하다

편집하다

일부 스크린샷(웹 어디에 있는지 기억이 나지 않음)에서 터미널이 [username@machine /]$굵은 글자로 표시될 수 있다는 것을 보았습니다. 나는 항상 긴 출력을 스크롤하고 명령 다음의 첫 번째 줄을 찾는 데 어려움을 겪고 있기 때문에 이것도 얻기를 기대했습니다.

사용자 이름 등을 굵게 표시하거나 색상을 지정하려면 어떻게 해야 합니까?

답변1

PS1your 에서 가 설정된 위치를 찾아 시작과 끝 부분에 삽입 .bashrc하세요 . '\[\e[1m\]'\[\e[0m\]

  • \[\]내부 클러터가 화면에서 0 공간을 차지하고 있다는 것을 쉘이 인식하도록 하기 위해 필요하며, 이는 줄 편집을 수행할 때 일부 어수선한 동작을 방지할 수 있습니다 . 이것에 대해 너무 걱정할 필요가 없습니다.
  • \e[CSI(Control Sequence Introducer)라고도 합니다. 참조된 Wikipedia 페이지에 나열된 대부분의 코드에서 사용되는 것을 볼 수 있습니다. \e 이스케이프 문자를 나타냅니다.
  • Wikipedia 페이지의 SGR 테이블을 보면 1은 밝은/굵은 텍스트로 표시된 숫자이고 0은 재설정 숫자임을 알 수 있습니다. 따라서 CSI 1m볼드체를 활성화하고 CSI 0m글꼴을 재설정하여 나머지 텍스트가 정상적으로 보이도록 하세요.

Wikipedia에는 ​​완전한 내용이 있습니다.ANSI 이스케이프 코드 목록터미널 에뮬레이터가 지원하는 경우 사용할 수 있습니다.

편집하다

tput이식성과 가독성을 위해 하드코딩보다는 이스케이프 코드를 사용해야 합니다 . 유일한 단점은 tputANSI 코드를 지원하지만 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마지막 명령의 종료 상태입니다 .

PS1 스크린샷

답변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

인용하다:

답변4

기본 Ubuntu 프롬프트처럼 보이도록 하려면 다음을 추가하세요.

export PS1='\[\e[1;32m\]\u@\h\e[0;39m\]:\e[1;34m\]\w\e[0;39m\]$\[\e[0m\] '

당신의 ~/.bashrc.

이렇게 하면 잘 알려진 녹색 user@host(굵게) 색상이 생성되고 그 뒤에 굵게 표시되지 않은 흰색 콜론이 표시되고 그 뒤에 굵은 파란색으로 표시되는 작업 디렉터리가 표시되고 기호 $, 공백, 마지막으로 굵게 표시되지 않은 흰색 문자로 표시되는 명령이 표시됩니다.

우분투 배쉬 프롬프트

관련 정보