ParrotOS와 일치하도록 Linux 터미널 프롬프트를 변경하는 방법

ParrotOS와 일치하도록 Linux 터미널 프롬프트를 변경하는 방법

Change Terminal Prompt 를 사용할 수 있다는 것을 알고 PS1="prefix"있으며 영구적으로 설정하는 방법도 알고 있으므로 문제가 되지 않습니다. Parrot OS에서처럼 보이도록 어떻게 설정하는지 궁금합니다.

구체적으로 여러 줄로 만드는 방법과 멋진 화살표를 만드는 방법은 무엇입니까?

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

답변1

쉘 프롬프트가 다시 나타납니다:

ParrotOS와 유사한 프롬프트를 사용하는 쉘

~/.bash_prompt 파일(또는 원하는 이름)을 만들고 이 코드를 붙여넣습니다.

# Define some basic colors using tput (8-bit color: 256 colors)
red="\[$(tput setaf 160)\]"
bright_red="\[$(tput setaf 196)\]"
light_purple="\[$(tput setaf 60)\]"
orange="\[$(tput setaf 172)\]"
blue="\[$(tput setaf 21)\]"
light_blue="\[$(tput setaf 80)\]"
bold="\[$(tput bold)\]"
reset="\[$(tput sgr0)\]"

# Define basic colors to be used in prompt
## The color for username (light_blue, for root user: bright_red)
username_color="${reset}${bold}${light_blue}\$([[ \${EUID} == 0 ]] && echo \"${bright_red}\")";
## Color of @ and ✗ symbols (orange)
at_color=$reset$bold$orange
## Color of host/pc-name (blue)
host_color=$reset$bold$blue
## Color of current working directory (light_purple)
directory_color=$reset$light_purple
## Color for other characters (like the arrow)
etc_color=$reset$red
# If last operation did not succeded, add [✗]- to the prompt
on_error="\$([[ \$? != 0 ]] && echo \"${etc_color}[${at_color}✗${etc_color}]─\")"
# The last symbol in prompt ($, for root user: #)
symbol="${reset}${bold}${bright_red}$(if [[ ${EUID} == 0 ]]; then echo '#'; else echo '$'; fi)"


# Setup the prompt/prefix for linux terminal
PS1="${etc_color}┌─${on_error}[";
PS1+="${username_color}\u"; # \u=Username
PS1+="${at_color}@";
PS1+="${host_color}\h" #\h=Host
PS1+="${etc_color}]-[";
PS1+="${directory_color}\w"; # \w=Working directory
PS1+="${etc_color}]\n└──╼ "; # \n=New Line
PS1+="${symbol}${reset}";

export PS1

주석은 코드의 기능을 완전히 설명해야 합니다.
이 프롬프트를 자동으로 사용하려면 ~/.bashrc 파일에 다음 코드를 추가하세요.

# Use custom bash prompt (will execute .bash_prompt script)
if [ -f ~/.bash_prompt ]; then
  . ~/.bash_prompt
fi

답변2

내 코드는 다음과 같습니다(정확히 동일하지는 않음).

  • 줄 바꿈을 수행하려면 다음이 있습니다.\n
  • 흥미로운 화살표는 유니코드 문자입니다(웹 찾기에서 붙여넣기).
  • \[색상 코드는 과 사이에 있어야 하며 \], bash에게 너비가 0이라는 것을 알려주어야 합니다(그래서 줄의 시작 부분으로 이동하는 것과 같은 일을 할 수 있습니다. 이것은 모두 다음을 사용하여 수행됩니다.추측 항법.
  • \033[01;32m색상 코드와 같은 코드.

    if [ "$color_prompt" = yes ]; then
      PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
    else
        PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    fi
    _PS1="$PS1"
    PS1='$(echo $title|sed -r -e "s/^(\S+)\$/[\1]/")'"${_PS1}\n#↳ "
    

답변3

아마 이 글을 작성하는 것이 조금 늦었을 것입니다... 하지만 유용하다고 생각하시는 분들을 위해 .bashrcParrotOS에서 전체 파일을 붙여넣었 습니다.여기.

관심을 가지실 부분은 다음과 같습니다.

if [ "$color_prompt" = yes ]; then
    PS1="\[\033[0;31m\]\342\224\214\342\224\200\$([[ \$? != 0 ]] && echo \"[\[\033[0;31m\]\342\234\227\[\033[0;37m\]]\342\224\200\")[$(if [[ ${EUID} == 0 ]]; then echo '\[\033[01;31m\]root\[\033[01;33m\]@\[\033[01;96m\]\h'; else echo '\[\033[0;39m\]\u\[\033[01;33m\]@\[\033[01;96m\]\h'; fi)\[\033[0;31m\]]\342\224\200[\[\033[0;32m\]\w\[\033[0;31m\]]\n\[\033[0;31m\]\342\224\224\342\224\200\342\224\200\342\225\274 \[\033[0m\]\[\e[01;33m\]\\$\[\e[0m\]"
else
    PS1='┌──[\u@\h]─[\w]\n└──╼ \$ '
fi

답변4

env를 통해 Parrot OS에서 PS1 변수를 가져와 파일에 복사한 후 다른 Linux에서 사용하세요.

따라서 다음과 같이 보일 수 있습니다.

echo "PS1=\"$PS1\"" > setPS1

그리고 이 파일을 다른 Linux에서 스크립트로 사용하세요. 이 변수를 내보내야 할 수도 있습니다. 설정하는 것은 ~/.bashrc쉬울 것입니다.

관련 정보