Kali Linux自定义终端美化:初级-普通中级-root高级

一,效果图

二,初级

打开终端,利用终端上的会话菜单进行设置,点击参数配置进行自定义设置

1 字体------修改设置-------DejaVu Sans Mono 13 pt

2 光标形状------条状光标

3 背景图像-------选择-------DIY一张自己的图片

4 当前终端------绘制边框------点击对勾选择

三,普通中级

第一步:打开终端,输入:
bash 复制代码
# 查看并找到文件'.zshrc'
ls -a -l -C    
第二步
bash 复制代码
#备份原来的配置文件
cp .zshrc .zshrcbak  
第三步: 查看效果,是否备份好文件

ls -a -l -C # 查看一下

bash 复制代码
# 查看一下
ls -a -l -C  
第四步: 用kali自带文本编辑器打开文件

我用mousepad打开,推荐使用nano或者vim打开和编辑

复制代码
mousepad .zshrc

清空原有的内容后,复制下面的代码!

bash 复制代码
# ====== 第1步:ZSH配置文件详细注释 ======
# ~/.zshrc 文件用于zsh交互式shells
# 示例可参考 /usr/share/doc/zsh/examples/zshrc
# 修改于2026年1月14日 19:00左右,xgj完成

# ======第2步:设置选项============
#setopt autocd              # 只需输入目录名即可切换目录
#setopt correct            # 自动纠正拼写错误(已注释)
setopt interactivecomments # 允许在交互模式下使用注释
setopt magicequalsubst     # 为'任何内容=表达式'形式的参数启用文件名扩展
setopt nonomatch           # 如果没有匹配的模式,隐藏错误信息
setopt notify              # 立即报告后台作业状态
setopt numericglobsort     # 按数字顺序排序文件名(有意义时)
setopt promptsubst         # 在提示符中启用命令替换

# 不将下划线和连字符视为单词的一部分
WORDCHARS='_-'

# 隐藏行尾标记('%')
PROMPT_EOL_MARK=""

# ======== 第3步:键盘绑定配置 ========
bindkey -e                                        # 使用Emacs风格按键绑定
bindkey ' ' magic-space                           # 按空格键时执行历史扩展
bindkey '^U' backward-kill-line                   # Ctrl + U: 向后删除整行
bindkey '^[[3;5~' kill-word                       # Ctrl + Delete: 删除单词
bindkey '^[[3~' delete-char                       # Delete键: 删除字符
bindkey '^[[1;5C' forward-word                    # Ctrl + 右箭头: 向前移动一个单词
bindkey '^[[1;5D' backward-word                   # Ctrl + 左箭头: 向后移动一个单词
bindkey '^[[5~' beginning-of-buffer-or-history    # Page Up: 移动到缓冲区或历史开头
bindkey '^[[6~' end-of-buffer-or-history          # Page Down: 移动到缓冲区或历史末尾
bindkey '^[[H' beginning-of-line                  # Home键: 移动到行首
bindkey '^[[F' end-of-line                        # End键: 移动到行尾
bindkey '^[[Z' undo                               # Shift + Tab: 撤销上一次操作

# ======== 第4步:自动补全功能配置 ======
autoload -Uz compinit  # 启用自动补全功能
compinit -d ~/.cache/zcompdump  # 初始化补全,将缓存保存到指定位置
zstyle ':completion:*:*:*:*:*' menu select  # 在补全时显示选择菜单
zstyle ':completion:*' auto-description 'specify: %d'  # 自动描述补全项
zstyle ':completion:*' completer _expand _complete  # 补全器设置
zstyle ':completion:*' format '正在补全 %d'  # 补全格式
zstyle ':completion:*' group-name ''  # 分组名称
zstyle ':completion:*' list-colors ''  # 列表颜色
zstyle ':completion:*' list-prompt %S在 %p: 按TAB查看更多,或输入字符插入%s  # 列表提示
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'  # 匹配器列表(不区分大小写)
zstyle ':completion:*' rehash true  # 自动重新哈希
zstyle ':completion:*' select-prompt %S正在滚动: 当前选择在 %p%s  # 选择提示
zstyle ':completion:*' use-compctl false  # 不使用compctl
zstyle ':completion:*' verbose true  # 详细模式
zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd'  # kill命令的补全格式

# ====== 第5步:历史记录配置 ======
HISTFILE=~/.zsh_history  # 历史文件位置
HISTSIZE=1000            # 内存中保存的历史记录数量
SAVEHIST=2000            # 历史文件中保存的历史记录数量
setopt hist_expire_dups_first  # 当历史文件大小超过HISTSIZE时,首先删除重复项
setopt hist_ignore_dups        # 忽略历史列表中的重复命令
setopt hist_ignore_space       # 忽略以空格开头的命令
setopt hist_verify             # 在执行历史扩展命令前先显示给用户确认
#setopt share_history          # 共享命令历史数据(已注释)

# 强制zsh显示完整历史记录
alias history="history 0"


# ==========第6步:其他设置,有点已经注释掉,有的还可以在用=======
# ==========时间格式配置 ======
#TIMEFMT=$'\n实际时间\t%E\n用户时间\t%U\n系统时间\t%S\nCPU使用率\t%P'
# ====== 设置less命令更友好 ======
#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# ====== 设置chroot环境变量(用于提示符) ======
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# ====== 设置彩色提示符 ======
# 根据终端类型决定是否使用彩色提示符
case "$TERM" in
    xterm-color|*-256color) color_prompt=yes;;
esac

# 强制启用彩色提示符(取消注释以启用)
force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
        # 终端支持颜色
        color_prompt=yes
    else
        color_prompt=
    fi
fi

# ====== 第7步:DIY自定义提示符设置 ======
# 获取IP地址以添加到提示符中
IP1=$(ip -4 addr | grep -v 127.0.0.1 | grep -v secondary | grep eth0 | grep -Po "inet \K[\d.]+")  # 获取普通网络接口IP
IP2=$(ip -4 addr | grep -v 127.0.0.1 | grep -v secondary | grep tun0 | grep -Po "inet \K[\d.]+")   # 获取VPN IP(如果已连接)
IP3=$(ip -4 addr | grep -v 127.0.0.1 | grep -v secondary | grep wlan0 | grep -Po "inet \K[\d.]+") # 获取无线网络IP(如果已连接)

# 根据找到的网络接口创建提示符部分
if [ $IP1 ]; then
 LOCAL=$'\n%F{green}├──🖥️:%F{cyan}$IP1%b%F{green}'
else
 LOCAL=""
fi

if [ $IP2 ]; then
    VPN=$'\n%F{green}├──🔒:%F{cyan}$IP2%b%F{green}'
else
    VPN=""
fi

if [ $IP3 ]; then
    WIFI=$'\n%F{green}├──📶:%F{cyan}$IP3%F{green}'
else
    WIFI=""
fi

# 目录和用户名设置
DIR=$'%B%F{yellow}%(6~.%-1~/.../%4~.%5~)%F{green}'  # 当前目录显示
NAME=$'RedKaliXgj'  # 用户名

if [ "$color_prompt" = yes ]; then
    # 分部分组装提示符以提高可读性
    
    # 建议:RedKaliXgj用户名,字体颜色改为绿色,因为是非root用户
    LINE1=$'%F{green}┌──💀☠💀☠💀☠💀☠:%F{green}'$NAME'%F{green}'
    LINE2=$LOCAL$VPN$WIFI
    LINE3=$'\n├──'$DIR:''
    LINE4=$'\n└──%F{magenta}➤➤➤: '

    # 使用24小时制时间格式:2026年1月14日 15:10 下午
    TIME_24H=$(date +"%Y年%m月%d日 %H:%M")
    HOUR=$(date +"%H")
    
    # 判断上午还是下午
    if [ $HOUR -lt 12 ]; then
        AM_PM="上午"
    else
        AM_PM="下午"
    fi
    
    # 组合完整的时间字符串
    TIME="$TIME_24H $AM_PM"

    # 主提示符和右侧提示符
    PROMPT=$LINE1$LINE2$LINE3$LINE4
    RPROMPT=$'%F{green}[%F{reset}'$TIME'%(?.. %? %F{red}%B⨯%b%F{reset})%(1j. %j %F{yellow}%B⚙%b%F{reset}.)%F{green} ]'


# ====== 第8步:自定义提示符设置结束 ======

    # ====== 启用语法高亮 ======
    if [ -f /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ]; then
        . /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
        ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern)
        ZSH_HIGHLIGHT_STYLES[default]=none
        ZSH_HIGHLIGHT_STYLES[unknown-token]=underline
        ZSH_HIGHLIGHT_STYLES[reserved-word]=fg=cyan,bold
        ZSH_HIGHLIGHT_STYLES[suffix-alias]=fg=green,underline
        ZSH_HIGHLIGHT_STYLES[global-alias]=fg=green,bold
        ZSH_HIGHLIGHT_STYLES[precommand]=fg=green,underline
        ZSH_HIGHLIGHT_STYLES[commandseparator]=fg=blue,bold
        ZSH_HIGHLIGHT_STYLES[autodirectory]=fg=green,underline
        ZSH_HIGHLIGHT_STYLES[path]=bold
        ZSH_HIGHLIGHT_STYLES[path_pathseparator]=
        ZSH_HIGHLIGHT_STYLES[path_prefix_pathseparator]=
        ZSH_HIGHLIGHT_STYLES[globbing]=fg=blue,bold
        ZSH_HIGHLIGHT_STYLES[history-expansion]=fg=blue,bold
        ZSH_HIGHLIGHT_STYLES[command-substitution]=none
        ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter]=fg=magenta,bold
        ZSH_HIGHLIGHT_STYLES[process-substitution]=none
        ZSH_HIGHLIGHT_STYLES[process-substitution-delimiter]=fg=magenta,bold
        ZSH_HIGHLIGHT_STYLES[single-hyphen-option]=fg=green
        ZSH_HIGHLIGHT_STYLES[double-hyphen-option]=fg=green
        ZSH_HIGHLIGHT_STYLES[back-quoted-argument]=none
        ZSH_HIGHLIGHT_STYLES[back-quoted-argument-delimiter]=fg=blue,bold
        ZSH_HIGHLIGHT_STYLES[single-quoted-argument]=fg=yellow
        ZSH_HIGHLIGHT_STYLES[double-quoted-argument]=fg=yellow
        ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]=fg=yellow
        ZSH_HIGHLIGHT_STYLES[rc-quote]=fg=magenta
        ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]=fg=magenta,bold
        ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]=fg=magenta,bold
        ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]=fg=magenta,bold
        ZSH_HIGHLIGHT_STYLES[assign]=none
        ZSH_HIGHLIGHT_STYLES[redirection]=fg=blue,bold
        ZSH_HIGHLIGHT_STYLES[comment]=fg=black,bold
        ZSH_HIGHLIGHT_STYLES[named-fd]=none
        ZSH_HIGHLIGHT_STYLES[numeric-fd]=none
        ZSH_HIGHLIGHT_STYLES[arg0]=fg=cyan
        ZSH_HIGHLIGHT_STYLES[bracket-error]=fg=red,bold
        ZSH_HIGHLIGHT_STYLES[bracket-level-1]=fg=blue,bold
        ZSH_HIGHLIGHT_STYLES[bracket-level-2]=fg=green,bold
        ZSH_HIGHLIGHT_STYLES[bracket-level-3]=fg=magenta,bold
        ZSH_HIGHLIGHT_STYLES[bracket-level-4]=fg=yellow,bold
        ZSH_HIGHLIGHT_STYLES[bracket-level-5]=fg=cyan,bold
        ZSH_HIGHLIGHT_STYLES[cursor-matchingbracket]=standout
    fi
else
    # 非彩色提示符
    PROMPT='${debian_chroot:+($debian_chroot)}%n@%m:%~%(#.#.$) '
fi
unset color_prompt force_color_prompt

# ====== Kali配置变量(不要修改这些分隔符) ======
NEWLINE_BEFORE_PROMPT=yes
# ====== Kali配置变量结束 ======


# ====== 第9步:终端标题设置和预处理函数 ======
# 如果是xterm等终端,设置标题为 user@host:dir

case "$TERM" in
xterm*|rxvt*|Eterm|aterm|kterm|gnome*|alacritty|konsole*|tmux*|screen*)

    # 方法:标准标题设置
    TERM_TITLE=$'\e]0;${debian_chroot:+($debian_chroot)}%n@%m: %~\a'
    
    ;;
*)
    ;;
esac

# 预命令执行函数时间函数:终端标题和时间
precmd() {
    # 打印之前配置的标题
    print -Pnr -- "$TERM_TITLE"

    # 如果配置了在提示符前换行,则打印新行
    if [ "$NEWLINE_BEFORE_PROMPT" = yes ]; then
        if [ -z "$_NEW_LINE_BEFORE_PROMPT" ]; then
            _NEW_LINE_BEFORE_PROMPT=1
        else
            print ""
        fi
    fi
    
    # ====== 更新时间显示 ======
    # 在每次提示符显示前更新时间
    TIME_24H=$(date +"%Y年%m月%d日 %H:%M")
    HOUR=$(date +"%H")
    
    # 判断上午还是下午
    if [ $HOUR -lt 12 ]; then
        AM_PM="上午"
    else
        AM_PM="下午"
    fi
    
    # 组合完整的时间字符串
    TIME="$TIME_24H $AM_PM"
}


# ====== 第10步:其他设置:启用ls、less和man的颜色支持,并添加实用别名 ======
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    # 修复具有777权限的文件夹的ls颜色
    export LS_COLORS="$LS_COLORS:ow=30;44:"

    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
    alias diff='diff --color=auto'
    alias ip='ip --color=auto'

    # 设置less命令的颜色
    export LESS_TERMCAP_mb=$'\E[1;31m'     # 开始闪烁
    export LESS_TERMCAP_md=$'\E[1;36m'     # 开始粗体
    export LESS_TERMCAP_me=$'\E[0m'        # 重置粗体/闪烁
    export LESS_TERMCAP_so=$'\E[01;33m'    # 开始反向视频
    export LESS_TERMCAP_se=$'\E[0m'        # 重置反向视频
    export LESS_TERMCAP_us=$'\E[1;32m'     # 开始下划线
    export LESS_TERMCAP_ue=$'\E[0m'        # 重置下划线

    # 在补全中也利用$LS_COLORS
    zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
    zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
fi

# ====== 更多ls命令别名 ======
alias ll='ls -l'      # 长格式列表
alias la='ls -A'      # 列出所有文件(包括隐藏文件,但不包括.和..)
alias l='ls -CF'      # 列格式,显示类型指示符

# ====== 启用基于历史的自动建议 ======
if [ -f /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh ]; then
    . /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh
    # 更改建议颜色
    ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=244'
fi

# ====== 启用command-not-found(如果已安装) ======
if [ -f /etc/zsh_command_not_found ]; then
    . /etc/zsh_command_not_found
fi


# ====== 第11步:DIY自定义的欢迎信息 ======
show_welcome() {
    # 颜色定义
    local GREEN='\033[1;32m'
    local BLUE='\033[1;34m'
    local YELLOW='\033[1;33m'
    local CYAN='\033[1;36m'
    local NC='\033[0m'
    
    # 获取系统信息
    local USER=$(whoami)
    local HOST=$(hostname)
    local DATE=$(date '+%Y-%m-%d %H:%M:%S')
    local DAY=$(date '+%A')
    local UPTIME=$(uptime -p 2>/dev/null || echo "未知")
    
    # 显示欢迎信息
    echo -e "${GREEN}"
    echo "     ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"
    echo "     ┃                                                         ┃"
    echo -e "             ${CYAN}✨ 欢迎 ${YELLOW}$USER${CYAN} 登录 ${YELLOW}$HOST${CYAN} ✨                           "
    echo "                                                         "
    echo -e "             📅 ${BLUE}日期:${NC} $DATE ($DAY)                 "
    echo -e "             ⏱️  ${BLUE}运行:${NC} $UPTIME                                 "
    echo "     ┃                                                         ┃"
    echo "     ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"
    echo -e "${NC}"
    
    # 进度条
    echo -e "\n${GREEN}欢迎光临!! 您 正在进入Kali Linux的黑客世界...${NC}"
    echo -ne "${GREEN}["
    
    # 更平滑的进度条
    for i in {1..70}; do
        echo -ne "▇▇"
        sleep 0.02
    done
    
    echo -e "]${GREEN} 100% 完成!${NC}\n"
    
    # 显示温馨提示
    echo -e "${YELLOW}💡 温馨提示:${NC}"
    echo -e "  ${CYAN}•${NC} 注意:${GREEN}请遵守网络安全法规${NC},不要抱有侥幸心理!"
    echo -e "  ${CYAN}•${NC} 注意:${GREEN}黑客${NC}或${GREEN}红客${NC},是有区别的! "
    echo -e "  ${CYAN}•${NC} 注意:${GREEN}中国黑客${NC},就是要做中国的红客!"
    echo -e "  ${CYAN}•${NC} 注意:${GREEN}中国红客${NC},就是要立志保家为国!\n"
}

# 执行欢迎函数
show_welcome

四,root高级

注意:root设置,可能有风险,建议sudo进行,我是进入root下操作,推荐使用nano或者vim打开和编辑

su 复制代码
cd

cp .zshrc .zshrcbak
mousepad .zshrc

. 注意将原来非root用户的RedKaliXgj

改为Root,注意建议root为红色字体,就是将原来代码清除,复制粘帖上述代码后,将局部修改一下即可

ini 复制代码
#NAME=$'RedKaliXgj'  # 用户名
NAME=$'Root超级用户'  # 用户名

ini 复制代码
 
 #LINE1=$'%F{green}┌──💀☠💀☠💀☠💀☠:%F{green}'$NAME'%F{green}'
 
 LINE1=$'%F{green}┌──💀☠💀☠💀☠💀☠:%F{red}'$NAME'%F{red}'

完成

相关推荐
zl_dfq1 小时前
Linux 之 【文件】(重定向、一切皆文件的理解)
linux
HIT_Weston1 小时前
99、【Ubuntu】【Hugo】搭建私人博客:搜索功能(三)
linux·运维·ubuntu
txinyu的博客2 小时前
select/poll/epoll
linux·c++
小蜗的房子2 小时前
Oracle 19c RAC重建AWR步骤详解
linux·运维·数据库·sql·oracle·操作系统·oracle rac
久绊A2 小时前
RAID10 单盘失效降级处理实操
linux·运维·服务器
xlp666hub2 小时前
Linux 设备模型学习笔记(2)之 kobject
linux·面试
松涛和鸣2 小时前
54、DS18B20单线数字温度采集
linux·服务器·c语言·开发语言·数据库
Vallelonga2 小时前
ELF 文件和 Linux 内核镜像文件
linux·经验分享
zzzsde2 小时前
【Linux】基础开发工具(4):自动化构建--make/makefile
linux·运维·服务器