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}'

完成

相关推荐
来鸟 鸣间8 小时前
linux下ffmpeg源码编译
linux·运维·ffmpeg
拾光Ծ8 小时前
【Linux】文件系统核心(二):深入 Ext2 底层:Block Group 结构 + inode 索引,轻松锁定文件的增删改查
linux·软硬链接·inode·ext2文件系统·block group·文件系统原理·linux面试
楼田莉子8 小时前
Linux学习:进程信号
linux·运维·服务器·c++·学习
KeeBoom8 小时前
嵌入式 Linux 应用开发完全手册——阅读笔记14
linux·笔记
进击切图仔8 小时前
新装 Ubuntu 20.04.6 中安装 ssh.server 功能
linux·ubuntu·ssh
松涛和鸣9 小时前
69、Linux字符设备驱动实战
linux·服务器·网络·arm开发·数据库·驱动开发
TangDuoduo00059 小时前
【Linux下LED基础设备驱动】
linux·驱动开发
cyber_两只龙宝9 小时前
haproxy--使用socat工具实现对haproxy权重配置的热更新
linux·运维·负载均衡·haproxy·socat
٩( 'ω' )و2609 小时前
linux网络--基础概念
linux·网络
zhang6183999 小时前
Linux中不同服务器之间迁移python 虚拟环境-conda-pack
linux·运维·python