[Seek Help] 改变命令提示行的样式
Tofloor
poster avatar
facewind1
deepin
2023-01-06 01:35
Author

image.png

第二行的 $ 顶格,我这里截图错了

Reply Favorite View the author
All Replies
忆往
deepin
2023-01-06 03:33
#1

网上搜索一下 oh-my-zsh 这个插件 神奇的东东

😁

Reply View the author
SamLukeYes
deepin
2023-01-06 04:21
#2

建议使用:https://starship.rs/

Reply View the author
facewind1
deepin
2023-01-06 04:37
#3
忆往

网上搜索一下 oh-my-zsh 这个插件 神奇的东东

😁

最开始我也是用manjaro,直接用的是oh-my-zsh,但是manjaro总是出问题,一更新就出各种依赖问题,后来我又转到deepin了,QQ、微信啥的都蛮适配的。但是deepin安装oh-my-zsh贼慢,不挂梯子几乎不行,就不想弄了。

现在我搞清楚PS1怎么修改了了,已解决问题,谢谢。

Reply View the author
facewind1
deepin
2023-01-06 04:37
#4
It has been deleted!
facewind1
deepin
2023-01-06 04:39
#5
SamLukeYes

建议使用:https://starship.rs/

看了一下,感觉不错,不知道性能怎么样,我先试试。

Reply View the author
吉吉如律令
deepin
2023-01-06 17:05
#6
忆往

网上搜索一下 oh-my-zsh 这个插件 神奇的东东

😁

还有Oh my posh

Reply View the author
lanxing0821
deepin
2023-01-08 07:44
#7

在 PS1 中使用 24 位色,需要 Hack 字体

# 可能需要安装 fonts-hack (部分发行本已经自带),并设置Hack字体为终端字体

pre_prompt() 
{
    local RETCODE=$?
    local Limee="0;255;0"                   #00FF00
    local OrangeRed="255;69;0"              #FF4500
    local SkyBlue="135;206;235"             #87CEEB
    local White="255;255;255"               #FFFFFF
    local Black="0;0;0"                     #000000
    local Cyan="0;255;255"                  #00FFFF
    local BurlyWood="222;184;135"           #DEB887
    local DarkMagenta="139;0;139"           #8B008B
    local Indigo="75;0;130"                 #4B0082
    if [ "$RETCODE" -eq 0 ]; then        
        PS1="\[\e[1;38;2;${Indigo};48;2;${Limee}m\] ⚑ $RETCODE "
        PS1+="\[\e[0;38;2;${Limee};48;2;${SkyBlue}m\]"
    else       
        PS1="\[\e[1;38;2;${Indigo};48;2;${OrangeRed}m\] ⚑ $RETCODE "
        PS1+="\[\e[0;38;2;${OrangeRed};48;2;${SkyBlue}m\]"
    fi
    PS1+="\[\e[1;38;2;${Black};48;2;${SkyBlue}m\] ⌚ \t \[\e[0;38;2;${SkyBlue};48;2;${BurlyWood}m\]"    
    if [ "$RETCODE" -eq 0 ]; then
        PS1+="\[\e[1;38;2;${DarkMagenta};48;2;${BurlyWood}m\] @\h: \w \[\e[0;38;2;${BurlyWood};48;2;${DarkMagenta}m\]"
        PS1+="\[\e[1;38;2;${Limee};48;2;${DarkMagenta}m\] \$ \[\e[0;38;2;${DarkMagenta};48;2;${Limee}m\]"
        PS1+="\[\e[0;38;2;${Limee}m\]\[\e[0m\] "
    else
        PS1+="\[\e[1;38;2;${DarkMagenta};48;2;${BurlyWood}m\] @\h: \w \[\e[0;38;2;${BurlyWood};48;2;${Indigo}m\]"
        PS1+="\[\e[1;38;2;${OrangeRed};48;2;${Indigo}m\] \$ \[\e[0;38;2;${Indigo};48;2;${OrangeRed}m\]"
        PS1+="\[\e[0;38;2;${OrangeRed}m\]\[\e[0m\] "
    fi
}
if [  "$TERM" != "linux" ]; then
    PROMPT_COMMAND=pre_prompt
fi

上述代码写入 ~/.bashrc 文件后,bash 主提示符的效果如下:

044501230254.png

定制随机颜色的 bash 主提示符

# 可能需要安装 fonts-hack (部分发行本已经自带),并设置Hack字体为终端字体
# 前景色为黑色,背景色为随机颜色
pre_prompt() 
{
    local RETCODE=$?
    local FgColor="0;0;0"
    alias orh1='openssl rand -hex 1'
    local BgColor1="$(echo $(printf '%d\n%d\n%d' 0xff 0x$(orh1) 0x$(orh1) | shuf) | sed 's/ /;/g')"
    local BgColor2="$(echo $(printf '%d\n%d\n%d' 0xff 0x$(orh1) 0x$(orh1) | shuf) | sed 's/ /;/g')"
    local BgColor3="$(echo $(printf '%d\n%d\n%d' 0xff 0x$(orh1) 0x$(orh1) | shuf) | sed 's/ /;/g')"
    local BgColor4="$(echo $(printf '%d\n%d\n%d' 0xff 0x$(orh1) 0x$(orh1) | shuf) | sed 's/ /;/g')"
    local BgColor5="$(echo $(printf '%d\n%d\n%d' 0xff 0x$(orh1) 0x$(orh1) | shuf) | sed 's/ /;/g')"
    PS1="\[\e[1;38;2;${FgColor};48;2;${BgColor1}m\] ⚑ $RETCODE "
    PS1+="\[\e[0;38;2;${BgColor1};48;2;${BgColor2}m\]"
    PS1+="\[\e[1;38;2;${FgColor};48;2;${BgColor2}m\] ⌚ \t "
    PS1+="\[\e[0;38;2;${BgColor2};48;2;${BgColor3}m\]" 
    PS1+="\[\e[1;38;2;${FgColor};48;2;${BgColor3}m\] @\h: \w "
    PS1+="\[\e[0;38;2;${BgColor3};48;2;${BgColor4}m\]"
    PS1+="\[\e[1;38;2;${FgColor};48;2;${BgColor4}m\] \$ "
    PS1+="\[\e[0;38;2;${BgColor4};48;2;${BgColor5}m\]"
    PS1+="\[\e[0;38;2;${BgColor5}m\]\[\e[0m\]\[\e[K\] "
    unalias orh1
}
if [  "$TERM" != "linux" ]; then
    PROMPT_COMMAND=pre_prompt
fi

上述代码写入 ~/.bashrc 文件后,bash 主提示符的效果如下:

004502541256.png

在终端标题上显示实时时钟

# shellcheck shell=bash disable=SC2239
# 文件名称:terminal-clock-title.conf
# 实现功能:在终端标题上显示实时时钟。
# 使用方法: . [path]/terminal-clock-title.conf

clocktitle()
    while((1));do
        local clock=$(date +'%H:%M:%S')
        echo -ne "\e]2;$clock\a"
        sleep 1
    done
clocktitle &
clocktitlePID=$!
trap "kill -9 $clocktitlePID" EXIT

将上述代码写入 ~/.config/terminal-clock-title.conf 文件(其它路径也可以),然后在终端执行:

.  ~/.config/terminal-clock-title.conf
Reply View the author
facewind1
deepin
2023-01-09 17:03
#8
lanxing0821

在 PS1 中使用 24 位色,需要 Hack 字体

# 可能需要安装 fonts-hack (部分发行本已经自带),并设置Hack字体为终端字体

pre_prompt() 
{
    local RETCODE=$?
    local Limee="0;255;0"                   #00FF00
    local OrangeRed="255;69;0"              #FF4500
    local SkyBlue="135;206;235"             #87CEEB
    local White="255;255;255"               #FFFFFF
    local Black="0;0;0"                     #000000
    local Cyan="0;255;255"                  #00FFFF
    local BurlyWood="222;184;135"           #DEB887
    local DarkMagenta="139;0;139"           #8B008B
    local Indigo="75;0;130"                 #4B0082
    if [ "$RETCODE" -eq 0 ]; then        
        PS1="\[\e[1;38;2;${Indigo};48;2;${Limee}m\] ⚑ $RETCODE "
        PS1+="\[\e[0;38;2;${Limee};48;2;${SkyBlue}m\]"
    else       
        PS1="\[\e[1;38;2;${Indigo};48;2;${OrangeRed}m\] ⚑ $RETCODE "
        PS1+="\[\e[0;38;2;${OrangeRed};48;2;${SkyBlue}m\]"
    fi
    PS1+="\[\e[1;38;2;${Black};48;2;${SkyBlue}m\] ⌚ \t \[\e[0;38;2;${SkyBlue};48;2;${BurlyWood}m\]"    
    if [ "$RETCODE" -eq 0 ]; then
        PS1+="\[\e[1;38;2;${DarkMagenta};48;2;${BurlyWood}m\] @\h: \w \[\e[0;38;2;${BurlyWood};48;2;${DarkMagenta}m\]"
        PS1+="\[\e[1;38;2;${Limee};48;2;${DarkMagenta}m\] \$ \[\e[0;38;2;${DarkMagenta};48;2;${Limee}m\]"
        PS1+="\[\e[0;38;2;${Limee}m\]\[\e[0m\] "
    else
        PS1+="\[\e[1;38;2;${DarkMagenta};48;2;${BurlyWood}m\] @\h: \w \[\e[0;38;2;${BurlyWood};48;2;${Indigo}m\]"
        PS1+="\[\e[1;38;2;${OrangeRed};48;2;${Indigo}m\] \$ \[\e[0;38;2;${Indigo};48;2;${OrangeRed}m\]"
        PS1+="\[\e[0;38;2;${OrangeRed}m\]\[\e[0m\] "
    fi
}
if [  "$TERM" != "linux" ]; then
    PROMPT_COMMAND=pre_prompt
fi

上述代码写入 ~/.bashrc 文件后,bash 主提示符的效果如下:

044501230254.png

定制随机颜色的 bash 主提示符

# 可能需要安装 fonts-hack (部分发行本已经自带),并设置Hack字体为终端字体
# 前景色为黑色,背景色为随机颜色
pre_prompt() 
{
    local RETCODE=$?
    local FgColor="0;0;0"
    alias orh1='openssl rand -hex 1'
    local BgColor1="$(echo $(printf '%d\n%d\n%d' 0xff 0x$(orh1) 0x$(orh1) | shuf) | sed 's/ /;/g')"
    local BgColor2="$(echo $(printf '%d\n%d\n%d' 0xff 0x$(orh1) 0x$(orh1) | shuf) | sed 's/ /;/g')"
    local BgColor3="$(echo $(printf '%d\n%d\n%d' 0xff 0x$(orh1) 0x$(orh1) | shuf) | sed 's/ /;/g')"
    local BgColor4="$(echo $(printf '%d\n%d\n%d' 0xff 0x$(orh1) 0x$(orh1) | shuf) | sed 's/ /;/g')"
    local BgColor5="$(echo $(printf '%d\n%d\n%d' 0xff 0x$(orh1) 0x$(orh1) | shuf) | sed 's/ /;/g')"
    PS1="\[\e[1;38;2;${FgColor};48;2;${BgColor1}m\] ⚑ $RETCODE "
    PS1+="\[\e[0;38;2;${BgColor1};48;2;${BgColor2}m\]"
    PS1+="\[\e[1;38;2;${FgColor};48;2;${BgColor2}m\] ⌚ \t "
    PS1+="\[\e[0;38;2;${BgColor2};48;2;${BgColor3}m\]" 
    PS1+="\[\e[1;38;2;${FgColor};48;2;${BgColor3}m\] @\h: \w "
    PS1+="\[\e[0;38;2;${BgColor3};48;2;${BgColor4}m\]"
    PS1+="\[\e[1;38;2;${FgColor};48;2;${BgColor4}m\] \$ "
    PS1+="\[\e[0;38;2;${BgColor4};48;2;${BgColor5}m\]"
    PS1+="\[\e[0;38;2;${BgColor5}m\]\[\e[0m\]\[\e[K\] "
    unalias orh1
}
if [  "$TERM" != "linux" ]; then
    PROMPT_COMMAND=pre_prompt
fi

上述代码写入 ~/.bashrc 文件后,bash 主提示符的效果如下:

004502541256.png

在终端标题上显示实时时钟

# shellcheck shell=bash disable=SC2239
# 文件名称:terminal-clock-title.conf
# 实现功能:在终端标题上显示实时时钟。
# 使用方法: . [path]/terminal-clock-title.conf

clocktitle()
    while((1));do
        local clock=$(date +'%H:%M:%S')
        echo -ne "\e]2;$clock\a"
        sleep 1
    done
clocktitle &
clocktitlePID=$!
trap "kill -9 $clocktitlePID" EXIT

将上述代码写入 ~/.config/terminal-clock-title.conf 文件(其它路径也可以),然后在终端执行:

.  ~/.config/terminal-clock-title.conf

你这个做的确实蛮不错的,但是我只想稍微调整一下格式。你这个太花了,换做以前我折腾manjaro时我可能还会去折腾一下,现在我确实没这个心力了,只想简单一点。

对,我之前的问题已经解决了,谢谢。

Reply View the author