From 2334906b0556835bdd0d6377bf23b1a7d7f484f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9D=A6?= Date: Sun, 11 May 2025 13:01:36 +0800 Subject: [PATCH] =?UTF-8?q?feat(init):=20=E6=B7=BB=E5=8A=A0=20Linux=20?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E5=88=9D=E5=A7=8B=E5=8C=96=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 linux.sh 脚本,用于通用 Linux 系统的初始化 - 添加 README.md 文件,说明脚本功能和使用方法 -脚本功能包括: - 更换软件源为清华大学源 - 设置 DNS 为 114.114.114.114 和 223.5.5.5 - 设置时区为 Asia/Shanghai 并同步时间 - 支持 Debian、Ubuntu、CentOS、Fedora 等主流 Linux 发行版 --- init/README.md | 13 ++++++ init/linux.sh | 117 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 130 insertions(+) create mode 100644 init/README.md create mode 100644 init/linux.sh diff --git a/init/README.md b/init/README.md new file mode 100644 index 0000000..c907ab0 --- /dev/null +++ b/init/README.md @@ -0,0 +1,13 @@ +# 初始化脚本 + +## Linux + +```bash +curl -sSL https://git.sugarscat.cn/me/script/-/raw/main/init/linux.sh | bash +``` + +进行的操作有: + +1. 更换软件源为 `清华大学源`; +2. 更换DNS为 `114.114.114.114`,`223.5.5.5`; +3. 设置时区 `Asia/Shanghai` 和时间同步 diff --git a/init/linux.sh b/init/linux.sh new file mode 100644 index 0000000..69c87ce --- /dev/null +++ b/init/linux.sh @@ -0,0 +1,117 @@ +#!/bin/bash + +set -euo pipefail + +echo "=== 通用 Linux 初始化脚本 ===" + +# 确保为 root +if [ "$EUID" -ne 0 ]; then + echo "请以 root 用户运行此脚本。" >&2 + exit 1 +fi + +# 检测系统信息 +get_os_info() { + if [ -f /etc/os-release ]; then + . /etc/os-release + DISTRO_ID=$ID + DISTRO_NAME=$NAME + DISTRO_VERSION=$VERSION_ID + else + echo "无法识别系统类型。" >&2 + exit 1 + fi +} + +# 设置 DNS +set_dns() { + echo "设置 DNS..." + rm -f /etc/resolv.conf + cat > /etc/resolv.conf </dev/null; then + chattr +i /etc/resolv.conf || echo "警告: 无法锁定 resolv.conf" + fi +} + +# 设置时区和时间同步 +set_timezone_and_time() { + echo "设置时区为 Asia/Shanghai..." + timedatectl set-timezone Asia/Shanghai 2>/dev/null || ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime + + echo "安装 ntpdate..." + $INSTALL_CMD ntpdate -y + echo "正在同步时间..." + ntpdate ntp.aliyun.com || echo "时间同步失败,请检查网络连接" +} + +# 设置清华源 +set_mirrors() { + echo "更换软件源为清华镜像..." + + case "$DISTRO_ID" in + debian|ubuntu|raspbian) + CODENAME=$(lsb_release -cs 2>/dev/null || echo "stable") + cat > /etc/apt/sources.list </dev/null; then + INSTALL_CMD="apt install -y" + apt update -y +elif command -v dnf &>/dev/null; then + INSTALL_CMD="dnf install -y" + dnf makecache +elif command -v yum &>/dev/null; then + INSTALL_CMD="yum install -y" + yum makecache +else + echo "不支持的包管理器。" >&2 + exit 1 +fi + +# 安装通用工具 +$INSTALL_CMD curl wget lsb-release || true + +# 执行配置步骤 +set_mirrors +set_dns +set_timezone_and_time + +echo "=== 初始化完成!系统已优化 ==="