bash 명령에 특정 색상을 지정하는 방법

bash 명령에 특정 색상을 지정하는 방법

내 bash 프롬프트는 한 줄에 있고 색상은 녹색이며 파일 경로는 파란색입니다. 명령을 입력하면 다음 줄에 나타납니다. Enter 키를 누르면 다음 줄에 출력이 나타납니다. 그런 다음 빈 줄이 있습니다.

나는 명령이 내가 선택한 색상(녹색이나 파란색이 아닌 것이 바람직함)으로 표시되거나 굵게 표시되어 그 앞의 줄과 그 뒤의 출력 줄과 구별되기를 정말로 원합니다. 출력 색상은 실행 파일 및 다양한 유형의 링크와 같은 다양한 항목을 나타내는 데 사용되므로 변경하고 싶지 않습니다.

이미지의 예에서는 "ls -la var"가 다른 색상을 갖기를 원합니다. 어떤 제안이라도 환영합니다.

여기에 이미지 설명을 입력하세요.

편집하다: don_aman의 답변을 바탕으로 .bashrc 파일에 다음 두 줄을 추가했습니다.

PS1="\n\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ \n\\[\\e[1;33m\\]"

그리고

PS0='\[\e[0m\]'

두 번째 줄이 없으면 출력의 일부 줄도 명령과 동일한 색상으로 표시됩니다.

이제 내 터미널은 다음과 같으며 이는 명령과 출력을 구별하는 데 도움이 됩니다. 여기에 이미지 설명을 입력하세요.

답변1

PS1Bash의 변수에 정의된 프롬프트 자체를 변경하여 프롬프트 뒤에 오는 텍스트의 서식을 제어할 수 있습니다 . 터미널에 대해서는 잘 모르지만 제어 순서는 다음과 같습니다.console_codes(4)XTerm의 경우 가지고 있는 터미널 유형인 것 같습니다( TERM환경 변수 확인). 해당 매뉴얼 페이지를 참조하여 프롬프트에 필요한 사용자 정의를 추가하세요. 더 구체적으로 말하면 ESC [ parameters m터미널의 표시 속성을 설정할 수 있는 시퀀스입니다.

를 변경하려면 PS1파일에서 해당 항목을 검색 ~/.bashrc하고 원하는 시퀀스를 추가하세요. 예를 들어 내 시스템에서는 PS1처음에 다음 값으로 설정되어 있습니다.

PS1="\\[\\e]0;\\u@\\h: \\w\\a\\]\${debian_chroot:+(\$debian_chroot)}\\[\\033[01;34m\\]\\u@\\h\\[\\033[00m\\]:\\[\\033[01;32m\\]\\w\\[\\033[00m\\]\\\$ "

입력 텍스트를 굵은 갈색으로 하려면 여기에 일련의 인쇄되지 않는 문자를 시작하는 시퀀스 를 \[\e1;33m\]추가 해야 합니다.PS1\[bash(1)), \]끝내기 위해 앞서 언급한 디스플레이 속성 제어 순서를 사용합니다. 매개 변수를 사용하여 1굵게 설정하고 33갈색 전경을 세미콜론으로 구분하여 설정합니다. 마지막으로 PS1과제를 .bashrc다음과 같이 변경했습니다.

PS1="\\[\\e]0;\\u@\\h: \\w\\a\\]\${debian_chroot:+(\$debian_chroot)}\\[\\033[01;34m\\]\\u@\\h\\[\\033[00m\\]:\\[\\033[01;32m\\]\\w\\[\\033[00m\\]\\\$ \\[\\e[1;33m\\]"

또한 명령을 실행하기 전에 표시 속성을 재설정할 수도 있습니다. 이는 변수를 사용하여 수행할 수 있습니다 PS0. 0이전에 표시된 동일한 매개변수 순서는 모든 속성을 재설정합니다.

PS0='\[\e[0m\]'

관련 정보