运维效率低怎么办?Ubuntu 22.04 LTS 初始化与优化全流程

开发运维人员经常与黑乎乎的终端打交道,使用体验差、效率低。一些用户了解可使用各类软件如oh-my-zsh等来优化用户体验,但在云服务器配置过程中面临的网络访问困难、重复配置效率低下等痛点。本文介绍 Linux 环境起手式,安装必备的软件,包括 zsh、oh-my-zsh、git、docker 等。
关键词:云服务器配置、国内网络优化、oh-my-zsh、Docker、系统镜像
面向云服务器环境,开发、运维工程师,特别适用于国内网络。
注:本文所有的命令都是在 Ubuntu 22.04 LTS 上测试通过的,基于腾讯云服务器。
操作系统 Ubuntu 22.04 LTS
在国内的开发环境中,Ubuntu 是非常流行的,可与之相提并论的 Debian。Ubuntu 更注重用户体验,而 Debian 更注重稳定性。
LTS 版本是 Long Term Support 的缩写,意思是长期支持版本。
推荐选择20.04或22.04等LTS版本,不太推荐24.04是因为新版本配套软件可能不完善,容易出现难以解决的问题。
初始化服务器系统时,支持多种类型:使用应用模板、基于操作系统镜像、使用容器镜像、使用自定义镜像,可根据实际情况选择。
启动后可以首先执行基本的系统初始化配置,比如更新软件包列表、升级系统软件等。
# 更新软件包列表sudo apt update && sudo apt upgrade -y国内云服务厂商的都默认了依赖包安装源,无需修改。如果是在 VMWare 上安装 Ubuntu 22.04 LTS,需要注意的是,默认的安装源是 Ubuntu 官方的源,而不是国内的源,需要手动修改为国内的源。
Git 配置
git 是版本控制工具,用于管理代码的版本,Linux 操作系统发行版本一般都默认安装,直接进行配置即可。
git --version # 先查看下 git 版本,验证是否安装git config --global user.name "your_name"git config --global user.email "your_email@example.com"git config --global init.defaultBranch main # 设置默认分支为 mainGithub、Gitee、Gitlab 等代码托管平台都支持 SSH 协议,你可以在本地生成 SSH 密钥对,然后将公钥添加到代码托管平台的账户中。
# 生成SSH密钥ssh-keygen -t ed25519 -C "your_email@example.com"# 私钥文件:~/.ssh/id_ed25519chmod 700 ~/.ssh/id_ed25519 # 设置低权限建议一次生成密钥对后,自行保存管理(比如放到密码管理工具),可以重复使用,分发到其他服务器。
注:Ed25519 是一种 SSH 密钥算法,它比传统的 RSA 算法更安全,也更快速,已经基本取代 RSA 和 ECDSA。
主机名称更换
默认名为VM-XXX,可以根据偏好更换,尤其是需要在多台服务器之间切换时。
hostnamectl set-hostname <新主机名>默认 SHELL:zsh
Linux 操作系统中默认的 SHELL 是 bash,但是 bash 比较旧,功能也比较有限。macOS 从版本10.15 Catalina(2019年)开始,默认的 SHELL 由Bash 切换到 zsh。
zsh 确实更强大,功能丰富,支持更好的自动补全和主题定制。
sudo apt install zsh# 设置为默认shellchsh -s /bin/zsh检查当前 SHELL 是否为 zsh:
echo $SHELLzsh 增强,oh-my-zsh
oh-my-zsh 是一个社区驱动的 zsh 配置框架,它提供了很多有用的功能,比如插件、主题等(184k的Star)。

oh-my-zsh GitHub Repository
安装 oh-my-zsh
国内云服务器网络访问 GitHub 可能会比较慢,我基于GitHub官方安装脚本和国内清华源镜像,使用大模型生成的安装脚本
#!/bin/bash## Oh My Zsh 一键安装脚本 - 清华源版本# 解决国内网络访问GitHub困难的问题## 设置清华源镜像OHMYZSH_REPO="https://mirrors.tuna.tsinghua.edu.cn/git/ohmyzsh.git"ZSH_SYNTAX_HIGHLIGHTING_REPO="https://mirrors.tuna.tsinghua.edu.cn/github/zsh-users/zsh-syntax-highlighting.git"ZSH_AUTOSUGGESTIONS_REPO="https://mirrors.tuna.tsinghua.edu.cn/github/zsh-users/zsh-autosuggestions.git"ZSH_COMPLETIONS_REPO="https://mirrors.tuna.tsinghua.edu.cn/github/zsh-users/zsh-completions.git"# 颜色定义RED='\033[0;31m'GREEN='\033[0;32m'YELLOW='\033[1;33m'BLUE='\033[0;34m'NC='\033[0m' # No Color# 日志函数log_info() { echo -e "${BLUE}[INFO]${NC} $1"}log_success() { echo -e "${GREEN}[SUCCESS]${NC} $1"}log_warning() { echo -e "${YELLOW}[WARNING]${NC} $1"}log_error() { echo -e "${RED}[ERROR]${NC} $1"}# 检查命令是否存在command_exists() { command -v "$1" >/dev/null 2>&1}# 检查是否已安装zshcheck_zsh_installed() { if ! command_exists zsh; then log_error "zsh 未安装,请先安装 zsh" echo "安装命令:sudo apt install zsh" exit 1 fi}# 检查当前shellcheck_current_shell() { local current_shell=$(basename "$SHELL") if [ "$current_shell" = "zsh" ]; then log_success "当前shell已经是 zsh" return 0 else log_warning "当前shell是 $current_shell,建议切换为 zsh" return 1 fi}# 安装 Oh My Zshinstall_ohmyzsh() { log_info "开始安装 Oh My Zsh..." # 备份现有的 .zshrc 文件 if [ -f "$HOME/.zshrc" ]; then log_info "备份现有的 .zshrc 文件" cp "$HOME/.zshrc" "$HOME/.zshrc.backup.$(date +%Y%m%d%H%M%S)" fi # 克隆 Oh My Zsh 仓库 if git clone --depth=1 "$OHMYZSH_REPO" "$HOME/.oh-my-zsh"; then log_success "Oh My Zsh 克隆成功" else log_error "Oh My Zsh 克隆失败" exit 1 fi # 复制模板配置文件 if [ -f "$HOME/.oh-my-zsh/templates/zshrc.zsh-template" ]; then cp "$HOME/.oh-my-zsh/templates/zshrc.zsh-template" "$HOME/.zshrc" log_success "配置文件已创建" else log_error "找不到模板配置文件" exit 1 fi}# 显示安装完成信息show_completion_info() { echo log_success "Oh My Zsh 安装完成!"}# 主函数main() { echo "==========================================" echo " Oh My Zsh 一键安装脚本 - 清华源版本" echo "==========================================" echo # 检查前置条件 check_zsh_installed check_current_shell # 安装过程 install_ohmyzsh show_completion_info}# 执行主函数main "$@"将上述脚本保存为 install-oh-my-zsh.sh,然后执行:
chmod u+x install-oh-my-zsh.sh./install-oh-my-zsh.shGitHub 官方安装脚本:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"其他第三方提供的安装方式:
sh -c "$(curl -fsSL https://gitee.com/shmhlsy/oh-my-zsh-install.sh/raw/master/install.sh)"oh-my-zsh 配置
oh-my-zsh 提供了很多插件,可以根据自己的需求安装,这里介绍几个常用的插件。
主题 Theme
默认主题是 robbyrussell,可以变更为 agnoster 主题,需要修改 ~/.zshrc 文件:
ZSH_THEME="agnoster"也需要安装字体:
sudo apt-get install fonts-powerline这两个均是最经典的主题,可以根据自己的偏好选择。
插件 Plugins
使用 Gitee 资源安装插件
# zsh-syntax-highlighting 插件git clone https://gitee.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting# zsh-autosuggestions:自动建议git clone https://gitee.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions# zsh-completions:命令补全git clone https://gitee.com/wangnd/zsh-completions.git ${ZSH_CUSTOM:=~/.oh-my-zsh/custom}/plugins/zsh-completions# autojump 自动跳转插件sudo apt-get install autojump需要编辑 ~/.zshrc 文件以使得插件生效:
# 找到plugins=(...) 并修改plugins=( git zsh-syntax-highlighting zsh-autosuggestions zsh-completions docker)# 初始化自动补全系统autoload -U compinit && compinit# 最后一行添加. /usr/share/autojump/autojump.sh最后,执行 source ~/.zshrc 使配置生效。
容器支持,Docker 刚好
Docker 是现代应用部署的标准方式,学习曲线平缓,功能强大。
安装 Docker
容器技术已经成为现代应用部署的标准方式,Docker 和 Kubernetes 是两个主要的容器编排工具。一句话论述:单机环境下,Docker 足够,并且是最佳的。
推荐使用云服务厂商提供的安装文档,本文使用的是腾讯云,可能无法跨云服务器使用,可自行搜索。
推荐查看腾讯云安装文档,因为本文并不能保证是最新的,安装步骤可能会有变化。
腾讯云安装 Docker https://cloud.tencent.com/document/product/1207/45596
添加 Docker 软件源(建议打开上述链接安装)
sudo apt-get updatesudo apt-get install ca-certificates curl -ysudo install -m 0755 -d /etc/apt/keyringssudo curl -fsSL https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.ascsudo chmod a+r /etc/apt/keyrings/docker.ascecho "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu/ \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt-get update安装 Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin检查 Docker
# 检查 Docker 服务状态systemctl status docker# 检查 Docker 信息docker info给普通用户增加权限
默认情况下,执行 docker 命令需要 sudo 权限,可以通过将用户添加到 docker 组来解决:
# 将当前用户添加到docker组sudo usermod -aG docker $USER# 重新登录或重新加载组权限newgrp docker# 验证权限docker ps配置国内镜像源
Docker 默认的镜像源是DockerHub,由于网络原因,建议配置国内镜像加速器。
# 创建Docker配置目录sudo mkdir -p /etc/docker# 配置镜像加速器(腾讯云、阿里云)sudo tee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors": [ "https://mirror.ccs.tencentyun.com", "https://registry.cn-hangzhou.aliyuncs.com" ]}EOF# 重启Docker服务sudo systemctl daemon-reloadsudo systemctl restart docker使用 docker info | grep "Registry Mirrors" && echo "镜像源配置成功" 查看镜像源是否配置成功。
系统镜像
系统镜像(快照)是将系统当前状态保存为一个文件,后续可以直接使用这个镜像创建新的虚拟机,而不需要重复配置。无论是VMWare、阿里云还是腾讯云,均支持该服务。
上述章节中安装的基础软件,除了 ssh 私钥 id_ed25519 以及 git 基础配置,其余内容均是用户无关的,这也是可以轻松更新的。
因此,可以将系统当前状态保存为一个镜像,后续可以直接使用这个镜像创建新的虚拟机,作为开发环境的起点。

tencentyun build image
腾讯云提供5个自定义镜像免费额度:

tencentyun images
总结
本文是给国内开发运维人员用的云服务器配置指南,以Ubuntu 22.04系统为例。主要介绍了服务器环境下的必备软件,以及如何安装,内容包括:Git、zsh、oh-my-zsh、Docker,以及将系统制作为镜像(快照,或时间机器),便于迁移和分发,不再需要重复配置。
本文内容仅供参考,不构成任何专业建议。使用本文提供的信息时,请自行判断并承担相应风险。



