답변1
쉘 프롬프트가 다시 나타납니다:
~/.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
아마 이 글을 작성하는 것이 조금 늦었을 것입니다... 하지만 유용하다고 생각하시는 분들을 위해 .bashrc
ParrotOS에서 전체 파일을 붙여넣었 습니다.여기.
관심을 가지실 부분은 다음과 같습니다.
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
쉬울 것입니다.