Computer >> 컴퓨터 >  >> 체계 >> Linux

8 유용하고 흥미로운 Bash 프롬프트

8 유용하고 흥미로운 Bash 프롬프트

많은 사람들이 명령줄 프롬프트를 유용한 요소로 생각하지 않거나 많은 관심을 기울이지 않습니다. 그러나 유용한 프롬프트는 명령줄을 사용하는 방식과 시스템을 변경할 수 있습니다. 이 기사에서는 여러 가지 유용하고 흥미로운 Bash 프롬프트를 예제와 함께 보여줍니다. 프롬프트 자체로 시작한 다음 작업 방법에 대한 추가 지침을 제공합니다.

여기에서 우리는 몇 가지 Bash 프롬프트를 제공하지만 모두가 진지하지는 않습니다. 예를 들어, 목록의 첫 번째 항목은 명령줄을 사용할 때 약간의 기쁨을 줄 수 있습니다!

1. 성공적으로 실행되면 "카오모지" 표시

이 프롬프트는 재미있지만 유용합니다! 명령을 성공적으로 실행하는 한 프롬프트에 행복한 카오모지가 표시됩니다.

8 유용하고 흥미로운 Bash 프롬프트

반대로 명령이 실패하면 슬픈 카오모지가 표시됩니다.

이를 적용하려면 다음 코드를 사용하십시오.

PS1="\`if [ \$? =0 ]; then echo \[\e[33m\]^_^\[\e[0m\]; else echo \[\e[31m\]O_O \[\e[0m\]; fi\`[\u@\h:\w]\\$ "

이것은 혼란스러워 보일 수 있지만 명령이 좋은지 나쁜지 결정하기 위해 if 문을 사용합니다. 거기에서 우리는 kaomoji가 올바른 방향으로 표시되는지 확인하기 위해 약간의 탈출을 사용합니다.

2.터미널에서 잘못된 명령을 발행할 때 Bash 프롬프트의 색상 변경

8 유용하고 흥미로운 Bash 프롬프트

틀림없이 이 프롬프트는 목록에서 가장 유용합니다. 위와 같이 마지막 명령이 실행되지 않으면 프롬프트의 색상이 변경되지만 긴 경로도 단축되며 쉽게 검색할 수 있도록 각 명령의 Bash 기록 번호가 포함됩니다.

PROMPT_COMMAND='PS1="\[\033[0;33m\][\!]\`if [[ \$? ="0" ]]; then echo "\\[\\033[32m\ \]"; 그렇지 않으면 echo "\\[\\033[31m\\]"; fi\`[\u.\h:\`if [[ `pwd|wc -c|tr -d " "`> 18 ]]; echo "\\W"; 그렇지 않으면 echo "\\w"; fi\`]\$\[\033[0m\] "; echo -ne "\033]0;`호스트 이름 -s`:`pwd`\007"'

다시 말하지만, 이것은 구현하기가 어려워 보일 수 있지만 간단합니다. 다양한 메시지를 강조하기 위해 색상 코드와 함께 if 문을 다시 사용합니다.

이 색상을 원하는 대로 만들 수 있지만 단순히 변경을 위해 변경하는 것보다 변경된 색상이 도움이 되어야 한다는 논리적인 생각을 해볼 것입니다.

3. Bash 프롬프트를 여러 줄로 확장

8 유용하고 흥미로운 Bash 프롬프트

때로는 Bash 프롬프트에 많은 정보를 포함하고 싶을 수 있습니다. 이것이 당신을 설명한다면 이 Bash 프롬프트가 흥미로울 것입니다. 날짜, 시간, 전체 디렉토리 경로, 사용자 및 호스트 이름, 활성 터미널, 파일 수 및 공간 사용량까지 보여줍니다.

PS1="\n\[\033[35m\]\$(/bin/date)\n\[\ 033[32m\]\w\n\[\033[1;31m\]\u@\h:\[\033[1;34m\]\$(/usr/bin/tty | /bin/sed -e 's:/dev/::'):\[\033[1;36m\]\$(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's:::g') 파일 \[\033[1;33m\]\$(/bin/ls - 라 | /bin/grep -m 총 1개 | /bin/sed 's/total //')b\[\033[0m\] -> \[\033[0m\]"

여기에서는 프롬프트 자체가 정적 레이아웃을 가지지만 동적 콘텐츠를 갖기 때문에 if 문이 필요하지 않습니다. 이 항목에서 다른 요소를 구문 분석하는 것이 어려울 수도 있습니다. 우리의 조언은 그것을 적용한 다음 프롬프트를 하나씩 실행하는 것입니다. 약간의 상호 참조를 통해 프롬프트가 결합되는 방식을 이해하기 시작할 것입니다.

4. 색상을 사용하여 Bash 프롬프트의 가독성을 높입니다.

8 유용하고 흥미로운 Bash 프롬프트

다양한 정보를 구분하기 위해 색상을 잘 사용하는 것 외에는 이 프롬프트에서 멋진 것이 없습니다. 보시다시피 시간, 사용자 및 호스트 이름, 현재 디렉토리를 제공합니다.

PS1="\[\033[35m\]\t\[\033[m\]-\[\033[36m\]\u\[\033[m\] @\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ "

이것은 가장 유용한 Bash 프롬프트 중 하나이며 프롬프트를 사용자 정의하기 위해 먼저 살펴볼 영역입니다. 사용자 지정 프롬프트가 작동하는 방식을 배울 수 있는 좋은 기초가 될 수 있습니다.

5. 전체 디렉토리 경로 표시

색상을 사용하는 것과 마찬가지로 이 프롬프트는 깨끗하고 최소한의 두 줄 프롬프트입니다(상단에 빈 줄이 있지만).

8 유용하고 흥미로운 Bash 프롬프트

첫 번째 줄에는 전체 작업 디렉터리 경로가 표시되고 맨 아래에는 사용자가 표시됩니다.

PS1="[\[\033[32m\]\w]\[\033[0m\]\n\[\033[1;36m\]\u\[\ 033[1;33m\]-> \[\033[0m\]"

프롬프트 내에서 빈 줄을 사용하지 않으려면 첫 번째 \n를 제거할 수 있습니다. . 그러나 각 터미널 환경은 컴퓨터 및 명령줄 설정에 따라 다르므로 레이아웃과 형식을 조정해 보십시오.

6. 백그라운드 작업 수 표시

이 두 줄은 Bash 프롬프트에서 아직 사용하지 않은 정보를 표시합니다. 백그라운드 작업의 누적 집계를 제공합니다. 멀티태스킹을 하고 있지만 활동을 주시해야 하는 경우에 유용합니다.

8 유용하고 흥미로운 Bash 프롬프트

첫 번째 줄은 작업 디렉토리 경로와 함께 사용자 및 호스트 이름입니다. 두 번째 줄에는 기록 번호와 백그라운드에서 실행 중인 작업 수가 있습니다.

PS1='\[\e[1;32m\]\u@\H:\[\e[m\] \[\e[1;37m\]\w\[\e[m\] \n\[\e[1;33m\]이력:\! \[\e[0;33m\] \[\e[1;31m\]작업:\j \$\[\e[m\] '

시스템 활동에 대한 많은 필요한 정보를 제공할 수 있지만 이것에는 그다지 많은 것이 없습니다. 이것을 더 복잡한 프롬프트로 바꾸고 작업이 특정 수준에 도달할 때 알려주는 if 문과 색상 코딩을 추가할 수도 있습니다.

7. 작업 디렉토리에 대한 정보 표시

8 유용하고 흥미로운 Bash 프롬프트

이것을 사용하여 사용자 및 호스트 이름, 작업 수, 날짜 및 시간을 맨 윗줄에 표시합니다. 그 아래에는 현재 디렉토리와 해당 디렉토리의 파일 수 및 디스크 사용량에 대한 일부 정보가 표시됩니다.

PS1="\n\[\e[30;1m\]\[\016\]l\[\017\](\[\e[34;1m\]\ u@\h\[\e[30;1m\])-(\[\e[34;1m\]\j\[\e[30;1m\])-(\[\e[34;1m \]\@ \d\[\e[30;1m\])->\[\e[30;1m\]\n\[\016\]m\[\017\ ]-(\[\[\e[32;1m\]\w\[\e[30;1m\])-(\[\e[32;1m\]\$( /bin/ls -1 | /usr/bin/wc -l | /bin/sed 's:::g') 파일, \$(/bin/ls -lah | /bin/ grep -m 총 1개 | /bin/sed 's/total //')b\[\e[30;1m\])--> \[\e[0m\]"

이러한 모든 프롬프트의 가장 큰 문제는 서식 지정 및 이스케이프 주변에서 무슨 일이 일어나고 있는지 파악하는 것입니다. 그러나 여러 줄 프롬프트와 마찬가지로 전체 구조를 이해할 때까지 이 문제를 하나씩 해결해야 합니다.

한 번에 일부를 입력하고 표시 여부나 오류가 있는지 확인하고 전체 스니펫까지 작업할 수도 있습니다.

8. 나만의 Bash 프롬프트 만들기

8 유용하고 흥미로운 Bash 프롬프트

위의 모든 것을 결합하여 사용자 지정 Bash 프롬프트를 만들 수 있습니다. 예를 들어, 이것은 이 목록의 7번을 수정한 것이지만 공간을 덜 차지하고 일부 특정 관련 정보를 포함하도록 변경되었습니다.

두 줄 스타일은 사용하는 명령의 공간을 줄이지 않고 전체 경로를 볼 수 있으므로 항상 더 간결합니다.

PS1="\n\[\e[32;1m\](\[\e[37;1m\]\u\[\e[32;1m\])- (\[\e[37;1m\]작업:\j\[\e[32;1m\])-(\[\e[37;1m\]\w\[\e[32;1m\] )\n(\[\[\e[37;1m\]! \!\[\e[32;1m\])-> \[\e[0m\]" 

지금쯤이면 이 프롬프트가 무엇을 하는지 이해하게 되겠지만, 이 프롬프트를 붙여넣는 것보다 직접 생성하는 것이 좋습니다. 그렇게 하면 다양한 요소가 함께 작동하는 방식을 배울 수 있고 나만의 맞춤형 Bash 프롬프트

자주 묻는 질문

1. 다른 Bash 프롬프트를 사용하고 싶은 이유는 무엇입니까?

여기에는 여러 가지 이유가 있지만 생산성이 핵심 고려 사항입니다. 명령줄을 자주 사용하는 경우 몇 초마다 프롬프트가 표시됩니다. 따라서 가장 중요한 정보를 넣어두면 항상 손에 넣을 수 있습니다.

많은 경우 사용자 지정 Bash 프롬프트를 사용하는 것이 여러 창을 열어 두는 것보다 더 효율적입니다.

2. 이 Bash 프롬프트를 터미널 출력에 어떻게 추가합니까?

이러한 프롬프트를 사용하려면 코드를 복사하여 터미널 앱에 붙여넣으면 됩니다. 그러나 이것은 현재 세션에만 적용되므로 이론상 터미널을 실행할 때마다 이 작업을 수행해야 합니다.

변경 사항을 영구적으로 적용하려면 ~/.bashrc 파일 끝에 스니펫을 붙여넣고 터미널을 다시 시작하세요.

3. 이 Bash 프롬프트는 다른 쉘을 사용해도 작동합니까?

많은 경우 다른 유형의 셸과 상호 호환성이 있음을 알 수 있습니다. 그러나 변경 사항이 100% 패리티를 제공한다는 보장은 없습니다.

Mac 터미널 사용자 정의에 대한 게시물을 보면 zsh를 사용합니다. 약간의 차이점이 있지만 많은 유사점이 있음을 알 수 있습니다.

4. Bash 프롬프트에 어떤 정보와 요소를 추가할 수 있는지 어떻게 알 수 있나요?

시스템의 거의 모든 요소가 Bash 프롬프트에 나타날 수 있습니다. Bash 변수를 살펴보고 싶을 것입니다. 이것이 이러한 다양한 요소를 "잠금 해제"하는 방법입니다.

변경할 수 있는 사항을 이해하는 데 유용한 리소스는 Linux.com 웹사이트에 있으며, 사용자 지정 세션 동안 해당 문서를 가까이에 두는 것이 좋습니다.

5. 내 터미널에서 사용자 지정 Bash 프롬프트를 더 이상 사용하지 않으려면 어떻게 합니까?

여기서 간단한 대답은 구성 파일을 열고 관련 줄을 삭제하는 것입니다. 추가 명령을 수행할 필요는 없지만 예상한 변경 사항이 표시되지 않으면 터미널을 다시 시작하는 것이 좋습니다.

정기적으로 명령줄을 사용하거나 터미널 앱을 실행할 때 특정 요구 사항이 있는 경우 프롬프트를 사용자 지정하는 것이 좋습니다. 많은 지식이 필요하지 않으며 대부분의 경우 다른 개발자에게 필요한 프롬프트를 찾을 수 있습니다.