터미널 프롬프트에 색상 더하기

6319 단어 coloursterminalbash
만약 네가 터미널에 산다면, 너도 안에서 편안함을 느낄 수 있다.
이 문서에서는 다음을 다룹니다.
  • 프롬프트 터미널의 색상을 설정하는 방법.
  • 현재git 지점을 어떻게 표시합니까?
  • 당신은 다음과 같은 것을 얻을 수 있습니다.

    내가 진정으로 원하는 것은 맞춤형 단말기를 가지고 있다는 것이다. 일부 케이스는 zhs에서 보급된 가장 유행하는 비긴oh my zsh 중의 하나이다.어떤 사람들에게는 아주 좋은 도구들이지만, 나에게는 단지 약간의 색깔과git 지점을 표시하고 싶을 뿐이다.마치 뇌신의 망치로 작은 못을 두드리는 것 같다.나는 이것이 bash를 사용하여 실현될 수 있다는 것을 알고 있다. 그래서 나는 그것을 어떻게 실현하는지 발굴을 했다.

    힌트 어디 있어요?


    bash의 많은 내용과 마찬가지로 모든 내용은 하나의 설정 변수에 저장됩니다. 이 예에서 알림부호는 PS1 변수에 저장됩니다. 보십시오.
    $ echo $PS1
    ${debian_chroot:+($debian_chroot)}\u@\h:\w\$
    
    위의 가장 간단한 구조는 다음과 같습니다.
    \u@\h:\w\$
    
  • \u: 사용자 이름
  • @:at 기호
  • \h: 호스트 이름
  • W: 작업 디렉토리
  • $: # 루트인 경우 서명하고 일반 사용자인 경우 $sign에 서명하십시오.
  • 우리는 마음대로 이 변수를 바꿀 수 있다.프롬프트에 작업 디렉토리만 있으면 다음과 같이 할 수 있습니다.
    export PS1="\w\$ "
    ~/
    
    공교롭게도, 이런 변화는 영구적이지 않다. 만약 당신이 새로운 터미널을 열면, 그것은 마치 당신이 시작했을 때와 같다.
    기왕 우리가 뼈가 생겼으니 색깔을 좀 칠해 주시겠어요?

    색깔과 스타일


    터미널에서 색상과 스타일에 접근하는 방식은 시퀀스를 사용합니다. 예를 들어 \e[92m 는 연두색을 표시합니다.우리는 echo -e "\e[92m This text is green"로 약간의 물건을 인쇄할 수 있다.

    echo it의 -e 옵션은 "백슬래시 이스케이프 사용 설명"(매뉴얼 페이지)일 뿐입니다.
    이 서열을 봅시다. \e[92m이것은 전의 문자로 구성되어 있으며 \e, \033 또는 \x1B를 통해 전의 문자에 접근할 수 있으며 그 다음은 [ 형식 코드(92)와 m이다.
    선택할 수 있는 색상은 다음과 같습니다.
  • \e[0m: 재설정, 스타일 및 색상 삭제
  • \e[30m: 블랙
  • \e[31m: 빨간색.
  • \e[32m: 녹색.
  • \e[33m: 노란색.
  • \e[34m: 파란색.
  • \e[35m: 자홍색.
  • \e[36m: 청색.
  • 따라서 이제 우리는 그것들을 이전 절과 결합시켜 우리의 제시 부호를 설계할 수 있다.사용자와 호스트를 파란색으로 설정합니다.
    export PS1="\e[34m\u@\h\e[0m:\w\$"
    

    이거.bashrc 프로필


    자, 이제 일이 어떻게 돌아가는지 알게 되었으니, 우리는 그것을 우리의 영구적인 배치로 삼을 수 있다.이를 위해서는 ~/.bashrc 구성 파일을 작성해야 합니다.
    당신이 가장 좋아하는 편집기로 파일을 엽니다. (물론vim...)다음을 붙여넣습니다.
    bold="\e[1m"
    light_green="\e[92m"
    blue="\e[34m"
    yellow="\e[33m"
    reset_formating="\e[0m"
    get_branch() {
       git symbolic-ref --short HEAD 2>/dev/null
    }
    export PS1="\[${bold}${light_green}\]\u@\h \[${blue}\]\W\[${yellow}\] [\$(get_branch)]\[${reset_formating}\]\$ "
    
    이제 우리가 여기서 무엇을 했는지 잘 알겠습니다. 첫 줄에서 우리는 문자열 변수만 설명할 뿐입니다.그리고 우리는 get_branch 함수를 정의했습니다. 이것은 함수입니다. 한 디렉터리에서 다른 디렉터리로 전환할 때마다 이 프로젝트의 현재git 지점을 추출합니다.
    주의: \[\]는 여기서 작용하지 않습니다. 블록을 조직하기만 하면 됩니다.
    참고: "In bash, this is how we access the value of the variable: ${variable_name}"이렇게!source .bashrc를 실행하거나 새 터미널을 열면 변경 사항이 표시됩니다.cd 을 통해git 저장소가 있는 디렉터리로 테스트해 보십시오.
    나는 이것이 너에게 도움이 되기를 바란다.만약 네가 그것이 유용하다고 생각하거나 문제를 발견했다면, 나에게 빠른 이메일 한 통만 보내면, 나는 가능한 한 빨리 너에게 회답할 것이다.
    모든 일이 순조롭길 빕니다!

    도구책

  • Git
  • zhs
  • oh my zsh
  • 내 개인 홈페이지에 처음 발표:
    https://sespinoza.me/#/articles/5fbc6e4d9a9e50c1b04d09ab

    나에 관하여


    나는 소프트웨어 엔지니어, 작가, 과학 기술 애호가, 피아니스트, 종이 접기 애호가, 아마추어 사진작가이다.여가 시간에 나는 도보 여행을 하고 피아노를 치며 역사를 배운다.
    내 기술: JavaScript, 노드.js,React,Ruby,Crystal,Bash,Docker.
    당신은 계속 저를 주목하거나 제 페이지를 방문하여 저에게 연락할 수 있습니다me.

    좋은 웹페이지 즐겨찾기