From 724681e6eaa74f221e76286b0e06b2eb199ee86f Mon Sep 17 00:00:00 2001 From: Lsmoisu <114275920+Lsmoisu@users.noreply.github.com> Date: Thu, 24 Apr 2025 18:35:43 +0800 Subject: [PATCH] Update env_zh.sh --- env_zh.sh | 71 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 50 insertions(+), 21 deletions(-) diff --git a/env_zh.sh b/env_zh.sh index 904c205..c4c4de1 100644 --- a/env_zh.sh +++ b/env_zh.sh @@ -1,38 +1,55 @@ #!/bin/bash # 脚本名称:setup_locale_vim_chinese.sh # 功能:设置系统语言环境和Vim配置以解决中文乱码问题 -# 适用系统:Debian/Ubuntu +# 适用系统:Debian/Ubuntu, CentOS/RHEL echo "开始设置系统语言环境和Vim配置以解决中文乱码问题..." # 检测系统类型 +SYSTEM_TYPE="" if [ -f /etc/debian_version ]; then SYSTEM_TYPE="debian" - echo "检测到的系统类型:debian" + echo "检测到的系统类型:Debian/Ubuntu" +elif [ -f /etc/redhat-release ]; then + SYSTEM_TYPE="centos" + echo "检测到的系统类型:CentOS/RHEL" else - echo "不支持的系统类型!此脚本仅适用于Debian/Ubuntu系统。" + echo "不支持的系统类型!此脚本仅适用于Debian/Ubuntu和CentOS/RHEL系统。" exit 1 fi -# 检查并安装语言包 +# 根据系统类型检查并安装语言包 echo "检查并安装语言包..." -sudo apt update -sudo apt install -y locales +if [ "$SYSTEM_TYPE" = "debian" ]; then + sudo apt update + sudo apt install -y locales +elif [ "$SYSTEM_TYPE" = "centos" ]; then + sudo yum install -y glibc-common +fi # 生成zh_CN.UTF-8语言环境 echo "生成zh_CN.UTF-8语言环境..." -if [ -f /etc/locale.gen ]; then - sudo sed -i 's/# zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/' /etc/locale.gen -else - sudo bash -c 'echo "zh_CN.UTF-8 UTF-8" > /etc/locale.gen' +if [ "$SYSTEM_TYPE" = "debian" ]; then + if [ -f /etc/locale.gen ]; then + sudo sed -i 's/# zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/' /etc/locale.gen + else + sudo bash -c 'echo "zh_CN.UTF-8 UTF-8" > /etc/locale.gen' + fi + sudo locale-gen +elif [ "$SYSTEM_TYPE" = "centos" ]; then + sudo localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 fi -sudo locale-gen # 设置系统默认语言环境为zh_CN.UTF-8 echo "设置系统默认语言环境为zh_CN.UTF-8..." -sudo bash -c 'echo "LANG=zh_CN.UTF-8" > /etc/default/locale' -sudo bash -c 'echo "LANGUAGE=zh_CN:zh" >> /etc/default/locale' -sudo bash -c 'echo "LC_CTYPE=zh_CN.UTF-8" >> /etc/default/locale' +if [ "$SYSTEM_TYPE" = "debian" ]; then + sudo bash -c 'echo "LANG=zh_CN.UTF-8" > /etc/default/locale' + sudo bash -c 'echo "LANGUAGE=zh_CN:zh" >> /etc/default/locale' + sudo bash -c 'echo "LC_CTYPE=zh_CN.UTF-8" >> /etc/default/locale' +elif [ "$SYSTEM_TYPE" = "centos" ]; then + sudo bash -c 'echo "LANG=zh_CN.UTF-8" > /etc/locale.conf' + sudo bash -c 'echo "LC_CTYPE=zh_CN.UTF-8" >> /etc/locale.conf' +fi # 更新当前会话环境变量 echo "更新当前会话环境变量..." @@ -55,22 +72,29 @@ if command -v vim &> /dev/null; then echo "vim已安装,跳过安装步骤。" else echo "vim未安装,正在安装..." - sudo apt install -y vim + if [ "$SYSTEM_TYPE" = "debian" ]; then + sudo apt install -y vim + elif [ "$SYSTEM_TYPE" = "centos" ]; then + sudo yum install -y vim-enhanced + fi fi # 配置vim支持中文编码 echo "配置vim支持中文编码..." -VIMRC="/etc/vim/vimrc" +VIMRC="/etc/vimrc" +if [ "$SYSTEM_TYPE" = "debian" ]; then + VIMRC="/etc/vim/vimrc" +fi if [ -f "$VIMRC" ]; then if grep -q "set fileencodings=utf-8" "$VIMRC"; then echo "vim编码配置已存在,跳过添加。" else - sudo bash -c 'cat >> "$VIMRC" << EOF -" 设置编码支持中文 + sudo bash -c "cat >> '$VIMRC' << EOF +\" 设置编码支持中文 set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 set encoding=utf-8 -EOF' +EOF" echo "vim编码配置已添加。" fi else @@ -86,8 +110,13 @@ echo "命令:vim $TEST_FILE" # 清理包管理缓存 echo "清理包管理缓存..." -sudo apt autoremove -y -sudo apt autoclean +if [ "$SYSTEM_TYPE" = "debian" ]; then + sudo apt autoremove -y + sudo apt autoclean +elif [ "$SYSTEM_TYPE" = "centos" ]; then + sudo yum autoremove -y + sudo yum clean all +fi echo "脚本执行完成!" echo "注意:如果通过SSH连接,请确保终端客户端(如PuTTY、iTerm2)字符编码设置为UTF-8。"