简单说说关于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
相关推荐
白总Server3 小时前
Nginx 中间件
大数据·linux·运维·服务器·nginx·bash·web
Pasregret7 小时前
策略模式:动态切换算法的设计智慧
算法·bash·策略模式
SpikeKing3 天前
Server - 优雅的配置服务器 Bash 环境(.bashrc)
服务器·bash·bashrc·bash_profile
涛ing5 天前
【Linux “less“ 命令详解】
linux·运维·c语言·c++·人工智能·vscode·bash
難釋懷5 天前
bash的特性-bash中的引号
开发语言·chrome·bash
vortex55 天前
Bash 中的数学运算详解
linux·运维·开发语言·bash·运维开发
kfepiza5 天前
用sed替换文本 笔记250419
linux·笔记·bash·命令模式
Cuit小唐5 天前
ifconfig -bash: ifconfig: command not found
开发语言·bash
難釋懷7 天前
bash的特性-命令和文件自动补全
开发语言·bash
Ares-Wang7 天前
Linux》》bash 、sh 执行脚本
linux·运维·bash