Update env_zh.sh

This commit is contained in:
Lsmoisu 2025-04-24 18:35:43 +08:00 committed by GitHub
parent f2e80c3672
commit 724681e6ea
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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。"