欢迎来到阿雄的个人小站:您的IT桌面运维技术资源库
当前位置:首页 >> 软件工具 >> 国产系统 >> 银河麒麟超级工具箱

银河麒麟超级工具箱

阿雄 国产系统 169

由于国产电脑中经常会遇到应用程序闪退、鼠标问题、桌面图标、登录问题、多屏显示、分辨率、触屏映射、壁纸、亮度、字体、网络速度控制、DNS优化、Samba共享、性能优化、磁盘清理、个性化设置、系统概览、快捷键指南、sudo修复、远程桌面、U盘设置等问题,经过多次迭代将之前做的一些脚本汇聚梳理成了脚本文件便于使用,这里就先大言不惭的称之为银河麒麟超级工具箱。

使用说明

将脚本保存为:银河麒麟超级工具箱v8.0sh

添加执行权限:chmod +x 银河麒麟超级工具箱v8.0sh

使用sudo运行:sudo ./银河麒麟超级工具箱v8.0sh

菜单功能

    1.系统故障修复:应用程序闪退、鼠标问题、桌面图标、登录问题等

    2.显示设置:多屏显示、分辨率、触屏映射、壁纸、亮度、字体

    3.网络设置:网络速度控制、DNS优化、Samba共享

    4.系统优化:性能优化、磁盘清理、个性化设置

    5.系统信息:系统概览、快捷键指南

    6.其他工具:sudo修复、远程桌面、U盘设置

    脚本文件如下:

    #!/bin/bash# 银河麒麟超级工具箱# 作者:江流天# 微信公众号:莫待无花空折枝z# 整合版本:v8.0# 更新日期:2025-08-08
    # 颜色定义RED='\033[31m'; GREEN='\033[32m' YELLOW='\033[33m'BLUE='\033[34m'; CYAN='\033[36m'; MAGENTA='\033[35m'; RESET='\033[0m'
    # 日志文件LOG_FILE="${HOME}/kylin_toolbox.log"
    # ================= 初始化检查 =================check_root() {    if [ "$(id -u)" -ne 0 ]; then        echo -e "${RED}✗ 请使用sudo运行此脚本!${RESET}"        exit 1    fi}
    # ================= 工具函数 =================log() {    echo -e "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"}
    confirm_action() {    echo -en "${YELLOW}$1 (y/n): ${RESET}"    read -r response    [[ "$response" =~ ^[Yy]$ ]] && return0 || return1}
    # ================= 系统故障修复功能 =================app_crash_fix() {    echo -e "${CYAN}>>> 正在修复应用程序闪退问题...${RESET}"    sudo rm -rf ~/.config ~/.gconf    sudo systemctl restart lightdm    log"修复应用程序闪退:删除.config/.gconf并重启lightdm"    echo -e "${GREEN}✓ 已重置用户配置,请重新登录测试${RESET}"}
    mouse_fix() {    echo -e "${CYAN}>>> 正在修复鼠标无法点击问题...${RESET}"    sudo rm -rf ~/.config/ ~/.cache/ ~/.Xauthority    sudo systemctl restart lightdm    log"修复鼠标异常:删除.config/.cache/.Xauthority"    echo -e "${GREEN}✓ 已重置输入设备配置${RESET}"}
    desktop_icon_fix() {    echo -e "${CYAN}>>> 正在修复桌面图标丢失...${RESET}"    sudo apt install ---reinstall caja caja-common    sudo apt-get dist-upgrade -y    log"修复桌面图标:重装caja并完成dist-upgrade"    echo -e "${GREEN}✓ 桌面环境已修复,请重启系统${RESET}"}
    store_fix() {    echo -e "${CYAN}>>> 正在修复软件商店异常...${RESET}"    sudo rm -rf /var/lib/apt/lists/*    sudo apt update    sudo apt install ---reinstall ubuntu-kylin-software-center    log"修复软件商店:清理apt缓存并重装商店"    echo -e "${GREEN}✓ 软件商店服务已重置${RESET}"}
    network_icon_fix() {    echo -e "${CYAN}>>> 正在修复网络图标消失...${RESET}"    sudo apt install ---reinstall network-manager-gnome    killall nm-applet    nm-applet &    log"修复网络图标:重装network-manager-gnome"    echo -e "${GREEN}✓ 网络图标已恢复${RESET}"}
    desktop_login_fix() {    echo -e "${CYAN}>>> 正在修复桌面登录问题...${RESET}"    sudo apt install -y lightdm-gtk-greeter    sudo sed -i 's/^greeter-session=.*/greeter-session=lightdm-gtk-greeter/' /etc/lightdm/lightdm.conf    log"修复登录问题:配置lightdm-gtk-greeter"    echo -e "${GREEN}✓ 登录管理器已重置,重启后生效${RESET}"}
    login_loop_fix() {    echo -e "${CYAN}>>> 正在修复登录循环问题...${RESET}"    sudo rm -f ~/.Xauthority    sudo chown -R $USER:$USER $HOME    log"修复登录循环:重置.Xauthority和用户权限"    echo -e "${GREEN}✓ 用户权限已修复,请重新登录${RESET}"}
    mate_panel_fix() {    echo -e "${CYAN}>>> 正在修复面板加载失败...${RESET}"    sudo apt install ---reinstall mate-indicators    sudo systemctl restart lightdm    log"修复Mate面板:重装mate-indicators"    echo -e "${GREEN}✓ Mate面板组件已修复${RESET}"}
    taskbar_submenu() {    whiletruedo        clear        echo -e "${BLUE}╔══════════════════════════════╗"        echo -e "║       任务栏修复工具        ║"        echo -e "╚══════════════════════════════╝${RESET}"        echo -e "1) 任务栏消失"        echo -e "2) 时间显示异常"        echo -e "3) 图标不显示"        echo -e "4) 网络图标消失"        echo -e "5) Mate面板加载失败"        echo -e "0) 返回上级菜单"        echo -e "══════════════════════════════"



            read -rp "请选择操作: " choice        case$choicein            1)                sudo apt install --reinstall ukui-panel                ukui-panel --reset &                echo -e "${GREEN}已重置任务栏${RESET}"                log"修复任务栏消失"                sleep1                ;            2)                gsettings set org.ukui.panel clock-visible true                ukui-panel --reset &                echo -e "${GREEN}已修复时间显示${RESET}"                log"修复任务栏时间"                sleep1                ;            3)                killall ukui-panel                ukui-panel &                echo -e "${GREEN}已重启任务栏${RESET}"                log"重启任务栏解决图标问题"                sleep1                ;            4) network_icon_fix ;            5) mate_panel_fix ;            0break ;            *) echo -e "${RED}无效选择!${RESET}" ;        esac    done}
    # ================= 显示设置功能 =================multi_screen_fix() {    echo -e "${CYAN}>>> 多屏显示问题修复${RESET}"

        # 检测显示器接口    echo -e "${YELLOW}正在检测显示器接口...${RESET}"    interfaces=$(xrandr -q | grep " connected" | awk '{print $1}')    if [ -z "$interfaces" ]; then        echo -e "${RED}✗ 未检测到活动显示器!${RESET}"        return1    fi

        # 显示检测结果    echo -e "${GREEN}✓ 检测到显示器接口: ${interfaces}${RESET}"

        # 多屏模式选择    echo -e "\n${CYAN}请选择多屏模式:${RESET}"    echo"1) 扩展模式 (双屏拼接)"    echo"2) 镜像模式 (双屏复制)"    echo"3) 关闭副屏"    echo"4) 重置显示器配置"    read -rp "输入选项: " mode

        case$modein        1) # 扩展模式            primary=$(echo"$interfaces" | head -1)            secondary=$(echo"$interfaces" | tail -1)            xrandr --output "$primary" --auto --primary --output "$secondary" --auto --right-of "$primary"            log"设置扩展模式:$secondary 在 $primary 右侧"            echo -e "${GREEN}✓ 已启用扩展模式${RESET}"            ;        2) # 镜像模式            primary=$(echo"$interfaces" | head -1)            xrandr --output "$primary" --auto --primary $(printf -- '--output %s --same-as %s '${interfaces[@]})            log"设置镜像模式:所有屏幕同步显示"            echo -e "${GREEN}✓ 已启用镜像模式${RESET}"            ;        3) # 关闭副屏            secondary=$(echo"$interfaces" | tail -1)            xrandr --output "$secondary" --off            log"关闭副屏:$secondary"            echo -e "${GREEN}✓ 已关闭副屏${RESET}"            ;        4) # 重置配置            xrandr --auto            log"重置显示器配置"            echo -e "${GREEN}✓ 已重置显示设置${RESET}"            ;        *)            echo -e "${RED}无效选择!${RESET}"            ;    esac

        # 持久化配置    if confirm_action "是否保存配置到启动脚本?"; then        config_file="/etc/X11/Xsession.d/45kylin_display_fix"        echo"#!/bin/bash" | sudo tee "$config_file" >/dev/null        echo"xrandr --auto" | sudo tee -a "$config_file" >/dev/null        for iface in$interfacesdo            echo"xrandr --output $iface --auto" | sudo tee -a "$config_file" >/dev/null        done        sudo chmod +x"$config_file"        log"多屏配置已持久化到 $config_file"        echo -e "${GREEN}✓ 配置已保存,重启后生效${RESET}"    fi}
    resolution_fix() {    echo -e "${CYAN}>>> 分辨率自动修复${RESET}"

        # 安装必要工具    if ! command -v xrandr &> /dev/null; then        echo -e "${YELLOW}正在安装x11-xserver-utils...${RESET}"        sudo apt install -y x11-xserver-utils || {            echo -e "${RED}✗ 安装失败!${RESET}"            return1        }    fi

        # 获取活动显示器    active_display=$(xrandr | grep " connected" | awk '{print $1}' | head -1)    if [ -z "$active_display" ]; then        echo -e "${RED}✗ 未检测到活动显示器!${RESET}"        return1    fi

        # 自动检测最佳分辨率    optimal_res=$(xrandr | grep -oP '\d+x\d+\s+\d+\.\d+\*' | head -1 | awk '{print $1}')    if [ -z "$optimal_res" ]; then        optimal_res="1920x1080"        echo -e "${YELLOW}⚠ 使用默认分辨率: 1920x1080${RESET}"    fi

        # 安全设置分辨率(5秒后自动恢复)    echo -e "${YELLOW}设置分辨率为: $optimal_res (5秒后自动恢复)${RESET}"    original_res=$(xrandr | grep -oP '\d+x\d+\s+\d+\.\d+\*' | head -1 | awk '{print $1}')    xrandr --output "$active_display" --mode "$optimal_res" && \    sleep5 && \    xrandr --output "$active_display" --mode "$original_res"

        if confirm_action "是否应用此分辨率?"; then        # 创建新模式        modeline=$(cvt ${optimal_res/x/ }60 | sed -n 's/Modeline //p')        mode_name=$(echo"$modeline" | awk '{print $1}')        xrandr --newmode $modeline        xrandr --addmode "$active_display""$mode_name"        xrandr --output "$active_display" --mode "$mode_name"



            # 持久化配置        config_file="/etc/X11/Xsession.d/46kylin_resolution_fix"        echo"#!/bin/bash" | sudo tee "$config_file" > /dev/null        echo"xrandr --newmode '$modeline'" | sudo tee -a "$config_file" > /dev/null        echo"xrandr --addmode '$active_display' '$mode_name'" | sudo tee -a "$config_file" > /dev/null        echo"xrandr --output '$active_display' --mode '$mode_name'" | sudo tee -a "$config_file" > /dev/null        sudo chmod +x"$config_file"



            log"分辨率设置为: $optimal_res"        echo -e "${GREEN}✓ 分辨率已修复并持久化${RESET}"    else        xrandr --output "$active_display" --mode "$original_res"        echo -e "${YELLOW}已恢复原始分辨率${RESET}"    fi}
    touchscreen_fix() {    echo -e "${CYAN}>>> 多显示器触屏映射修复${RESET}"

        # 显示触屏设备列表    echo -e "${YELLOW}检测到的触屏设备:${RESET}"    xinput | grep -i touch

        # 选择触屏设备    read -rp "输入要映射的触屏设备名称: " touch_device

        # 显示可用显示器    echo -e "${YELLOW}可用显示器接口:${RESET}"    xrandr | grep" connected"

        # 选择目标显示器    read -rp "输入目标显示器接口: " target_display

        # 执行映射    xinput map-to-output "$touch_device""$target_display"    log"触屏映射:$touch_device → $target_display"    echo -e "${GREEN}✓ 触屏映射完成${RESET}"

        # 持久化配置    if confirm_action "是否保存配置到启动脚本?"; then        config_file="/etc/X11/Xsession.d/47kylin_touchscreen_fix"        echo"#!/bin/bash" | sudo tee "$config_file" >/dev/null        echo"xinput map-to-output \"$touch_device\" \"$target_display\"" | sudo tee -a "$config_file" >/dev/null        sudo chmod +x"$config_file"        echo -e "${GREEN}✓ 配置已保存,重启后生效${RESET}"    fi}
    wallpaper_fix() {    echo -e "${CYAN}>>> 壁纸黑屏/桌面异常修复${RESET}"    sudo apt install --reinstall ukui-background    gsettings set org.mate.background picture-filename ""    gsettings set org.mate.background picture-filename "$(gsettings get org.mate.background picture-filename | sed "s/'//g")"    log"修复壁纸黑屏问题"    echo -e "${GREEN}✓ 壁纸设置已重置${RESET}"}
    brightness_fix() {    echo -e "${CYAN}>>> 亮度调节修复${RESET}"    sudo tee /etc/X11/xorg.conf.d/20-intel.conf <<EOFSection "Device"    Identifier  "Intel Graphics"    Driver      "intel"    Option      "Backlight"  "intel_backlight"EndSectionEOF    log"修复亮度调节"    echo -e "${GREEN}✓ 亮度调节功能已修复,请重启系统${RESET}"}
    font_fix() {    if [ -d ~/Fonts ]; then        sudo cp ~/Fonts/*.{ttf,TTF,otf,OTF} /usr/share/fonts/ 2>/dev/null        sudo fc-cache -f -v        echo -e "${GREEN}已安装用户字体${RESET}"        log"安装用户字体"    else        echo -e "${YELLOW}未找到 ~/Fonts 目录${RESET}"    fi}
    # ================= 网络设置功能 =================network_speed_control() {    echo -e "${CYAN}>>> 网络速度控制${RESET}"    interfaces=($(ip -o link show | awk -F': ''{print $2}'))

        echo -e "${YELLOW}可用网络接口:${RESET}"    for i in"${!interfaces[@]}"do        echo"$((i+1))) ${interfaces[$i]}"    done

        read -rp "选择接口编号: " iface_num    selected_iface=${interfaces[$((iface_num-1))]}

        echo -"\n1) 限制网速\n2) 修改传输速率\n3) 清除限制"    read -rp "选择操作: " op

        case$opin        1) # 网速限制            read -rp "下载速度(kbps): " down_speed            read -rp "上传速度(kbps): " up_speed            if ! command -v wondershaper &> /dev/null; then                sudo apt install -y wondershaper            fi            sudo wondershaper $selected_iface$down_speed$up_speed            log"限制网速: $selected_iface 下载${down_speed}kbps 上传${up_speed}kbps"            ;        2) # 传输速率修改            ethtool $selected_iface | grep"Advertised link modes"            read -rp "输入速率(如1000): " speed            read -rp "双工模式(full/half): " duplex            sudo ethtool -s $selected_iface autoneg off speed $speed duplex $duplex





                # 持久化            sudo tee /etc/networkd-dispatcher/config.d/ethtool.conf <<EOFif [ "\$IFACE" = "$selected_iface" ]; then    /sbin/ethtool -s \$IFACE autoneg off speed $speed duplex $duplexfiEOF            log"设置网卡速率: $selected_iface${speed}Mbps $duplex"            ;        3) # 清除限制            sudo wondershaper clean $selected_iface            log"清除网速限制: $selected_iface"            ;    esac    echo -e "${GREEN}✓ 网络设置完成${RESET}"}
    dns_fix() {    echo -e "${CYAN}>>> 修复DNS解析慢${RESET}"    if ! grep -q"nameserver 223.5.5.5" /etc/resolv.conf; then        echo"nameserver 223.5.5.5" | sudo tee -a /etc/resolv.conf        echo"nameserver 119.29.29.29" | sudo tee -a /etc/resolv.conf        echo -e "${GREEN}✓ 已添加国内DNS服务器${RESET}"        log"配置DNS: 223.5.5.5 和 119.29.29.29"    else        echo -e "${YELLOW}DNS配置已存在${RESET}"    fi}
    samba_management() {    echo -e "${CYAN}>>> Samba共享部署管理${RESET}"    echo -e "1) 安装并配置Samba共享"    echo -e "2) 关闭Samba共享服务"    echo -e "3) 查看当前共享状态"    read -rp "请选择操作: " choice

        case$choicein        1)            if ! command -v samba &> /dev/null; then                sudo apt install -y samba            fi





                read -rp "请输入要共享的目录路径: " share_dir            read -rp "请输入共享名称: " share_name            read -rp "请输入访问用户名: " samba_user





                # 创建共享目录            sudo mkdir -p "$share_dir"            sudo chmod777"$share_dir"





                # 添加Samba配置            sudo tee -a /etc/samba/smb.conf <<EOF[$share_name]   path = $share_dir   browseable = yes   writable = yes   guestok=yes   create mask =0777   directorymask=0777EOF





                # 设置Samba用户            sudo smbpasswd -a "$samba_user"





                # 重启服务            sudo systemctl restart smbd nmbd            log"配置Samba共享: $share_dir 名称为 $share_name"            echo -e "${GREEN}✓ Samba共享已启用${RESET}"            ;        2)            sudo systemctl stop smbd nmbd            sudo systemctl disable smbd nmbd            log"关闭Samba共享服务"            echo -e "${GREEN}✓ Samba共享服务已停止并禁用${RESET}"            ;        3)            smbstatus            testparm -s            ;        *)            echo -e "${RED}无效选择${RESET}"            ;    esac}
    # ================= 系统优化功能 =================system_optimization() {    whiletruedo        clear        echo -e "${BLUE}╔══════════════════════════════╗"        echo -e "║       系统性能优化          ║"        echo -e "╚══════════════════════════════╝${RESET}"        echo -e "1) 关闭动画特效"        echo -e "2) 优化内存使用"        echo -e "3) 禁用非必要服务"        echo -e "4) 优化DNS设置"        echo -e "5) 优化文件系统"        echo -e "6) 修复高CPU占用"        echo -e "7) 管理开机自启"        echo -e "8) 一键优化全部"        echo -e "0) 返回上级菜单"        echo -e "══════════════════════════════"



            read -rp "请选择操作: " choice        case$choicein            1)                gsettings set org.ukui.panel enable-animations false                echo -e "${GREEN}✓ 动画特效已关闭${RESET}"                log"关闭UI动画"                ;            2)                if ! grep -q"vm.swappiness=10" /etc/sysctl.conf; then                    echo'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf                    sudo sysctl -p                    echo -e "${GREEN}✓ 内存使用优化完成${RESET}"                    log"设置vm.swappiness=10"                else                    echo -e "${YELLOW}已是最优配置${RESET}"                fi                ;            3)                if confirm_action "确定要禁用非必要服务吗?"; then                    sudo systemctl disable --now cups bluetooth                    echo -e "${GREEN}✓ 非必要服务已禁用${RESET}"                    log"禁用cups和bluetooth服务"                fi                ;            4) dns_fix ;            5)                sudo fstrim -av                echo -e "${GREEN}✓ 文件系统已优化${RESET}"                log"执行fstrim优化"                ;            6)                pids=$(pgrep imwheel)                if [ -n "$pids" ]; then                    sudo kill -9 $pids                    sudo sed -i '/imwheel/d' /etc/xdg/autostart/*.desktop                    sudo sed -i '/imwheel/d' ~/.config/autostart/*.desktop                    log"修复高CPU占用:终止并禁用imwheel"                    echo -e "${GREEN}✓ 已终止并禁用imwheel${RESET}"                else                    echo -e "${YELLOW}未检测到运行中的imwheel进程${RESET}"                fi                ;            7)                echo -e "${CYAN}>>> 开机自启管理${RESET}"                echo -"1) 添加自启动\n2) 移除自启动\n3) 查看当前配置"                read -rp "选择操作: " choice







                    case$choicein                    1) # 添加自启动                        read -rp "程序名称: " app_name                        read -rp "执行命令: " exec_cmd                        desktop_file="${HOME}/.config/autostart/${app_name}.desktop"











                            cat > "$desktop_file" <<EOF[Desktop Entry]Type=ApplicationName=$app_nameExec=$exec_cmdX-GNOME-Autostart-enabled=trueEOF                        chmod +x"$desktop_file"                        log"添加自启动: $app_name ($exec_cmd)"                        echo -e "${GREEN}✓ 已添加自启动项${RESET}"                        ;                    2) # 移除自启动                        files=($(ls ~/.config/autostart/*.desktop))                        for i in"${!files[@]}"do                            echo"$((i+1))) $(basename "${files[$i]}")"                        done                        read -rp "选择要移除的项目: " rm_num                        rm_file="${files[$((rm_num-1))]}"                        mv "$rm_file""$rm_file.disabled"                        log"禁用自启动: $(basename "$rm_file")"                        echo -e "${GREEN}✓ 已禁用自启动项${RESET}"                        ;                    3) # 查看配置                        echo -e "${YELLOW}当前自启动项:${RESET}"                        grep -h "Name\|Exec" ~/.config/autostart/*.desktop                        ;                esac                ;            8)                if confirm_action "确定要执行全面优化吗?"; then                    gsettings set org.ukui.panel enable-animations false                    echo'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf                    sudo sysctl -p                    sudo systemctl disable --now cups bluetooth                    dns_fix                    sudo fstrim -av









                        # 修复高CPU占用                    pids=$(pgrep imwheel)                    [ -n "$pids" ] && sudo kill -9 $pids









                        echo -e "${GREEN}✓ 全面优化完成${RESET}"                    log"执行全面系统优化"                fi                ;            0break ;            *) echo -e "${RED}无效选择!${RESET}" ;        esac        sleep1    done}
    disk_clean_menu() {    whiletruedo        clear        echo -e "${BLUE}╔══════════════════════════════╗"        echo -e "║       磁盘清理工具          ║"        echo -e "╚══════════════════════════════╝${RESET}"        echo -e "1) 清理系统日志 (保留7天)"        echo -e "2) 清理APT缓存"        echo -e "3) 清理临时文件"        echo -e "4) 清理用户缓存"        echo -e "5) 清理浏览器缓存"        echo -e "6) 清理Snap缓存"        echo -e "7) 清理所有项目"        echo -e "8) 出厂备份删除"        echo -e "0) 返回上级菜单"        echo -e "══════════════════════════════"



            read -rp "请选择操作: " choice        case$choicein            1)                if confirm_action "确定要清理7天前的系统日志吗?"; then                    sudo journalctl --vacuum-time=7d                    echo -e "${GREEN}✓ 系统日志已清理${RESET}"                    log"清理系统日志"                fi                ;            2)                if confirm_action "确定要清理APT缓存吗?"; then                    sudo apt clean                    echo -e "${GREEN}✓ APT缓存已清理${RESET}"                    log"清理APT缓存"                fi                ;            3)                if confirm_action "确定要清理临时文件吗?"; then                    sudo rm -rf /tmp/*                    echo -e "${GREEN}✓ 临时文件已清理${RESET}"                    log"清理临时文件"                fi                ;            4)                if confirm_action "确定要清理用户缓存吗?"; then                    rm -rf ~/.cache/*                    echo -e "${GREEN}✓ 用户缓存已清理${RESET}"                    log"清理用户缓存"                fi                ;            5)                if confirm_action "确定要清理浏览器缓存吗?"; then                    rm -rf ~/.cache/{mozilla,chrome,chromium,opera,edge}/*                    echo -e "${GREEN}✓ 浏览器缓存已清理${RESET}"                    log"清理浏览器缓存"                fi                ;            6)                if confirm_action "确定要清理Snap缓存吗?"; then                    sudo rm -rf ~/snap/*/common/.cache/*                    echo -e "${GREEN}✓ Snap缓存已清理${RESET}"                    log"清理Snap缓存"                fi                ;            7)                if confirm_action "确定要执行全面清理吗?"; then                    sudo journalctl --vacuum-time=7d                    sudo apt clean                    sudo rm -rf /tmp/*                    rm -rf ~/.cache/*                    rm -rf ~/.cache/{mozilla,chrome,chromium,opera,edge}/*                    sudo rm -rf ~/snap/*/common/.cache/*                    echo -e "${GREEN}✓ 全面清理完成${RESET}"                    log"执行全面磁盘清理"                fi                ;            8)                if confirm_action "确定要删除出厂备份吗?此操作不可恢复!"; then                    sudo rm -rf /recovery                    echo -e "${GREEN}✓ 出厂备份已删除${RESET}"                    log"删除出厂备份"                fi                ;            0break ;            *) echo -e "${RED}无效选择!${RESET}" ;        esac        sleep1    done}
    personalize_settings() {    echo -e "${CYAN}>>> 个性化设置 (桌面/锁屏/屏保)${RESET}"    read -rp "请输入用户名: " username

        # 验证用户存在    if ! id "$username" &>/dev/null; then        echo -e "${RED}✗ 用户 $username 不存在!${RESET}"        return1    fi

        PIC_DIR="/home/$username/Pictures/SystemPictures"    mkdir -p "$PIC_DIR"/{backgrounds,lockdown,restscreen}

        # 桌面壁纸    if confirm_action "设置自定义桌面壁纸?"; then        echo -e "${YELLOW}请将壁纸文件放在 $PIC_DIR/backgrounds/ 目录下${RESET}"        gsettings set org.mate.background picture-filename "$PIC_DIR/backgrounds/default.jpg"        log"设置桌面壁纸路径: $PIC_DIR/backgrounds"    fi

        # 锁屏壁纸    if confirm_action "设置自定义锁屏壁纸?"; then        echo -e "${YELLOW}请将锁屏壁纸放在 $PIC_DIR/lockdown/ 目录下${RESET}"        gsettings set org.ukui.screensaver background "$PIC_DIR/lockdown/default.jpg"        log"设置锁屏壁纸路径: $PIC_DIR/lockdown"    fi

        # 屏保设置    if confirm_action "配置屏保显示文字?"; then        read -rp "输入屏保显示文字: " motto        gsettings set org.ukui.screensaver-default mytext "$motto"        gsettings set org.ukui.screensaver-default background-path "$PIC_DIR/restscreen"        log"设置屏保文字: $motto"    fi

        echo -e "${GREEN}✓ 个性化设置完成${RESET}"    return0}
    # ================= 系统信息功能 =================system_info() {    clear    echo -e "${BLUE}╔══════════════════════════════╗"    echo -e "║       系统信息概览          ║"    echo -e "╚══════════════════════════════╝${RESET}"

        # 系统信息    echo -e "${CYAN}操作系统:${RESET}$(lsb_release -d | cut -f2-)"    echo -e "${CYAN}内核版本:${RESET}$(uname -r)"    echo -e "${CYAN}系统时间:${RESET}$(date)"    echo -e "${CYAN}运行时间:${RESET}$(uptime -p)"

        # 硬件信息    echo -e "\n${CYAN}CPU型号:${RESET}$(grep "model name" /proc/cpuinfo | head -1 | cut -d: -f2 | xargs)"    echo -e "${CYAN}核心数量:${RESET} $(grep -c "processor" /proc/cpuinfo)"    echo -e "${CYAN}内存使用:${RESET}$(free -h | awk '/Mem/{print $3 "/" $2}')"

        # 存储信息    echo -e "\n${CYAN}磁盘使用:${RESET}"    df -h / | head -2

        # 显示信息    echo -e "\n${CYAN}显示器信息:${RESET}"    xrandr | grep" connected"

        # 网络信息    echo -e "\n${CYAN}IP地址:${RESET}$(hostname -I | awk '{print $1}')"

        echo -e "\n${YELLOW}按Enter键返回...${RESET}"    read -r}
    shortcut_guide() {    clear    echo -e "${BLUE}╔══════════════════════════════╗"    echo -e "║       多屏操作快捷键        ║"    echo -e "╚══════════════════════════════╝${RESET}"

        echo -e "${CYAN}窗口管理:${RESET}"    echo -e "  Alt+Tab        - 窗口切换"    echo -e "  Win+Tab        - 多任务视图"    echo -e "  Win+方向键      - 窗口贴边"    echo -e "  Ctrl+Win+←/→   - 工作区切换"

        echo -e "\n${CYAN}多屏操作:${RESET}"    echo -e "  Super+P        - 显示模式切换"    echo -e "  Win+Shift+←/→  - 窗口移动到相邻屏幕"    echo -e "  Ctrl+Shift+←/→ - 窗口移动并最大化"

        echo -e "\n${CYAN}系统操作:${RESET}"    echo -e "  Ctrl+Alt+T     - 打开终端"    echo -e "  Alt+F2         - 运行命令"    echo -e "  Ctrl+Alt+Del   - 系统锁定"

        echo -e "\n${YELLOW}按Enter键返回...${RESET}"    read -r}
    # ================= 其他工具功能 =================sudo_fix() {    echo -e "${CYAN}>>> sudo权限修复${RESET}"    sudo chmod u+w /etc/sudoers    sudo sed -i '/%sudo/c\%sudo ALL=(ALL:ALL) ALL' /etc/sudoers    sudo chmod u-w /etc/sudoers    log"修复sudo权限"    echo -e "${GREEN}✓ sudo权限已修复${RESET}"}
    xrdp_fix() {    echo -e "${CYAN}>>> 远程桌面重复登录修复${RESET}"    sudo sed -i 's/port=3389/port=tcp:3389/g' /etc/xrdp/xrdp.ini    sudo systemctl restart xrdp    log"修复远程桌面重复登录"    echo -e "${GREEN}✓ 远程桌面服务已修复${RESET}"}
    usb_fix() {    echo -e "${CYAN}>>> 外设/U盘弹窗修复${RESET}"    gsettings set org.ukui.settings-daemon.plugins.media-helper automount false    gsettings set org.ukui.settings-daemon.plugins.media-helper automount-openfalse    log"禁用外设自动挂载"    echo -e "${GREEN}✓ U盘自动挂载已禁用${RESET}"}
    # ================= 主菜单 =================main_menu() {    whiletruedo        clear        echo -e "${MAGENTA}╔════════════════════════════════════════════╗"        echo -e "║          银河麒麟超级工具箱 v8.0           ║"        echo -e "║          作者:江流天                      ║"        echo -e "║          公众号:莫待无花空折枝z           ║"        echo -e "║          发布日期:2025-08-08              ║"        echo -e "╚════════════════════════════════════════════╝${RESET}"        echo -e "${CYAN}1) 系统故障修复${RESET}"        echo -e "${CYAN}2) 显示设置${RESET}"        echo -e "${CYAN}3) 网络设置${RESET}"        echo -e "${CYAN}4) 系统优化${RESET}"        echo -e "${CYAN}5) 系统信息${RESET}"        echo -e "${CYAN}6) 其他工具${RESET}"        echo -e "${RED}0) 退出工具箱${RESET}"        echo -e "════════════════════════════════════════════"



            read -rp "请输入选项编号: " choice        case$choicein            1) system_fault_menu ;            2) display_menu ;            3) network_menu ;            4) system_optimize_menu ;            5) system_info_menu ;            6) other_tools_menu ;            0)                echo -e "${GREEN}感谢使用银河麒麟工具箱!${RESET}"                exit 0                ;            *)                echo -e "${RED}无效选择,请重新输入!${RESET}"                sleep1                ;        esac    done}
    # ================= 系统故障修复菜单 =================system_fault_menu() {    whiletruedo        clear        echo -e "${MAGENTA}╔════════════════════════════════════════════╗"        echo -e "║              系统故障修复                  ║"        echo -e "╚════════════════════════════════════════════╝${RESET}"        echo -e "1) 应用程序闪退修复"        echo -e "2) 鼠标无法点击修复"        echo -e "3) 桌面图标丢失修复"        echo -e "4) 登录循环问题修复"        echo -e "5) 软件商店异常修复"        echo -e "6) 桌面登录问题修复"        echo -e "7) 任务栏问题修复"        echo -e "0) 返回主菜单"        echo -e "════════════════════════════════════════════"



            read -rp "请输入选项编号: " choice        case$choicein            1) app_crash_fix ;            2) mouse_fix ;            3) desktop_icon_fix ;            4) login_loop_fix ;            5) store_fix ;            6) desktop_login_fix ;            7) taskbar_submenu ;            0break ;            *)                echo -e "${RED}无效选择,请重新输入!${RESET}"                sleep1                ;        esac        echo -e "\n${YELLOW}按Enter键继续...${RESET}"        read -r    done}
    # ================= 显示设置菜单 =================display_menu() {    whiletruedo        clear        echo -e "${MAGENTA}╔════════════════════════════════════════════╗"        echo -e "║                显示设置                    ║"        echo -e "╚════════════════════════════════════════════╝${RESET}"        echo -e "1) 多屏显示修复"        echo -e "2) 分辨率自动修复"        echo -e "3) 触屏映射修复"        echo -e "4) 壁纸黑屏修复"        echo -e "5) 亮度调节修复"        echo -e "6) 字体安装修复"        echo -e "0) 返回主菜单"        echo -e "════════════════════════════════════════════"



            read -rp "请输入选项编号: " choice        case$choicein            1) multi_screen_fix ;            2) resolution_fix ;            3) touchscreen_fix ;            4) wallpaper_fix ;            5) brightness_fix ;            6) font_fix ;            0break ;            *)                echo -e "${RED}无效选择,请重新输入!${RESET}"                sleep1                ;        esac        echo -e "\n${YELLOW}按Enter键继续...${RESET}"        read -r    done}
    # ================= 网络设置菜单 =================network_menu() {    whiletruedo        clear        echo -e "${MAGENTA}╔════════════════════════════════════════════╗"        echo -e "║                网络设置                    ║"        echo -e "╚════════════════════════════════════════════╝${RESET}"        echo -e "1) 网络速度控制"        echo -e "2) DNS解析优化"        echo -e "3) Samba共享管理"        echo -e "0) 返回主菜单"        echo -e "════════════════════════════════════════════"



            read -rp "请输入选项编号: " choice        case$choicein            1) network_speed_control ;            2) dns_fix ;            3) samba_management ;            0break ;            *)                echo -e "${RED}无效选择,请重新输入!${RESET}"                sleep1                ;        esac        echo -e "\n${YELLOW}按Enter键继续...${RESET}"        read -r    done}
    # ================= 系统优化菜单 =================system_optimize_menu() {    whiletruedo        clear        echo -e "${MAGENTA}╔════════════════════════════════════════════╗"        echo -e "║                系统优化                    ║"        echo -e "╚════════════════════════════════════════════╝${RESET}"        echo -e "1) 系统性能优化"        echo -e "2) 磁盘清理工具"        echo -e "3) 个性化设置"        echo -e "0) 返回主菜单"        echo -e "════════════════════════════════════════════"



            read -rp "请输入选项编号: " choice        case$choicein            1) system_optimization ;            2) disk_clean_menu ;            3) personalize_settings ;            0break ;            *)                echo -e "${RED}无效选择,请重新输入!${RESET}"                sleep1                ;        esac        echo -e "\n${YELLOW}按Enter键继续...${RESET}"        read -r    done}
    # ================= 系统信息菜单 =================system_info_menu() {    whiletruedo        clear        echo -e "${MAGENTA}╔════════════════════════════════════════════╗"        echo -e "║                系统信息                    ║"        echo -e "╚════════════════════════════════════════════╝${RESET}"        echo -e "1) 系统信息查看"        echo -e "2) 快捷键指南"        echo -e "0) 返回主菜单"        echo -e "════════════════════════════════════════════"



            read -rp "请输入选项编号: " choice        case$choicein            1) system_info ;            2) shortcut_guide ;            0break ;            *)                echo -e "${RED}无效选择,请重新输入!${RESET}"                sleep1                ;        esac        echo -e "\n${YELLOW}按Enter键继续...${RESET}"        read -r    done}
    # ================= 其他工具菜单 =================other_tools_menu() {    whiletruedo        clear        echo -e "${MAGENTA}╔════════════════════════════════════════════╗"        echo -e "║                其他工具                    ║"        echo -e "╚════════════════════════════════════════════╝${RESET}"        echo -e "1) sudo权限修复"        echo -e "2) 远程桌面修复"        echo -e "3) U盘弹窗修复"        echo -e "0) 返回主菜单"        echo -e "════════════════════════════════════════════"



            read -rp "请输入选项编号: " choice        case$choicein            1) sudo_fix ;            2) xrdp_fix ;            3) usb_fix ;            0break ;            *)                echo -e "${RED}无效选择,请重新输入!${RESET}"                sleep1                ;        esac        echo -e "\n${YELLOW}按Enter键继续...${RESET}"        read -r    done}
    # ================= 脚本入口 =================check_rootecho -e "${GREEN}银河麒麟超级工具箱 v8.0 启动中...${RESET}"sleep1main_menu


    总结:     

            设计这个脚本的过程,就像把一台“故障百出的老旧电脑”拆成零件,再重新组装成一把“瑞士军刀”。最大的感受可以总结成四句话:

    “把碎片拼成地图”

    银河麒麟(以及整个国产 Linux 生态)的痛点非常碎片化:任务栏会突然蒸发、壁纸会黑屏、Samba 共享连不上、磁盘莫名其妙爆满……每解决一个问题,就像在地图上插上一枚小旗。当把所有旗子连成线,就形成了一张**“故障-修复”全景图**,脚本就是这张图的 GPS。

    “把门槛降到零”

    早期版本需要 root 常驻、手动改配置、查日志,对普通用户极不友好。后来把所有提权动作都包装成 sudo 单点,再配中文菜单、颜色提示、一键回车,让“小白”也能像点外卖一样修电脑——这种“把复杂留给代码,把简单留给用户”的减法,比加功能更难,但也更有成就感。

    “把脚本做成生态”
    每收到一条用户反馈(“亮度调不了”“多屏触控错位”),就在脚本里加一个 case 分支;每解决一个系统更新带来的新坑,就升级一次版本号。久而久之,脚本从**“一次性工具”变成了“活的 FAQ”**,甚至成了同事之间口口相传的“内部秘籍”。

    “把技术写成诗”
    给菜单画 ASCII 边框、给日志留时间戳——这些看似花哨的装饰,其实是在冰冷的命令行里植入人情味。当用户看到“✓ 壁纸已复活”或“🎉 任务栏满血归来”时,技术就不再是技术,而是一种被理解的温暖。

        最终,脚本不再只是一段 Bash,而是一张“让国产系统更好用”的说明书,一把“让信创用户少踩坑”的梯子。每一次 chmod +x,都是在为国产生态添一块砖


    本文链接:https://www.eycit.com/post/18.html 转载需授权!

    分享到:
    协助本站SEO优化一下,谢谢!
    关键词不能为空

    免责声明

    本站所有资源来自互联网,仅供交流学习之用,不得用于任何商业用途,如果喜欢请购买正版。下载试用后请在24小时内删除,因使用本站软件造成的损失,全部由使用者本人承担。 如果您发现本站侵害了相关版权,请联系站长并出示版权证明,本站将第一时间进行相关处理。联系邮箱:465567714@qq.com

    同类推荐

    发表评论

    访客

    ◎欢迎参与讨论,请在这里发表您的看法和观点。