Ubuntu零基础入门到精通【6.2讲】:Bash、Zsh、Fish 的区别——你的 Shell 选择指南!

发布时间:2026/10/28 4:53:28

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/10/28 4:52:39

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

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

2026/10/24 19:44:50

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

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

2026/10/25 11:58:34

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/10/28 4:52:57

HarmonyOS6 ArkTS ListItem卡片样式设计与优化

1. HarmonyOS6 ArkTS ListItem卡片样式设计概述在HarmonyOS 6应用开发中,ListItem作为列表项的基础组件,其样式定制能力直接影响应用界面的美观度和用户体验。ArkTS作为新一代应用开发语言,通过ListItemStyle提供了丰富的卡片样式配置选项。本…

2026/10/28 4:52:57

基于改进ResNet50的森林火灾智能识别系统设计与优化

1. 项目背景与核心价值森林火灾识别一直是生态环境保护领域的重大课题。传统基于人工巡查和卫星遥感的方法存在响应延迟高、误报率高等问题。我在参与某国家级自然保护区智能化改造项目时,亲眼目睹过因火情识别延误导致的生态灾难——那场大火烧毁了超过200公顷原始…

2026/10/28 4:52:57

AQG 324功率模块认证:功率循环、温度循环与批次一致性

简介:ECPE AQG 324(Release 03.1/2021)是面向车用电力电子变换器功率模块认证的行业指南,适用于汽车电子、功率半导体器件与可靠性测试相关工程师、研究人员及高校师生,帮助梳理车载功率模块的认证要求、测试项目、判定…

2026/10/28 4:52:57

Apollo Save Tool实战:PS1/PS2虚拟记忆卡导入导出与跨平台转换全攻略

老玩家手里那台吃灰的PS2,或者电脑上跑着的模拟器,最让人头疼的往往不是找游戏,而是存档怎么倒腾。实体记忆卡容量小、容易丢、还会因为电池没电直接报废;模拟器存档格式五花八门,换个前端就认不出来。我折腾这类东西十…

2026/10/28 4:52:57

Meta AI数字人技术解析与应用前景

1. Meta的AI数字人战略布局解析当扎克伯格在2023年Connect大会上首次展示那个以自己为原型的AI数字人时,整个科技圈都意识到:Meta正在下一盘大棋。这个被内部称为"Code Zuck"的项目,远不止是CEO的数字分身那么简单,它代…

2026/10/28 4:47:57

技能不是知道而是稳定做到:一套完整的技能养成与盘点体系

总听人把“skills”挂在嘴边,简历上写“沟通能力强、熟悉Office三件套、会Python基础”,可真遇到实际任务的时候,往往发现那些写在纸上的技能根本撑不住场面。我在过去几年里带过团队、也做过自由职业,见过太多人陷在“学了一堆东…

2026/10/27 14:24:03

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/27 9:34:54

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/28 3:32:29

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/28 0:02:13

Python股票自动交易系统源码解析:从行情获取到风控的完整链路

简介:这份资源是面向高校计算机、金融相关专业毕业设计场景的完整项目源码包,主题为基于Python的股票自动交易系统,适合需要完成毕设选题、课程设计或自学金融量化交易开发的学生与开发者参考。压缩包共收录687个文件,整体约14.93…

2026/10/28 0:02:13

视酷酷信IM源码部署指南:Java 17+MySQL 8.0.33实战配置

简介:这是一套2024年亲测可部署的视酷酷信IM即时通讯系统源码,面向具备Java、OC、C#及Vue开发能力的技术人员,解决私有化即时通讯平台快速搭建与二次定制需求,尤其适用于需集成商城、保障数据主权的中小型企业或独立开发者。资源共…

2026/10/28 0:02:13

Python爬取百度迁徙数据:接口解析、批量采集与避坑指南

简介:这份资源是一个用Python爬取百度迁徙数据的脚本压缩包,面向具备Python基础、希望入门网络爬虫与数据解析的开发者,解决按日期获取全国热门城市人口迁徙数据的问题。包内共1个文件,为单个py脚本,压缩包约1KB&#…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑