#!/bin/bash ARCH=$(uname -m) echo "请选择要执行的脚本(可多选,用空格分隔):" echo "1. 安装docker" echo "2. 设置Swap大小" echo "3. 配置常用alias缩写" echo "4. apt安装常用软件" echo "5. 配置防火墙" echo "6. 安装公钥" echo "7. 安装conda" echo "8. 安装rust" echo "9. 开启bbr" echo "10. 安装rust" echo "11. 安装uv管理器" read -p "输入你的选择: " choices # 处理选择 for choice in $choices; do case $choice in 1) echo "安装docker" curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh rm ./get-docker.sh ;; 2) echo "输入Swap内存大小(MB) [默认: 2048]: " read -t 30 -p "> " swap_size if [ $? -ne 0 ] || [ -z "$swap_size" ]; then swap_size=2048 echo -e "\n使用默认值: ${swap_size}MB" fi dd if=/dev/zero of=/swapfile bs=1M count=$swap_size mkswap /swapfile swapon /swapfile echo "/swapfile swap swap defaults 0 0" | tee -a /etc/fstab ;; 3) echo "配置常用alias缩写" wget https://git.nvme.cc/adminroot/setup/raw/branch/main/src/alias.txt -qO ~/.alias.txt echo -e 'if [ -f ~/.alias.txt ]; then\n . ~/.alias.txt\nfi' >>~/.bashrc ;; 4) echo "即将安装htop cbm tree ufw curl wget lsof micro git git-lfs 7z zellij build-essential ffmpeg" apt update -y apt install -y htop cbm tree ufw curl wget lsof micro git git-lfs build-essential ffmpeg wget https://git.nvme.cc/adminroot/auto-update/raw/branch/main/app/zellij_$ARCH -O /usr/local/bin/zellij wget https://git.nvme.cc/adminroot/auto-update/raw/branch/main/app/7z_$ARCH -O /usr/local/bin/7z chmod +x /usr/local/bin/7z /usr/local/bin/zellij git config --global credential.helper store # git记住用户名密码 ;; 5) echo "配置防火墙" apt update -y apt install -y ufw ufw allow 22 ufw allow 80 ufw allow 443 ufw allow 13576 ufw allow 24687 echo "y" | ufw enable # Check if Docker rules already exist if grep -q "BEGIN UFW AND DOCKER" /etc/ufw/after.rules; then echo "UFW Docker规则已存在, 跳过..." else echo "下载并追加UFW Docker配置规则..." if curl -fsSL https://git.nvme.cc/adminroot/setup/raw/branch/main/src/ufw-docker.txt | tee -a /etc/ufw/after.rules > /dev/null; then echo "UFW Docker规则已成功追加到文件末尾" else echo "错误: 无法下载UFW Docker规则" exit 1 fi fi ufw reload ufw status ;; 6) echo "安装公钥" mkdir -p ~/.ssh echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIDtyoFZlC25rUrOyGgkxd4xO3DgcJy751y6w0d6Rbx4 eureka" >>~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh ;; 7) read -t 30 -p "Conda安装路径 (默认: ~/.miniconda3): " CONDA_PATH CONDA_PATH=${CONDA_PATH:-"$HOME/.miniconda3"} PROFILE="$HOME/.bashrc" case $ARCH in x86_64) MINICONDA_INSTALLER="Miniconda3-latest-Linux-x86_64.sh" ;; aarch64|arm64) MINICONDA_INSTALLER="Miniconda3-latest-Linux-aarch64.sh" ;; *) echo "不支持的架构: $ARCH" echo "支持的架构: x86_64, aarch64, armv7l" exit 1 ;; esac echo "检测到系统架构: $ARCH" echo "将下载: $MINICONDA_INSTALLER" mkdir -p "$CONDA_PATH" wget "https://repo.anaconda.com/miniconda/$MINICONDA_INSTALLER" -O "$CONDA_PATH/miniconda.sh" bash "$CONDA_PATH/miniconda.sh" -b -u -p "$CONDA_PATH" rm -f "$CONDA_PATH/miniconda.sh" echo "source $CONDA_PATH/bin/activate" >> "$PROFILE" ;; 8) echo "安装rust" curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ;; 9) echo "开启bbr..." echo -e "net.core.default_qdisc=fq\nnet.ipv4.tcp_congestion_control=bbr" | tee -a /etc/sysctl.conf sysctl -p 10) echo "安装rust" curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh 11) echo "安装uv管理器" curl -LsSf https://astral.sh/uv/install.sh | sh *) echo "无效的选择: $choice" ;; esac done echo " ============= Copy and run ============" echo "| |" echo "| |" echo "| source ~/.bashrc |" echo "| |" echo "| |" echo " ======================================="