1536 字
8 分钟
Ubuntu24 Linux 配置指南
更新
sudo apt update
sudo apt upgrade -y卸载、重装、美化vim
vim ~/sh/reinstall-vim-with-config.sh
chmod +x ~/sh/reinstall-vim-with-config.sh
~/sh/reinstall-vim-with-config.shreinstall-vim-with-config.sh脚本
#!/bin/bash
# 完全卸载、重装 Vim 并应用美化配置# 适用于 Ubuntu/Debian 系统
set -e # 遇到任何错误立即退出
echo "🔧 开始完全卸载 Vim..."
# 1. 移除 Vim 软件包sudo apt remove vim -y
# 2. 彻底清除系统级配置文件sudo apt purge vim -y
# 3. 删除用户级配置和插件目录rm -rf ~/.vim ~/.vimrcecho "✅ 用户配置 ~/.vim 和 ~/.vimrc 已删除"
# 4. 清理无用依赖sudo apt autoremove -y
echo "📥 开始重新安装 Vim..."
# 5. 更新软件包列表(确保安装最新版)sudo apt update
# 6. 重新安装 Vimsudo apt install vim -y
echo "✅ Vim 已重新安装!"
# 7. 写入新的、语法正确的 .vimrc(美化配置)cat > ~/.vimrc << 'EOF'" vim: tw=0set nocompatibleset backspace=indent,eol,startset laststatus=2set statusline=%F%r\ [HEX=%B][%l,%v,%P]\ %{strftime('%H:%M')}set showcmdset wildmenuset numberset showmatchset hlsearchset incsearchset nowrapscanset noebset ttimeoutset ttimeoutlen=100set mouse=nset cursorlineset cursorlineopt=numbersyntax enablefiletype plugin indent onset shiftwidth=4set expandtabset softtabstop=-1colorscheme slate
highlight MyTabSpace ctermfg=darkgreymatch MyTabSpace /\t\| /
autocmd FileType c,cpp,java,xml setlocal list | set listchars=tab:>~,trail:.
" gtags / cscope 配置(可选,若无 gtags 可注释)" set cscopetag" let GtagsCscope_Auto_Load = 1" let g:GtagsCscope_Quiet = 1" let g:Gtags_Close_When_Single = 1
" 快捷键映射nnoremap <F2> :cclose<CR>nnoremap <F3> :cn<CR>nnoremap <F4> :cp<CR>nnoremap <F6> :cs find f<Space>nnoremap <F9> :nohlsearch<CR>inoremap <F9> <C-o>:nohlsearch<CR>EOF
chmod 600 ~/.vimrcecho "🎨 ~/.vimrc 美化配置已写入!"
# 8. 验证安装echo "📋 Vim 版本信息:"vim --version | head -n 5
echo ""echo "🎉 操作完成:Vim 已彻底重置并应用美化配置!"echo "💡 直接运行 'vim' 即可体验新配置。"ssh远程连接
vim setup-ssh.sh
chmod +x setup-ssh.sh
sudo ./setup-ssh.shsetup-ssh.sh脚本
#!/bin/bash
set -e # 遇错即停
echo "🚀 开始配置 SSH 服务..."
# 1. 更新包索引sudo apt update
# 2. 安装 openssh-server(若未安装)sudo apt install -y openssh-server
# 3. 启用并启动 SSH 服务sudo systemctl enable --now ssh
# 4. 配置 /etc/ssh/sshd_configsudo tee /etc/ssh/sshd_config > /dev/null << 'EOF'# 基础设置Port 22AddressFamily anyListenAddress 0.0.0.0ListenAddress ::
# 主机密钥(保留默认)HostKey /etc/ssh/ssh_host_rsa_keyHostKey /etc/ssh/ssh_host_ecdsa_keyHostKey /etc/ssh/ssh_host_ed25519_key
# 认证设置PermitRootLogin yesPubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keysPasswordAuthentication noPermitEmptyPasswords noKbdInteractiveAuthentication no
# 安全与日志UsePAM yesPrintMotd noX11Forwarding yesAcceptEnv LANG LC_*
# 子系统Subsystem sftp /usr/lib/openssh/sftp-server
# 其他ClientAliveInterval 600ClientAliveCountMax 3EOF
# 5. 删除旧的 authorized_keys 并写入新内容(针对当前用户 smyb)mkdir -p ~/.sshchmod 700 ~/.ssh
cat > ~/.ssh/authorized_keys << 'EOF'ssh-rsa xxxxEOF
chmod 600 ~/.ssh/authorized_keyschown -R "$USER:$USER" ~/.ssh
# 6. 配置 UFW 防火墙sudo ufw --force enablesudo ufw allow 22/tcp comment 'SSH'
# 7. 重新加载 systemd 配置(因修改了监听地址)sudo systemctl daemon-reload
# 8. 重启 SSH 服务sudo systemctl restart ssh
# 9. 显示状态echo ""echo "✅ SSH 配置完成!"echo "📌 当前用户: $USER"echo "📌 公钥已写入 ~/.ssh/authorized_keys"echo "📌 root 可登录(PermitRootLogin yes)"echo "📌 仅允许密钥认证(PasswordAuthentication no)"echo "📌 防火墙已放行 22 端口"echo ""sudo systemctl status --no-pager ssh | grep -E "(Active|Loaded)"echo ""ip addr show | grep -E "inet .*global" | awk '{print "🌐 你的公网/局域网IP: " $2}'终端代理
vim ~/sh/setup-global-proxy.sh
chmod +x ~/sh/setup-global-proxy.sh
~/sh/setup-global-proxy.shsetup-global-proxy.sh脚本
#!/bin/bash
# Ubuntu 24.04 一键配置全局终端代理(适用于 SSH / VSCode Remote / 本地终端)# 代理地址: http://192.168.19.1:7897
set -e
PROXY_URL="http://192.168.19.1:7897"
echo "🌐 正在配置全局代理环境变量..."
# 备份原始配置(如果存在)[ -f ~/.bashrc ] && cp ~/.bashrc ~/.bashrc.bak.$(date +%Y%m%d_%H%M%S)[ -f ~/.profile ] && cp ~/.profile ~/.profile.bak.$(date +%Y%m%d_%H%M%S)
# 定义代理配置块(带开关函数)PROXY_CONFIG=$(cat <<EOF
# >>> 全局代理配置 (auto-generated by setup-global-proxy.sh) >>>export http_proxy="$PROXY_URL"export https_proxy="$PROXY_URL"export HTTP_PROXY="$PROXY_URL"export HTTPS_PROXY="$PROXY_URL"export ALL_PROXY="socks5://192.168.19.1:7898" # 可选:若需 socks5 支持(如 git)
proxy_on() { export http_proxy="$PROXY_URL" export https_proxy="\$http_proxy" export HTTP_PROXY="\$http_proxy" export HTTPS_PROXY="\$http_proxy" export ALL_PROXY="socks5://192.168.19.1:7898" echo "✅ 代理已启用"}
proxy_off() { unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY ALL_PROXY echo "📴 代理已关闭"}# <<< 全局代理配置 <<<EOF)
# 写入 ~/.bashrc(交互式终端)if ! grep -q "# >>> 全局代理配置" ~/.bashrc; then echo "$PROXY_CONFIG" >> ~/.bashrc echo "✅ 代理配置已写入 ~/.bashrc"else echo "⚠️ ~/.bashrc 已包含代理配置,跳过写入"fi
# 写入 ~/.profile(用于非交互式登录,如 VSCode Remote、SSH 环境)if ! grep -q "# >>> 全局代理配置" ~/.profile; then echo "$PROXY_CONFIG" >> ~/.profile echo "✅ 代理配置已写入 ~/.profile"else echo "⚠️ ~/.profile 已包含代理配置,跳过写入"fi
# 立即生效(仅对当前 shell 有效,新终端会自动加载)export http_proxy="$PROXY_URL"export https_proxy="$PROXY_URL"export HTTP_PROXY="$PROXY_URL"export HTTPS_PROXY="$PROXY_URL"export ALL_PROXY="socks5://192.168.19.1:7898"
echo ""echo "🎉 全局代理配置完成!"echo "📌 所有新打开的终端(SSH / VSCode Remote / 本地)都将自动走代理。"echo ""echo "🔧 使用以下命令快速开关代理:"echo " proxy_on # 启用代理"echo " proxy_off # 关闭代理"echo ""echo "💡 注意:当前终端已启用代理,新终端无需手动设置。"docker+compose安装
vim ~/sh/install-docker-official-with-proxy.sh
chmod +x ~/sh/install-docker-official-with-proxy.sh
~/sh/install-docker-official-with-proxy.shinstall-docker-official-with-proxy.sh脚本
#!/bin/bash
# Ubuntu 24.04 一键安装 Docker + Docker Compose(使用官方 get.docker.com 脚本 + 全程代理)# 代理地址: http://192.168.19.1:7897
set -e
PROXY_URL="http://192.168.19.1:7897"DOCKER_PROXY_DIR="/etc/systemd/system/docker.service.d"
echo "🧹 清理可能存在的旧 Docker 安装..."sudo apt remove -y docker docker-engine docker.io containerd runc || truesudo apt purge -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin || truesudo rm -rf /var/lib/docker /var/lib/containerd ~/.dockersudo apt autoremove -y
echo "🌐 设置环境变量,使 curl 和脚本走代理..."export http_proxy="$PROXY_URL"export https_proxy="$PROXY_URL"export HTTP_PROXY="$PROXY_URL"export HTTPS_PROXY="$PROXY_URL"
# 临时为 apt 设置代理(用于后续可能的依赖安装)echo 'Acquire::http::Proxy "'"$PROXY_URL"'";' | sudo tee /etc/apt/apt.conf.d/80proxy > /dev/nullecho 'Acquire::https::Proxy "'"$PROXY_URL"'";' | sudo tee -a /etc/apt/apt.conf.d/80proxy > /dev/null
echo "📥 下载官方 Docker 安装脚本(通过代理)..."curl -fsSL --proxy "$PROXY_URL" https://get.docker.com -o get-docker.sh
echo "🚀 运行 Docker 安装脚本(通过代理)..."sudo sh get-docker.sh
echo "👥 将当前用户加入 docker 组..."sudo usermod -aG docker "$USER"
echo "🔧 配置 Docker 守护进程使用代理(systemd drop-in)..."sudo mkdir -p "$DOCKER_PROXY_DIR"sudo tee "$DOCKER_PROXY_DIR/http-proxy.conf" > /dev/null <<EOF[Service]Environment="HTTP_PROXY=$PROXY_URL"Environment="HTTPS_PROXY=$PROXY_URL"Environment="NO_PROXY=localhost,127.0.0.1,.local"EOF
echo "🔁 重新加载 systemd 并重启 Docker..."sudo systemctl daemon-reloadsudo systemctl restart docker
echo "🗑️ 清理临时文件..."rm -f get-docker.shsudo rm -f /etc/apt/apt.conf.d/80proxy # 可选:移除 apt 代理(Docker 已独立配置)
echo "✅ 验证安装..."# 注意:此时当前 shell 仍无 docker 组权限,需 newgrp 或重登# 但我们可以用 sudo 验证服务是否正常sudo docker --versionsudo docker compose version
echo ""echo "🎉 Docker 和 Docker Compose 已成功安装!"echo "💡 请运行以下命令以在当前会话中启用 docker 权限:"echo " newgrp docker"echo "🌐 所有 Docker 操作(pull/build/run)将通过 $PROXY_URL 代理。"支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!
Ubuntu24 Linux 配置指南
https://blog.smyb.fun/posts/linux/base/ 最后更新于 2025-10-01,距今已过 140 天
部分内容可能已过时