#!/bin/sh ############################## # # 应用配置部分 # ############################## function app(){ # caddy配置 pacman -S --noconfirm caddy sed -i 's@^\(\s*root \* /usr/share/caddy\)$@#\1@' /etc/caddy/Caddyfile sed -i 's@^\(\s*file_server\)$@#\1\nerror 404@' /etc/caddy/Caddyfile systemctl enable --now caddy # docker配置,腾讯云源 pacman -S --noconfirm docker mkdir /etc/docker cat << EOL > /etc/docker/daemon.json { "registry-mirrors": [ "https://mirror.ccs.tencentyun.com" ] } EOL systemctl enable --now docker # fish配置 pacman -S --noconfirm fish mkdir -p ~/.config/fish/conf.d cat << EOL > ~/.config/fish/conf.d/10-root.fish set fish_greeting set LANG zh_CN.UTF-8 abbr -a lsof lsof -Pi EOL chsh -s /usr/bin/fish # nano 配置 pacman -S --noconfirm nano cat << EOL >> /etc/nanorc include "/usr/share/nano/*.nanorc" set linenumbers set tabstospaces set constantshow set tabsize 4 EOL # sshd 配置 cat << EOL > /etc/ssh/sshd_config.d/10-vps.conf PermitRootLogin yes PasswordAuthentication no ClientAliveInterval 3600 PrintLastLog no AddressFamily inet UsePAM no EOL systemctl enable --now sshd # sshd 公钥 cat << EOL > ~/.ssh/authorized_keys ssh-ed25519 xx EOL } ############################## # # 系统安装部分 1 # ############################## function sys1 (){ # 换源 cat << 'EOL' > /etc/pacman.d/mirrorlist Server = http://mirrors.tencentyun.com/archlinux/$repo/os/$arch EOL # 安装基本包 pacstrap /mnt base linux-lts intel-ucode grub openssh genfstab -U /mnt >> /mnt/etc/fstab # 名称服务器配置,腾讯云dns cat << EOL > /mnt/etc/resolv.conf nameserver 183.60.82.98 EOL } ############################## # # 系统安装部分 2 # ############################## function sys2 (){ # 时区 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 语言环境配置 cat << EOL > /etc/locale.gen zh_CN.UTF-8 UTF-8 EOL locale-gen # hostname 配置 cat << EOL > /etc/hostname vps1 EOL # 设置密码 hash='sha256' sed -i 's@^\(root:\).*\(:.*::::::\)$@\1'$hash'\2@' /etc/shadow # 网络配置 cat << EOL > /etc/systemd/network/20-wired.network [Match] Name=ens5 [Network] DHCP=ipv4 EOL systemctl enable 20-wired.network # 内核hook cat << EOL >> /etc/mkinitcpio.conf.d/10-vps.conf HOOKS=(base udev autodetect microcode modconf kms keyboard keymap block filesystems fsck)' EOL # 不生成fallback镜像 sed -i "s/^\(PRESETS=('default' 'fallback')\)$/#\1\nPRESETS=('default')/" /etc/mkinitcpio.d/linux-lts.preset rm /boot/initramfs-linux-lts-fallback.img # 引导 grub-install --target=i386-pc /dev/vda grub-mkconfig -o /boot/grub/grub.cfg }