简单说说关于shell中zsh和bash的选择

希望文章能给到你启发和灵感~

如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏 支持一下博主吧~

阅读指南

开篇说明

本篇主要简单说明一下,shell中bash和zsh的区别和选择;我们经常会把这两个搞混,不知道什么时候用哪一个,以及怎么使用;

一、基础环境说明

考虑环境因素,大家适当的对比自己的软硬件环境情况分析~请仔细阅读硬件、软件环境

1.1 硬件环境

MacOS Monterey 版本 12.6.8 Apple M1

1.2 软件环境

二、什么是shell、bash、zsh?

Shell 是一种命令行界面(CLI),允许用户与操作系统进行交互。Bash(Bourne Again SHell)Zsh(Z Shell)是两种流行的 Unix shell,它们各自提供了强大的功能和灵活性,以满足不同用户的需求和偏好。说的简单一些,就是我们在shell中写一些函数,以及各种脚本代码来实现和操作的系统的交互;

2.1 bash

Bash 是大多数 Linux 发行版和 macOS 默认的 shell 之一。它是 Bourne Shell(sh)的一个增强版本,提供了许多改进的功能和扩展。Bash 因其广泛的可用性和兼容性而广受欢迎,是学习 shell 编程时的一个很好的起点。

Bourne Shell就是我们常说的sh,那什么是sh?我们可以把它简单的理解为是所有shell的基础,许多现代的shell都是借鉴sh来编写的,举一个sh简单的一个例子:

bash 复制代码
#!/bin/sh
# This is a simple script that prints "Hello World!"

echo "Hello World!"

在这个示例中,#!/bin/sh 是脚本的 shebang 行,它告诉系统使用哪个解释器来执行此脚本(这里是 /bin/sh,即 Bourne Shell)。接下来的注释行和 echo 命令则是脚本的实际内容。

2.2 zsh

Zsh 是一个功能强大的 shell,旨在提供比 Bash 更高级的用户体验和增强的功能。Zsh 在许多方面都比 Bash 更灵活和强大,但它可能不如 Bash 那样广泛可用或兼容。简单的说就是zsh提供更多的高级用法,可是呢,兼容性不是特别好,没有bash那么广泛适配;

三、选择 Bash 还是 Zsh?

选择 Bash 还是 Zsh 主要取决于个人偏好和需求。如果你正在寻找一个广泛可用、兼容性强且易于学习的 shell,Bash 可能是一个不错的选择。
然而,如果你想要一个功能更丰富、更灵活且易于自定义的 shell,那么 Zsh 可能更适合你。

四、一些常见问题

对于mac用户来说,如何确定自己的电脑默认使用的是哪个shell是哪种呢?

【1】方法一:我们可以通过版本来确定,一般来说,macOS的版本在10.15之前的默认shell都是bash,之后的版本就是zsh

【2】方法二:我们可以直接在终端中输入echo $SHELL来看输出结果确定当前使用shell模式是哪个;

我们在使用一些命令时,如mvn(maven),java等相关命令时,我们会做一些环境变量的配置,有时候明明配置了环境变量,但是依旧提示zsh,或者bash command未找到?

【1】通常来说,第一步肯定是检查我们的环境,系统使用的是哪一个shell来进行配置的(echo $SHELL);

【2】确定之后,打开对应的shell,查看我们的配置信息是否有误,路径错误还是基本的书写错误等,然后通过source来重新生效我们的shell;

bash 复制代码
source ~/.bash_profile 或者 source ~/.zrcsh
相关推荐
q567315233 小时前
在 Bash 中获取 Python 模块变量列
开发语言·python·bash
研究是为了理解5 小时前
Git Bash 常用命令
git·elasticsearch·bash
也无晴也无风雨14 小时前
代码中的设计模式-策略模式
设计模式·bash·策略模式
Shaun8882 天前
Basic bash script tutorial
开发语言·bash
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ2 天前
GIT GUI和 GIT bash区别
开发语言·git·bash
skywind7 天前
我在命令行下学日语
linux·python·bash·命令模式
江上清风山间明月8 天前
shell脚本编写注意细节 ==、=等的区别
bash·shell·注意·相等·细节·==·=
lsnm8 天前
初识Linux(1):基础指令
linux·c++·bash
wdxylb9 天前
Linux下编写第一个bash脚本
开发语言·chrome·bash
Peter4479 天前
-bash: ./my_rename.sh: /bin/bash^M: bad interpreter: No such file or directory
开发语言·bash