1536 字
8 分钟

Ubuntu24 Linux 配置指南

更新#

Terminal window
sudo apt update
sudo apt upgrade -y

卸载、重装、美化vim#

Terminal window
vim ~/sh/reinstall-vim-with-config.sh
chmod +x ~/sh/reinstall-vim-with-config.sh
~/sh/reinstall-vim-with-config.sh

reinstall-vim-with-config.sh脚本

reinstall-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 ~/.vimrc
echo "✅ 用户配置 ~/.vim 和 ~/.vimrc 已删除"
# 4. 清理无用依赖
sudo apt autoremove -y
echo "📥 开始重新安装 Vim..."
# 5. 更新软件包列表(确保安装最新版)
sudo apt update
# 6. 重新安装 Vim
sudo apt install vim -y
echo "✅ Vim 已重新安装!"
# 7. 写入新的、语法正确的 .vimrc(美化配置)
cat > ~/.vimrc << 'EOF'
" vim: tw=0
set nocompatible
set backspace=indent,eol,start
set laststatus=2
set statusline=%F%r\ [HEX=%B][%l,%v,%P]\ %{strftime('%H:%M')}
set showcmd
set wildmenu
set number
set showmatch
set hlsearch
set incsearch
set nowrapscan
set noeb
set ttimeout
set ttimeoutlen=100
set mouse=n
set cursorline
set cursorlineopt=number
syntax enable
filetype plugin indent on
set shiftwidth=4
set expandtab
set softtabstop=-1
colorscheme slate
highlight MyTabSpace ctermfg=darkgrey
match 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 ~/.vimrc
echo "🎨 ~/.vimrc 美化配置已写入!"
# 8. 验证安装
echo "📋 Vim 版本信息:"
vim --version | head -n 5
echo ""
echo "🎉 操作完成:Vim 已彻底重置并应用美化配置!"
echo "💡 直接运行 'vim' 即可体验新配置。"

ssh远程连接#

Terminal window
vim setup-ssh.sh
chmod +x setup-ssh.sh
sudo ./setup-ssh.sh

setup-ssh.sh脚本

setup-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_config
sudo tee /etc/ssh/sshd_config > /dev/null << 'EOF'
# 基础设置
Port 22
AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::
# 主机密钥(保留默认)
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
# 认证设置
PermitRootLogin yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
PermitEmptyPasswords no
KbdInteractiveAuthentication no
# 安全与日志
UsePAM yes
PrintMotd no
X11Forwarding yes
AcceptEnv LANG LC_*
# 子系统
Subsystem sftp /usr/lib/openssh/sftp-server
# 其他
ClientAliveInterval 600
ClientAliveCountMax 3
EOF
# 5. 删除旧的 authorized_keys 并写入新内容(针对当前用户 smyb)
mkdir -p ~/.ssh
chmod 700 ~/.ssh
cat > ~/.ssh/authorized_keys << 'EOF'
ssh-rsa xxxx
EOF
chmod 600 ~/.ssh/authorized_keys
chown -R "$USER:$USER" ~/.ssh
# 6. 配置 UFW 防火墙
sudo ufw --force enable
sudo 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}'

终端代理#

Terminal window
vim ~/sh/setup-global-proxy.sh
chmod +x ~/sh/setup-global-proxy.sh
~/sh/setup-global-proxy.sh

setup-global-proxy.sh脚本

setup-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安装#

Terminal window
vim ~/sh/install-docker-official-with-proxy.sh
chmod +x ~/sh/install-docker-official-with-proxy.sh
~/sh/install-docker-official-with-proxy.sh

install-docker-official-with-proxy.sh脚本

install-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 || true
sudo apt purge -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin || true
sudo rm -rf /var/lib/docker /var/lib/containerd ~/.docker
sudo 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/null
echo '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-reload
sudo systemctl restart docker
echo "🗑️ 清理临时文件..."
rm -f get-docker.sh
sudo rm -f /etc/apt/apt.conf.d/80proxy # 可选:移除 apt 代理(Docker 已独立配置)
echo "✅ 验证安装..."
# 注意:此时当前 shell 仍无 docker 组权限,需 newgrp 或重登
# 但我们可以用 sudo 验证服务是否正常
sudo docker --version
sudo 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
许可协议
CC BY-NC-SA 4.0
最后更新于 2025-10-01,距今已过 140 天

部分内容可能已过时

Profile Image of the Author
三木羽冰
嵌言片语
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
21
分类
3
标签
6
总字数
24,212
运行时长
0
最后活动
0 天前

目录