- 文档/教程
【免费下载链接】90DaysOfDevOps
This repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.
在 90DaysOfDevOps 的 Linux 学习收尾阶段,2022/tr/Days/day20.md(原文为土耳其语,对应英文版 2022/Days/day20.md)聚焦"Dev 工作站配置"这一实战主题:从 dotfiles 入手,把 Ubuntu 桌面从默认的 bash 体验升级为以 Zsh + Oh My Zsh 为核心的个性化开发环境。读完本文,你将掌握 dotfiles 的工作原理、Zsh 的安装与切换、Oh My Zsh 主题与插件的配置,以及一套可直接复制的开发工具链清单。
说明:本主题的目标是**开发工作站(桌面环境)**的个性化与效率提升,而非服务器环境的配置方式,两者不应混淆。文中所有命令与配置均在 Ubuntu 20.04 虚拟机(VirtualBox)环境中验证,仓库 2022/Days/Linux/VAGRANTFILE 提供了对应的 Vagrant 定义。
环境准备:Ubuntu 20.04 虚拟机
作者 Michael Cade 使用 Ubuntu 虚拟机配合 VirtualBox 作为"日常驾驶"的开发桌面。仓库中提供了该环境的可复现定义:2022/Days/Linux/VAGRANTFILE 使用chenhan/ubuntu-desktop-20.04镜像,并配置了 8GB 内存、4 核 CPU、128MB 显存:
Vagrant.configure("2") do |config| config.vm.box = "chenhan/ubuntu-desktop-20.04" config.vm.provider :virtualbox do |v| v.memory = 8096 v.cpus = 4 v.customize ["modifyvm", :id, "--vram", "128"] end end配套的 create-user.sh 脚本则展示了如何在虚拟机中快速创建带密码的用户(sudo useradd -m $username与sudo chpasswd),并支持通过del参数删除用户——这套流程很适合在多台开发机上初始化环境。
系统开箱后,桌面上运行的是默认的 bash shell。接下来的一切定制,都围绕一个核心概念展开:dotfiles。
dotfiles:Linux 配置的灵魂
Linux 系统的本质由大量配置文件组成,这些以.开头的隐藏文件被称为dotfiles(点文件)。几乎所有软件都会把自己的配置存放在这类文件中,dotfiles 也因此成为定制系统的入口。
dotfiles 的作用远不止"让桌面变好看":
- 美化:调整提示符、主题、背景,让界面更赏心悦目;
- 生产力:为命令提示符添加别名(alias)、为不同工具添加路径(PATH),增加或移除功能,甚至走极简路线。
文件名中的点号.使其默认隐藏,避免被误操作。以默认的 bash 为例,家目录下会出现.bashrc和.bash_profile两个配置文件。可以通过ls -al查看当前系统的 dotfiles:
ls -al下图即是在虚拟机终端中执行ls -al后的典型输出,可以看到.bash_history、.bashrc等点文件与其他项目目录共存:
很多开发者会把 dotfiles 公开分享、纳入版本管理,从而在任意新机器上快速复现自己的环境。这是"开发工作站配置"最常见的落地方式。本文随后将把 shell 从 bash 切换为 Zsh,届时家目录中会出现新的.zshrc配置文件。
Zsh:切换默认 Shell
在切换之前,先认识一下 Zsh。它与 bash 高度相似,但在交互体验上有明显优势:
- 交互式 Tab 补全(按
Tab智能补全命令与参数); - 自动文件搜索;
- 正则表达式集成;
- 用于定义命令作用域的进阶简写;
- 丰富的主题引擎。
安装与首次配置
Ubuntu 下可直接用apt安装(在 VM 控制台操作即可,无需图形界面):
sudo apt install zsh安装完成后,运行zsh会启动首次配置向导(会生成配置文件)。向导向导中可以选择配置选项;如果选择1,还能看到更多可调项。若用0退出向导,则只会生成基础的.zshrc,之后可用以下命令确认新配置文件已创建:
ls -al | grep .zshrc将 Zsh 设为默认 Shell
要让每次打开终端都默认使用 Zsh,需要修改登录 Shell。执行以下命令(系统会要求输入密码):
chsh -s $(which zsh)$(which zsh)会动态解析 zsh 二进制的绝对路径(如/usr/bin/zsh)并传给chsh -s。修改后重新登录即可生效。若不想注销重登,可在当前会话中立即切换:
exec zsh切换完成后,可用下面这条命令验证当前 Shell 路径:
which $SHELL如果输出为/usr/bin/zsh之类的路径,说明切换成功。
作者的个人经验是:在每个新 Ubuntu 桌面上都会执行此步骤,并主观感受 zsh 略快于 bash。土耳其语译者补充了一个值得注意的观点:sh永远是最轻量、最快的选择且几乎必然存在,但 zsh 的个性化能力更强、日常交互更高效;在编写脚本时需意识到目标系统不一定包含 bash 之外的高级 Shell——这是跨发行版脚本兼容性的一条重要经验。
Oh My Zsh:开箱即用的配置框架
为了让终端"更好看"并增加交互功能,下一步引入Oh My Zsh——一个免费开源的 zsh 配置管理框架。它通过大量插件、主题与社区资源,让 zsh 的定制能力大幅提升(原文档称之为"天文级别"的可管理性)。
Oh My Zsh 提供curl、wget、fetch三种安装方式,Ubuntu 默认自带前两者。使用curl安装:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"该命令会从官方安装脚本地址下载并执行安装,典型输出如下(克隆项目到.oh-my-zsh、备份旧配置、生成新的.zshrc):
Oh My Zsh 内置了 100 多个主题可供选择。作者推荐的是 Dracula 主题(详见后文)。此外,有两个插件被认为是使用 Oh My Zsh 时"必备"的:
git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlightingzsh-autosuggestions:根据历史命令给出灰色建议,按右键一键补全;zsh-syntax-highlighting:命令语法实时高亮,合法/非法命令一目了然。
插件克隆到$ZSH_CUSTOM/plugins/后,还需要用文本编辑器(此前章节介绍过的 nano 或 vim)编辑~/.zshrc,把插件加入启用列表:
plugins=( git zsh-autosuggestions zsh-syntax-highlighting )git插件是 Oh My Zsh 的默认插件,提供大量 git 别名(如gst、ga等),日常开发中非常实用。
Gnome 扩展:桌面体验增强
在桌面层面,作者还使用一组 Gnome 扩展(通过 extensions.gnome.org 安装),推荐清单如下:
- Caffeine:防止屏幕休眠/锁屏,长任务运行时很有用;
- CPU Power Manager:管理 CPU 功耗模式;
- Dash to Dock:把应用收藏栏变为可用的 Dock;
- Desktop Icons:在桌面上显示图标;
- User Themes:允许加载自定义 Shell/GTK 主题(Dracula 主题落地依赖它)。
这些扩展配合前面配置的终端环境,共同构成完整的桌面工作流。
开发工具链清单
作者在自己的开发机上通过apt安装的核心软件清单如下,这些工具覆盖了容器、云、IaC 与 API 调试等 DevOps 日常场景:
- VSCode(代码编辑器)
- azure-cli(Azure 云 CLI)
- containerd.io(容器运行时)
- docker / docker-ce(容器引擎)
- google-cloud-sdk(GCP 云 CLI)
- insomnia(API 调试客户端)
- packer(镜像构建)
- terminator(终端模拟器)
- terraform(基础设施即代码)
- vagrant(虚拟机环境管理)
其中terminator是作者偏爱的终端;而译者习惯使用 Tilix(同样支持多标签/多窗格)。两者都是 zsh + Oh My Zsh 的良好载体,可按个人偏好选择。
Dracula 主题:统一全端观感
作者使用的主题是Dracula(draculatheme.com)。它清晰、干净,并且为大量常见软件提供官方配色方案,因此即使装了多种工具,整体观感也能保持一致。
配置步骤分为两部分:
- Zsh 主题:在 Dracula 官网搜索 zsh,至少能找到两个安装选项(手动或 git 安装)。安装后编辑
.zshrc,将ZSH_THEME设置为 Dracula 主题; - Gnome Terminal 主题:同样从官网获取,用于把终端配色与整体主题统一。
完成主题与插件配置后,重启终端即可看到最终效果。下图展示了配置完成后的终端——多标签页布局、样式化输出(toiletASCII 艺术)以及工具类应用的共存,体现了开发工作站的个性化与生产力结合:
小结:Linux 章节收官
到此,90DaysOfDevOps 的 Linux 部分正式收官。整个过程的要点可总结为一条主线:从默认 bash 出发 → 通过 dotfiles 理解配置机制 → 安装 Zsh 并切换默认 Shell → 用 Oh My Zsh 管理主题与插件 → 用 Gnome 扩展与 Dracula 主题统一桌面观感 → 用 apt 补齐开发工具链。这套流程与仓库中的 VAGRANTFILE、create-user.sh 配合,可在任意 Ubuntu 桌面上快速复现。
正如原文档所强调的:主动研究与大量练习是巩固知识的唯一途径,自己动手获得的经验往往最难忘。下一站将开启 7 天网络专题,为 DevOps 场景建立网络基础认知,见 day21.md。
- 文档/教程
【免费下载链接】90DaysOfDevOps
This repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.
相关推荐
90DaysOfDevOps 第 20 天:用 dotfiles、ZSH 与 Oh My ZSH 打造个性化 Linux 开发工作站
90DaysOfDevOps 第 20 天:用 dotfiles、ZSH 与 Oh My ZSH 打造个性化 Linux 开发工作站 本文是 90DaysOfD
文档/教程90DaysOfDevOps 第 20 天:Linux 开发工作站配置——用 dotfiles、ZSH、Oh My Zsh 与 Dracula 主题打造高效终端
90DaysOfDevOps 第 20 天:Linux 开发工作站配置——用 dotfiles、ZSH、Oh My Zsh 与 Dracula 主题打造高效终端
文档/教程90DaysOfDevOps Day 20:Linux 开发者工作站美化实战——dotfiles、ZSH 与 Oh My ZSH 打造高效终端环境
90DaysOfDevOps Day 20:Linux 开发者工作站美化实战——dotfiles、ZSH 与 Oh My ZSH 打造高效终端环境 本篇是 90
文档/教程
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考