news 2026/10/8 18:47:52

90DaysOfDevOps 第 20 天:开发工作站配置——用 dotfiles、Zsh 与 Oh My Zsh 打造高效 Linux 桌面

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
90DaysOfDevOps 第 20 天:开发工作站配置——用 dotfiles、Zsh 与 Oh My Zsh 打造高效 Linux 桌面
  • 文档/教程

【免费下载链接】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.

项目地址:https://gitcode.com/gh_mirrors/90/90DaysOfDevOps
点击查看免费下载

在 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-highlighting
  • zsh-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)。它清晰、干净,并且为大量常见软件提供官方配色方案,因此即使装了多种工具,整体观感也能保持一致。

配置步骤分为两部分:

  1. Zsh 主题:在 Dracula 官网搜索 zsh,至少能找到两个安装选项(手动或 git 安装)。安装后编辑.zshrc,将ZSH_THEME设置为 Dracula 主题;
  2. 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.

项目地址:https://gitcode.com/gh_mirrors/90/90DaysOfDevOps
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/8 18:45:50

一文讲透|2026年最火AI论文平台榜单,毕业论文免费写还合规

2026 年实测 10 款主流 AI 论文工具,千笔AI以全流程覆盖 语义级降重 免费查重领跑综合榜;ThouPen 稳坐留学生毕业全流程工具头把交椅;免费工具中DeepSeek Scholar、豆包学术版表现亮眼,30 分钟即可生成万字高质量初稿&#xff0…

作者头像 李华
网站建设 2026/10/8 18:45:01

基于Jsp+Servlet的医院预约挂号系统实现要点解析

简介:基于JspServlet构建的医院预约挂号系统完整项目包,面向JavaWeb初学者、课程设计与毕业设计开发者,帮助解决从环境搭建、源码部署到前后端功能梳理的全流程问题。前端提供首页展示、用户注册、医生查询与公告信息等基础功能;后…

作者头像 李华
网站建设 2026/10/8 18:43:48

汇写开题报告功能 —— 毕业论文的第一步

毕业论文不是从写正文开始的,是从开题报告开始的。汇写左侧栏专门有 "开题报告" 功能,旁边还标着火焰图标。汇写(https://www.huixielunwen.com/tool/graduationThesis)帮你从第一步就走稳。 开题报告写什么&#xff1…

作者头像 李华
网站建设 2026/10/8 18:42:22

网络性能分析、网络性能指标

网络性能分析、网络性能指标网络规划设计有严谨科学的技术指标,可以实现对设计网络性能的定量分析,因此在进行网络需求分析阶段,需要确定网络性能的技术指标。很多国际组织定义了明确的网络性能技术指标,这些指标为我们设计网络提…

作者头像 李华