Update env_zh.sh

This commit is contained in:
Lsmoisu 2025-04-25 15:58:50 +08:00 committed by GitHub
parent 7864ef71c3
commit cd42fef585
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,4 +1,11 @@
#!/bin/bash
# 脚本名称: setup_chinese_locale.sh
# 描述: 配置中文语言环境,支持 Ubuntu 和 CentOS 系统。
# 包括安装必要包、生成 Locale、设置环境变量并新增设置时区为东八区 (Asia/Shanghai)。
# 作者: AI Assistant (基于用户查询生成)
# 版本: 1.2 (增加了时区设置)
# 注意: 以 root 或 sudo 权限运行此脚本。
# 针对 Ubuntu 24.10 和 CentOS 7+。
# 步骤0: 检测操作系统
OS_ID=""
@ -32,6 +39,20 @@ if [ $? -ne 0 ]; then
exit 1
fi
# 步骤1.5: 设置时区为东八区 (Asia/Shanghai)
echo "步骤1.5: 设置时区为东八区 (Asia/Shanghai)..."
if command -v timedatectl &> /dev/null; then # 检查 timedatectl 是否可用
sudo timedatectl set-timezone Asia/Shanghai
if [ $? -eq 0 ]; then
echo "成功: 时区已设置为 Asia/Shanghai。"
timedatectl # 显示当前时区以验证
else
echo "警告: 时区设置失败。请手动运行 'sudo timedatectl set-timezone Asia/Shanghai'。"
fi
else
echo "警告: timedatectl 命令不可用。时区设置跳过。请手动配置时区。"
fi
# 步骤2: 安装必要工具和包
echo "步骤2: 安装中文相关包..."
if [[ "$OS_ID" == "ubuntu" || "$OS_ID" == "debian" ]]; then
@ -40,10 +61,10 @@ elif [[ "$OS_ID" == "centos" || "$OS_ID" == "rhel" ]]; then
# 先安装 EPEL 仓库
if command -v dnf &> /dev/null; then
sudo dnf install -y epel-release
sudo dnf install -y glibc-common wqy-zenhei-fonts # manpages-zh 可能不可用,跳过
sudo dnf install -y glibc-common wqy-zenhei-fonts
elif command -v yum &> /dev/null; then
sudo yum install -y epel-release
sudo yum install -y glibc-common wqy-zenhei-fonts # manpages-zh 可能不可用,跳过
sudo yum install -y glibc-common wqy-zenhei-fonts
fi
if [ $? -ne 0 ]; then
echo "错误: EPEL 或包安装失败。请手动检查。"
@ -62,9 +83,9 @@ if [[ "$OS_ID" == "ubuntu" || "$OS_ID" == "debian" ]]; then
sudo locale-gen zh_CN.UTF-8
sudo update-locale LANG=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8
elif [[ "$OS_ID" == "centos" || "$OS_ID" == "rhel" ]]; then
sudo localedef -i zh_CN -f UTF-8 zh_CN.UTF-8 # 生成 Locale
sudo localedef -i zh_CN -f UTF-8 zh_CN.UTF-8
if [ $? -eq 0 ]; then
echo "export LANG=zh_CN.UTF-8" | sudo tee -a /etc/locale.conf # 设置系统级 Locale
echo "export LANG=zh_CN.UTF-8" | sudo tee -a /etc/locale.conf
echo "export LC_ALL=zh_CN.UTF-8" | sudo tee -a /etc/locale.conf
else
echo "错误: Locale 生成失败。"
@ -86,16 +107,6 @@ if [ $? -ne 0 ]; then
echo "警告: 环境变量设置可能未完全生效。请重新登录 SSH。"
fi
# 步骤5: 验证配置
echo "步骤5: 验证中文语言环境..."
locale # 显示当前 Locale 设置
if locale | grep -q "zh_CN.UTF-8"; then
echo "成功: 中文语言环境配置完成!"
echo "提示: 请重新登录 SSH 会话以确保所有变化生效。"
else
echo "警告: 配置可能未完全成功。请检查输出并手动验证。"
fi
# 检查vim是否已安装
echo "检查vim是否已安装..."
if command -v vim &> /dev/null; then
@ -138,4 +149,15 @@ echo "测试中文显示 - Test Chinese Display" > "$TEST_FILE"
echo "请在vim中打开 $TEST_FILE 检查中文是否正常显示。"
echo "命令vim $TEST_FILE"
echo "脚本执行完毕。如果有问题,请查看系统日志 (e.g., sudo cat /var/log/messages | grep locale) 或运行 'locale' 命令。"
# 步骤5: 验证配置
echo "步骤5: 验证中文语言环境和时区..."
locale # 显示当前 Locale 设置
timedatectl # 显示当前时区设置
if locale | grep -q "zh_CN.UTF-8"; then
echo "成功: 中文语言环境配置完成!"
else
echo "警告: 配置可能未完全成功。请检查输出并手动验证。"
fi
echo "提示: 请重新登录 SSH 会话以确保所有变化生效,包括时区。"
echo "脚本执行完毕。如果有问题,请查看系统日志 (e.g., sudo cat /var/log/syslog | grep locale 或 sudo cat /var/log/messages | grep timezone)。"