由于国产电脑中经常会遇到应用程序闪退、鼠标问题、桌面图标、登录问题、多屏显示、分辨率、触屏映射、壁纸、亮度、字体、网络速度控制、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 ]; thenecho -e "${RED}✗ 请使用sudo运行此脚本!${RESET}"exit 1fi}# ================= 工具函数 =================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 ~/.gconfsudo systemctl restart lightdmlog"修复应用程序闪退:删除.config/.gconf并重启lightdm"echo -e "${GREEN}✓ 已重置用户配置,请重新登录测试${RESET}"}mouse_fix() {echo -e "${CYAN}>>> 正在修复鼠标无法点击问题...${RESET}"sudo rm -rf ~/.config/ ~/.cache/ ~/.Xauthoritysudo systemctl restart lightdmlog"修复鼠标异常:删除.config/.cache/.Xauthority"echo -e "${GREEN}✓ 已重置输入设备配置${RESET}"}desktop_icon_fix() {echo -e "${CYAN}>>> 正在修复桌面图标丢失...${RESET}"sudo apt install -y --reinstall caja caja-commonsudo apt-get dist-upgrade -ylog"修复桌面图标:重装caja并完成dist-upgrade"echo -e "${GREEN}✓ 桌面环境已修复,请重启系统${RESET}"}store_fix() {echo -e "${CYAN}>>> 正在修复软件商店异常...${RESET}"sudo rm -rf /var/lib/apt/lists/*sudo apt updatesudo apt install -y --reinstall ubuntu-kylin-software-centerlog"修复软件商店:清理apt缓存并重装商店"echo -e "${GREEN}✓ 软件商店服务已重置${RESET}"}network_icon_fix() {echo -e "${CYAN}>>> 正在修复网络图标消失...${RESET}"sudo apt install -y --reinstall network-manager-gnomekillall nm-appletnm-applet &log"修复网络图标:重装network-manager-gnome"echo -e "${GREEN}✓ 网络图标已恢复${RESET}"}desktop_login_fix() {echo -e "${CYAN}>>> 正在修复桌面登录问题...${RESET}"sudo apt install -y lightdm-gtk-greetersudo sed -i 's/^greeter-session=.*/greeter-session=lightdm-gtk-greeter/' /etc/lightdm/lightdm.conflog"修复登录问题:配置lightdm-gtk-greeter"echo -e "${GREEN}✓ 登录管理器已重置,重启后生效${RESET}"}login_loop_fix() {echo -e "${CYAN}>>> 正在修复登录循环问题...${RESET}"sudo rm -f ~/.Xauthoritysudo chown -R $USER:$USER $HOMElog"修复登录循环:重置.Xauthority和用户权限"echo -e "${GREEN}✓ 用户权限已修复,请重新登录${RESET}"}mate_panel_fix() {echo -e "${CYAN}>>> 正在修复面板加载失败...${RESET}"sudo apt install -y --reinstall mate-indicatorssudo systemctl restart lightdmlog"修复Mate面板:重装mate-indicators"echo -e "${GREEN}✓ Mate面板组件已修复${RESET}"}taskbar_submenu() {whiletrue; doclearecho -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 "请选择操作: " choicecase$choicein1)sudo apt install --reinstall ukui-panelukui-panel --reset &echo -e "${GREEN}已重置任务栏${RESET}"log"修复任务栏消失"sleep1;2)gsettings set org.ukui.panel clock-visible trueukui-panel --reset &echo -e "${GREEN}已修复时间显示${RESET}"log"修复任务栏时间"sleep1;3)killall ukui-panelukui-panel &echo -e "${GREEN}已重启任务栏${RESET}"log"重启任务栏解决图标问题"sleep1;4) network_icon_fix ;5) mate_panel_fix ;0) break ;*) echo -e "${RED}无效选择!${RESET}" ;esacdone}# ================= 显示设置功能 =================multi_screen_fix() {echo -e "${CYAN}>>> 多屏显示问题修复${RESET}"# 检测显示器接口echo -e "${YELLOW}正在检测显示器接口...${RESET}"interfaces=$(xrandr -q | grep " connected" | awk '{print $1}')if [ -z "$interfaces" ]; thenecho -e "${RED}✗ 未检测到活动显示器!${RESET}"return1fi# 显示检测结果echo -e "${GREEN}✓ 检测到显示器接口: ${interfaces}${RESET}"# 多屏模式选择echo -e "\n${CYAN}请选择多屏模式:${RESET}"echo"1) 扩展模式 (双屏拼接)"echo"2) 镜像模式 (双屏复制)"echo"3) 关闭副屏"echo"4) 重置显示器配置"read -rp "输入选项: " modecase$modein1) # 扩展模式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" --offlog"关闭副屏:$secondary"echo -e "${GREEN}✓ 已关闭副屏${RESET}";4) # 重置配置xrandr --autolog"重置显示器配置"echo -e "${GREEN}✓ 已重置显示设置${RESET}";*)echo -e "${RED}无效选择!${RESET}";esac# 持久化配置if confirm_action "是否保存配置到启动脚本?"; thenconfig_file="/etc/X11/Xsession.d/45kylin_display_fix"echo"#!/bin/bash" | sudo tee "$config_file" >/dev/nullecho"xrandr --auto" | sudo tee -a "$config_file" >/dev/nullfor iface in$interfaces; doecho"xrandr --output $iface --auto" | sudo tee -a "$config_file" >/dev/nulldonesudo chmod +x"$config_file"log"多屏配置已持久化到 $config_file"echo -e "${GREEN}✓ 配置已保存,重启后生效${RESET}"fi}resolution_fix() {echo -e "${CYAN}>>> 分辨率自动修复${RESET}"# 安装必要工具if ! command -v xrandr &> /dev/null; thenecho -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" ]; thenecho -e "${RED}✗ 未检测到活动显示器!${RESET}"return1fi# 自动检测最佳分辨率optimal_res=$(xrandr | grep -oP '\d+x\d+\s+\d+\.\d+\*' | head -1 | awk '{print $1}')if [ -z "$optimal_res" ]; thenoptimal_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 $modelinexrandr --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/nullecho"xrandr --newmode '$modeline'" | sudo tee -a "$config_file" > /dev/nullecho"xrandr --addmode '$active_display' '$mode_name'" | sudo tee -a "$config_file" > /dev/nullecho"xrandr --output '$active_display' --mode '$mode_name'" | sudo tee -a "$config_file" > /dev/nullsudo chmod +x"$config_file"log"分辨率设置为: $optimal_res"echo -e "${GREEN}✓ 分辨率已修复并持久化${RESET}"elsexrandr --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 "是否保存配置到启动脚本?"; thenconfig_file="/etc/X11/Xsession.d/47kylin_touchscreen_fix"echo"#!/bin/bash" | sudo tee "$config_file" >/dev/nullecho"xinput map-to-output \"$touch_device\" \"$target_display\"" | sudo tee -a "$config_file" >/dev/nullsudo chmod +x"$config_file"echo -e "${GREEN}✓ 配置已保存,重启后生效${RESET}"fi}wallpaper_fix() {echo -e "${CYAN}>>> 壁纸黑屏/桌面异常修复${RESET}"sudo apt install --reinstall ukui-backgroundgsettings 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"EndSectionEOFlog"修复亮度调节"echo -e "${GREEN}✓ 亮度调节功能已修复,请重启系统${RESET}"}font_fix() {if [ -d ~/Fonts ]; thensudo cp ~/Fonts/*.{ttf,TTF,otf,OTF} /usr/share/fonts/ 2>/dev/nullsudo fc-cache -f -vecho -e "${GREEN}已安装用户字体${RESET}"log"安装用户字体"elseecho -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[@]}"; doecho"$((i+1))) ${interfaces[$i]}"doneread -rp "选择接口编号: " iface_numselected_iface=${interfaces[$((iface_num-1))]}echo -e "\n1) 限制网速\n2) 修改传输速率\n3) 清除限制"read -rp "选择操作: " opcase$opin1) # 网速限制read -rp "下载速度(kbps): " down_speedread -rp "上传速度(kbps): " up_speedif ! command -v wondershaper &> /dev/null; thensudo apt install -y wondershaperfisudo wondershaper $selected_iface$down_speed$up_speedlog"限制网速: $selected_iface 下载${down_speed}kbps 上传${up_speed}kbps";2) # 传输速率修改ethtool $selected_iface | grep"Advertised link modes"read -rp "输入速率(如1000): " speedread -rp "双工模式(full/half): " duplexsudo 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 $duplexfiEOFlog"设置网卡速率: $selected_iface${speed}Mbps $duplex";3) # 清除限制sudo wondershaper clean $selected_ifacelog"清除网速限制: $selected_iface";esacecho -e "${GREEN}✓ 网络设置完成${RESET}"}dns_fix() {echo -e "${CYAN}>>> 修复DNS解析慢${RESET}"if ! grep -q"nameserver 223.5.5.5" /etc/resolv.conf; thenecho"nameserver 223.5.5.5" | sudo tee -a /etc/resolv.confecho"nameserver 119.29.29.29" | sudo tee -a /etc/resolv.confecho -e "${GREEN}✓ 已添加国内DNS服务器${RESET}"log"配置DNS: 223.5.5.5 和 119.29.29.29"elseecho -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 "请选择操作: " choicecase$choicein1)if ! command -v samba &> /dev/null; thensudo apt install -y sambafiread -rp "请输入要共享的目录路径: " share_dirread -rp "请输入共享名称: " share_nameread -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_dirbrowseable = yeswritable = yesguestok=yescreate mask =0777directorymask=0777EOF# 设置Samba用户sudo smbpasswd -a "$samba_user"# 重启服务sudo systemctl restart smbd nmbdlog"配置Samba共享: $share_dir 名称为 $share_name"echo -e "${GREEN}✓ Samba共享已启用${RESET}";2)sudo systemctl stop smbd nmbdsudo systemctl disable smbd nmbdlog"关闭Samba共享服务"echo -e "${GREEN}✓ Samba共享服务已停止并禁用${RESET}";3)smbstatustestparm -s;*)echo -e "${RED}无效选择${RESET}";esac}# ================= 系统优化功能 =================system_optimization() {whiletrue; doclearecho -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 "请选择操作: " choicecase$choicein1)gsettings set org.ukui.panel enable-animations falseecho -e "${GREEN}✓ 动画特效已关闭${RESET}"log"关闭UI动画";2)if ! grep -q"vm.swappiness=10" /etc/sysctl.conf; thenecho'vm.swappiness=10' | sudo tee -a /etc/sysctl.confsudo sysctl -pecho -e "${GREEN}✓ 内存使用优化完成${RESET}"log"设置vm.swappiness=10"elseecho -e "${YELLOW}已是最优配置${RESET}"fi;3)if confirm_action "确定要禁用非必要服务吗?"; thensudo systemctl disable --now cups bluetoothecho -e "${GREEN}✓ 非必要服务已禁用${RESET}"log"禁用cups和bluetooth服务"fi;4) dns_fix ;5)sudo fstrim -avecho -e "${GREEN}✓ 文件系统已优化${RESET}"log"执行fstrim优化";6)pids=$(pgrep imwheel)if [ -n "$pids" ]; thensudo kill -9 $pidssudo sed -i '/imwheel/d' /etc/xdg/autostart/*.desktopsudo sed -i '/imwheel/d' ~/.config/autostart/*.desktoplog"修复高CPU占用:终止并禁用imwheel"echo -e "${GREEN}✓ 已终止并禁用imwheel${RESET}"elseecho -e "${YELLOW}未检测到运行中的imwheel进程${RESET}"fi;7)echo -e "${CYAN}>>> 开机自启管理${RESET}"echo -e "1) 添加自启动\n2) 移除自启动\n3) 查看当前配置"read -rp "选择操作: " choicecase$choicein1) # 添加自启动read -rp "程序名称: " app_nameread -rp "执行命令: " exec_cmddesktop_file="${HOME}/.config/autostart/${app_name}.desktop"cat > "$desktop_file" <<EOF[Desktop Entry]Type=ApplicationName=$app_nameExec=$exec_cmdX-GNOME-Autostart-enabled=trueEOFchmod +x"$desktop_file"log"添加自启动: $app_name ($exec_cmd)"echo -e "${GREEN}✓ 已添加自启动项${RESET}";2) # 移除自启动files=($(ls ~/.config/autostart/*.desktop))for i in"${!files[@]}"; doecho"$((i+1))) $(basename "${files[$i]}")"doneread -rp "选择要移除的项目: " rm_numrm_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 "确定要执行全面优化吗?"; thengsettings set org.ukui.panel enable-animations falseecho'vm.swappiness=10' | sudo tee -a /etc/sysctl.confsudo sysctl -psudo systemctl disable --now cups bluetoothdns_fixsudo fstrim -av# 修复高CPU占用pids=$(pgrep imwheel)[ -n "$pids" ] && sudo kill -9 $pidsecho -e "${GREEN}✓ 全面优化完成${RESET}"log"执行全面系统优化"fi;0) break ;*) echo -e "${RED}无效选择!${RESET}" ;esacsleep1done}disk_clean_menu() {whiletrue; doclearecho -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 "请选择操作: " choicecase$choicein1)if confirm_action "确定要清理7天前的系统日志吗?"; thensudo journalctl --vacuum-time=7decho -e "${GREEN}✓ 系统日志已清理${RESET}"log"清理系统日志"fi;2)if confirm_action "确定要清理APT缓存吗?"; thensudo apt cleanecho -e "${GREEN}✓ APT缓存已清理${RESET}"log"清理APT缓存"fi;3)if confirm_action "确定要清理临时文件吗?"; thensudo rm -rf /tmp/*echo -e "${GREEN}✓ 临时文件已清理${RESET}"log"清理临时文件"fi;4)if confirm_action "确定要清理用户缓存吗?"; thenrm -rf ~/.cache/*echo -e "${GREEN}✓ 用户缓存已清理${RESET}"log"清理用户缓存"fi;5)if confirm_action "确定要清理浏览器缓存吗?"; thenrm -rf ~/.cache/{mozilla,chrome,chromium,opera,edge}/*echo -e "${GREEN}✓ 浏览器缓存已清理${RESET}"log"清理浏览器缓存"fi;6)if confirm_action "确定要清理Snap缓存吗?"; thensudo rm -rf ~/snap/*/common/.cache/*echo -e "${GREEN}✓ Snap缓存已清理${RESET}"log"清理Snap缓存"fi;7)if confirm_action "确定要执行全面清理吗?"; thensudo journalctl --vacuum-time=7dsudo apt cleansudo 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 "确定要删除出厂备份吗?此操作不可恢复!"; thensudo rm -rf /recoveryecho -e "${GREEN}✓ 出厂备份已删除${RESET}"log"删除出厂备份"fi;0) break ;*) echo -e "${RED}无效选择!${RESET}" ;esacsleep1done}personalize_settings() {echo -e "${CYAN}>>> 个性化设置 (桌面/锁屏/屏保)${RESET}"read -rp "请输入用户名: " username# 验证用户存在if ! id "$username" &>/dev/null; thenecho -e "${RED}✗ 用户 $username 不存在!${RESET}"return1fiPIC_DIR="/home/$username/Pictures/SystemPictures"mkdir -p "$PIC_DIR"/{backgrounds,lockdown,restscreen}# 桌面壁纸if confirm_action "设置自定义桌面壁纸?"; thenecho -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 "设置自定义锁屏壁纸?"; thenecho -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 "配置屏保显示文字?"; thenread -rp "输入屏保显示文字: " mottogsettings set org.ukui.screensaver-default mytext "$motto"gsettings set org.ukui.screensaver-default background-path "$PIC_DIR/restscreen"log"设置屏保文字: $motto"fiecho -e "${GREEN}✓ 个性化设置完成${RESET}"return0}# ================= 系统信息功能 =================system_info() {clearecho -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() {clearecho -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/sudoerssudo sed -i '/%sudo/c\%sudo ALL=(ALL:ALL) ALL' /etc/sudoerssudo chmod u-w /etc/sudoerslog"修复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.inisudo systemctl restart xrdplog"修复远程桌面重复登录"echo -e "${GREEN}✓ 远程桌面服务已修复${RESET}"}usb_fix() {echo -e "${CYAN}>>> 外设/U盘弹窗修复${RESET}"gsettings set org.ukui.settings-daemon.plugins.media-helper automount falsegsettings set org.ukui.settings-daemon.plugins.media-helper automount-openfalselog"禁用外设自动挂载"echo -e "${GREEN}✓ U盘自动挂载已禁用${RESET}"}# ================= 主菜单 =================main_menu() {whiletrue; doclearecho -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 "请输入选项编号: " choicecase$choicein1) 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;esacdone}# ================= 系统故障修复菜单 =================system_fault_menu() {whiletrue; doclearecho -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 "请输入选项编号: " choicecase$choicein1) app_crash_fix ;2) mouse_fix ;3) desktop_icon_fix ;4) login_loop_fix ;5) store_fix ;6) desktop_login_fix ;7) taskbar_submenu ;0) break ;*)echo -e "${RED}无效选择,请重新输入!${RESET}"sleep1;esacecho -e "\n${YELLOW}按Enter键继续...${RESET}"read -rdone}# ================= 显示设置菜单 =================display_menu() {whiletrue; doclearecho -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 "请输入选项编号: " choicecase$choicein1) multi_screen_fix ;2) resolution_fix ;3) touchscreen_fix ;4) wallpaper_fix ;5) brightness_fix ;6) font_fix ;0) break ;*)echo -e "${RED}无效选择,请重新输入!${RESET}"sleep1;esacecho -e "\n${YELLOW}按Enter键继续...${RESET}"read -rdone}# ================= 网络设置菜单 =================network_menu() {whiletrue; doclearecho -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 "请输入选项编号: " choicecase$choicein1) network_speed_control ;2) dns_fix ;3) samba_management ;0) break ;*)echo -e "${RED}无效选择,请重新输入!${RESET}"sleep1;esacecho -e "\n${YELLOW}按Enter键继续...${RESET}"read -rdone}# ================= 系统优化菜单 =================system_optimize_menu() {whiletrue; doclearecho -e "${MAGENTA}╔════════════════════════════════════════════╗"echo -e "║ 系统优化 ║"echo -e "╚════════════════════════════════════════════╝${RESET}"echo -e "1) 系统性能优化"echo -e "2) 磁盘清理工具"echo -e "3) 个性化设置"echo -e "0) 返回主菜单"echo -e "════════════════════════════════════════════"read -rp "请输入选项编号: " choicecase$choicein1) system_optimization ;2) disk_clean_menu ;3) personalize_settings ;0) break ;*)echo -e "${RED}无效选择,请重新输入!${RESET}"sleep1;esacecho -e "\n${YELLOW}按Enter键继续...${RESET}"read -rdone}# ================= 系统信息菜单 =================system_info_menu() {whiletrue; doclearecho -e "${MAGENTA}╔════════════════════════════════════════════╗"echo -e "║ 系统信息 ║"echo -e "╚════════════════════════════════════════════╝${RESET}"echo -e "1) 系统信息查看"echo -e "2) 快捷键指南"echo -e "0) 返回主菜单"echo -e "════════════════════════════════════════════"read -rp "请输入选项编号: " choicecase$choicein1) system_info ;2) shortcut_guide ;0) break ;*)echo -e "${RED}无效选择,请重新输入!${RESET}"sleep1;esacecho -e "\n${YELLOW}按Enter键继续...${RESET}"read -rdone}# ================= 其他工具菜单 =================other_tools_menu() {whiletrue; doclearecho -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 "请输入选项编号: " choicecase$choicein1) sudo_fix ;2) xrdp_fix ;3) usb_fix ;0) break ;*)echo -e "${RED}无效选择,请重新输入!${RESET}"sleep1;esacecho -e "\n${YELLOW}按Enter键继续...${RESET}"read -rdone}# ================= 脚本入口 =================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 转载需授权!
