发布时间:2026/9/3 16:24:17
Ubuntu零基础入门到精通【6.2讲】:Bash、Zsh、Fish 的区别——你的 Shell 选择指南! 🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。🎯适合人群:Linux 初学者、Ubuntu 新手、计算机专业学生、后端 / 运维 / 测试入门同学、想搭建 Linux 开发环境的开发者、准备学习服务器部署的同学,以及想从 Windows 过渡到 Ubuntu 工作流的用户。从“会打开终端”到“能管理系统”,从“复制命令”到“理解 Linux 思维”,这一次,我们不零散学,而是一路滚雪球!🎉限时福利:当前专栏活动中,一次订阅,终身阅读,后续更新章节全部免费解锁👉 立即查看👈️演示环境说明:开发工具:Visual Studio Code / JetBrains 系列 IDE / Vim / NanoUbuntu版本:Ubuntu 22.04 LTS / Ubuntu 24.04 LTS,推荐 Ubuntu 24.04 LTSLinux内核版本:Linux Kernel 6.x 或更高终端环境:Bash / Zsh包管理工具:APT / Snap / Flatpak远程连接工具:OpenSSH / Windows Terminal / MobaXterm / Termius虚拟化环境:VMware Workstation / VirtualBox / WSL2 / 云服务器容器环境:Docker / Docker Compose操作系统:Ubuntu Desktop / Ubuntu Server全文目录:一、前言:你打开终端,然后呢?二、本文要解决什么问题?三、Shell 是什么?为什么有这么多种?3.1 从命令到执行:Shell 在哪里?3.2 Shell 的名字从哪里来?3.3 在 Ubuntu 中,Shell 在哪里?四、Bash:Ubuntu 的默认 Shell,你必须先了解它4.1 Bash 是什么4.2 Bash 的核心特性4.3 Bash 的提示符解析4.4 Bash 的配置文件体系4.5 Bash 的局限性五、Zsh:功能强大的进化版 Shell5.1 Zsh 的设计哲学5.2 Zsh 的核心特性5.3 Oh My Zsh:Zsh 的配置框架5.4 Zsh 的配置文件5.5 Zsh 的局限性六、Fish:开箱即用的现代 Shell6.1 Fish 的设计哲学6.2 Fish 的核心特性6.3 Fish 的语法:和 Bash 有什么不同6.4 Fish 的配置文件6.5 Fisher 和 fish 插件生态6.6 Fish 的局限性七、三者的核心对比7.1 全面对比表7.2 适用场景推荐7.3 我的个人使用方案八、实验环境准备8.1 确认系统版本8.2 确认当前 Shell8.3 更新系统软件源九、案例一:在 Ubuntu 中认识你当前的 Shell9.1 案例目标9.2 第一步:认识你的 Shell 环境9.3 第二步:探索 Bash 配置文件9.4 第三步:给 Bash 添加自定义配置9.5 命令解析9.6 初学者常见错误十、案例二:安装并体验 Zsh + Oh My Zsh10.1 案例目标10.2 第一步:安装 Zsh10.3 第二步:临时启动 Zsh 体验10.4 第三步:安装 Oh My Zsh10.5 第四步:安装必备插件10.6 第五步:配置主题10.7 第六步:配置实用的 Zsh 选项10.8 命令解析10.9 Oh My Zsh 插件推荐十一、案例三:安装 Fish 并感受它的独特之处11.1 案例目标11.2 第一步:安装 Fish11.3 第二步:临时体验 Fish11.4 第三步:了解 Fish 的配置文件11.5 第四步:Fish 的函数系统11.6 第五步:安装 Fisher 和插件(可选)11.7 案例后的脚本兼容性验证11.8 命令解析十二、Shell 配置文件详解12.1 三种 Shell 的配置文件对比12.2 环境变量应该放在哪里12.3 各 Shell 配置文件加载顺序十三、Shell 切换、默认 Shell 修改与注意事项13.1 临时切换 Shell13.2 永久修改默认 Shell13.3 修改 root 用户的 Shell13.4 修改特定用户的 Shell(系统管理场景)13.5 如果改错了怎么恢复十四、服务器环境中的 Shell 选择建议14.1 为什么服务器上坚持使用 Bash14.2 服务器上的 Bash 增强14.3 Ubuntu Server 上安全地管理多用户 Shell十五、脚本兼容性问题:Bash 写的脚本在 Zsh/Fish 里能跑吗?15.1 关于 Shebang 行15.2 Bash 脚本中的常见坑(对 Zsh 用户)15.3 Fish 脚本的正确写法十六、常见问题与踩坑总结Q1:我应该用 Bash、Zsh 还是 Fish?Q2:切换了默认 Shell 之后,为什么有些命令突然找不到了?Q3:Oh My Zsh 安装后终端变慢了,怎么办?Q4:Fish 的语法和 Bash 差异太大,我该怎么过渡?Q5:我在服务器上用 Zsh/Fish,会影响 cron 任务吗?Q6:Zsh 里的 `~` 扩展和 Bash 里不一样?Q7:我在 `.zshrc` 里加了配置,但 SSH 登录后不生效?Q8:为什么修改了 Fish 的配置后,新开的终端不生效?Q9:`chsh` 改了默认 Shell 后,当前终端没有变化?Q10:怎么判断一个脚本是用什么 Shell 语法写的?Q11:我把 `/bin/sh` 和 `/bin/bash` 搞混了,有什么区别?Q12:我装了很多 Shell,怎么切换回 Bash?Q13:`PS1` 改坏了,提示符显示不正常怎么恢复?Q14:Oh My Zsh 能卸载吗?Q15:我同时用 Zsh 和 Fish,两边的配置要维护两份,太麻烦了?十七、最佳实践建议17.1 Shell 选择与迁移的最佳实践17.2 Bash 配置的最佳实践17.3 Zsh 配置的最佳实践17.4 Fish 使用的最佳实践17.5 脚本开发的最佳实践十八、扩展知识点:Shell 背后的 Linux 世界18.1 Shell 与进程:fork/exec 模型18.2 Shell 内置命令 vs 外部命令18.3 环境变量和 Shell 变量的区别18.4 Shell 的工作机制:解析到执行十九、完整操作流程回顾19.1 从零开始认识和配置 Shell 的完整流程19.2 三种 Shell 安装命令汇总二十、总结与下一步学习建议20.1 本篇文章核心总结20.2 你学到了什么20.3 一个建议:先别急着换 Shell20.4 下一节预告🧧 学习福利 · 限时开放 🧧🫵 Who am I?一、前言:你打开终端,然后呢?我第一次认真接触 Linux 是在大学的一台二手笔记本电脑上,装的是 Ubuntu 16.04。打开终端的时候,我看到一个闪烁的光标,完全不知道该输入什么。那时候我对"终端"的全部理解,就是"一个黑框框,可以输命令"。后来开始慢慢用,才发现这个"黑框框"背后藏着一个叫Shell的东西。然后某一天,同事告诉我他用的是 Zsh,另一个朋友跟我说 Fish 才是最好用的,还有人说服务器只认 Bash。我当时完全搞不清楚这些东西有什么关系,也不知道自己该用哪个。相信很多刚入门 Ubuntu 的读者都有类似的困惑。你打开终端,看到命令提示符,开始敲命令——但你并不知道,这些命令是谁在解析、谁在执行。你甚至不知道,你现在用的这个东西叫什么名字。这篇文章就从这里开始讲。我们不仅要搞清楚 Bash、Zsh、Fish 分别是什么,更要搞清楚它们各自的定位、适用场景、配置方式、以及在 Ubuntu 实际使用中你该怎么选择。这不是一篇简单的"三者对比表格"文章。我希望读完之后,你能真正理解 Shell 在整个 Linux 系统中的位置,以及为什么这个选择对于一个 Ubuntu 用户来说比它看起来的重要得多。二、本文要解决什么问题?在进入正文之前,我先把这篇文章想回答的核心问题列出来,方便你按需阅读:Shell 是什么?它在 Ubuntu 中扮演什么角色?Bash、Zsh、Fish 分别是什么,有什么区别?Ubuntu 为什么默认使用

相关新闻

2026/9/3 16:24:17

C# WinForm集成YOLOv8实例分割:从模型导出到实时检测的完整实践

简介:本资源是一套基于C# WinForm平台实现YOLOv8实例分割模型ONNX部署的完整工程源码,面向具备基础C#开发能力与计算机视觉入门知识的开发者,解决在Windows桌面端快速集成轻量级实例分割能力的实际需求,适用于工业质检、智能标注工…

2026/9/3 16:24:17

小米手机Bootloader解锁原理、风险与高版本系统实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/3 16:24:17

PyTorch实现U-Net图像分割:从原理到实战的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/3 16:39:19

AARRR模型从引流到裂变的用户全生命周期

在互联网流量红利见顶、用户增长从粗放式收割转向精细化运营的当下,AARRR模型始终是用户全生命周期运营的核心底层框架。作为贯穿用户从接触产品到自发裂变的完整链路模型,AARRR精准覆盖用户获取、激活、留存、变现、裂变五大核心环节,不仅清…

2026/9/3 16:39:19

2026年03月GESPC++五级真题解析(含视频)

视频讲解:GESP2026年3月五级C真题讲解 一、单选题 第1题 解析: 答案D, A:需要找到前驱结点,才能删除 B:没有头结点时,存在空指针 C:循环双链表,尾结点的next指向头结…

2026/9/3 16:39:19

后端配定时任务时,Cron 表达式最隐蔽的三个错位

定时任务是后端避不开的东西:日志清理、报表生成、缓存预热、对账批跑。但同样一句“每天工作日 9 点执行”,在 Linux crontab、Spring Scheduled、Quartz 里写出来完全不是同一个字符串。复制粘贴不报错,但任务就是不在你想要的时间跑——这…

2026/9/3 16:39:19

2026海外拓客指南:无锡B2B出海营销服务商推荐

摘要:2026年,无锡及周边的工程机械、储能、医疗设备等制造企业出海,已从"能不能接到询盘"转向体系化获客与转化。本文从行业、场景、痛点、决策四个维度梳理B2B出海营销的落地思路,并介绍深耕该领域近16年的星谷云及其一…

2026/9/1 16:02:17

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/9/3 14:29:47

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/9/3 14:30:35

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/9/3 0:02:06

零基础装 OpenClaw 小龙虾 AI:Windows 一键部署教程与避坑要点

Windows 部署 OpenClaw 完整教程|本地 AI 智能体 5 分钟落地,环境配置一次搞定 版本说明:Windows 3.1.0 / Mac 2.7.9 写在前面 近两年开源 AI 领域有一款被称作「数字员工」的工具持续走热,它就是 OpenClaw,圈内人更习…

2026/9/3 0:02:06

Hermes Agent 本地部署新方案:Windows 整合包减少依赖报错

Windows 本地部署 Hermes 太麻烦?这版一键包 5 分钟快速跑通 很多人想体验 Hermes Agent,但真正开始部署时,往往会卡在环境配置这一步。 需要安装各类依赖、调试运行环境、处理路径问题,还容易遇到命令行报错、系统拦截、文件缺…

2026/9/3 0:02:06

实测 OpenClaw 一键包,5 分钟完成本地自动化环境搭建

OpenClaw 本地 AI 自动化工具部署指南|使用一键包规避环境配置难题 痛点:部署 AI 自动化工具常常要处理 Python、Node.js 各类依赖,版本冲突、环境配置耗费大量时间,OpenClaw 提供一键安装包,降低部署门槛。 适配系统&…

2026/9/2 1:15:22

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/2 1:15:22

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/2 1:15:20

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…