web-dev-qa-db-ja.com

LinuxターミナルプロンプトをParrotOSに一致するように変更する方法

ターミナルプロンプトはPS1="prefix"を使用して変更できることと、永続的に設定する方法を知っていることは問題ありません。オウムのOSのように設定するにはどうすればよいですか。

特に、複数行にするにはどうすればよいでしょうか。また、ニースの矢印をどのように作成しますか?

enter image description here

2
ItsDrike

これが私のコードです(まったく同じではありません)。

  • 改行を行うには\nがあります
  • 面白い矢印は文字をユニコード化します(web-lookupから貼り付けます)
  • カラーコードは\[\]の間にある必要があり、bashに幅がゼロであることを伝えます(行の先頭に移動するなどの処理を実行できるようにするためです。これはすべて- 推測
  • \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#↳ "
    
2
ctrl-alt-delor

シェルプロンプトレクリエーション:

Shell using ParrotOS-like Prompt

ファイル〜/ .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
3
ItsDrike

環境を介してParrot OSからPS1変数を取得し、ファイルにコピーして、他のLinuxで使用します。

だからそれはそのようになる可能性があります:

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

他のLinuxでは、このファイルをスクリプトとして使用します。変数をエクスポートする必要がある場合があります。 ~/.bashrcで設定するのは簡単です。

0
pbies

私はこの投稿に少し遅れるかもしれません...しかし、それが便利だと思う人のために、私は全体を貼り付けました.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
0
mogli