当前位置: 首页 > article >正文

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

希望文章能给到你启发和灵感~
如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏 支持一下博主吧~

阅读指南

  • 开篇说明
  • 一、基础环境说明
    • 1.1 硬件环境
    • 1.2 软件环境
  • 二、什么是shell、bash、zsh?
    • 2.1 bash
    • 2.2 zsh
  • 三、选择 Bash 还是 Zsh?
  • 四、一些常见问题

开篇说明

本篇主要简单说明一下,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简单的一个例子:

#!/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;

source ~/.bash_profile 或者 source ~/.zrcsh

http://www.kler.cn/a/306724.html

相关文章:

  • 电信网关配置管理系统 upload_channels.php 文件上传致RCE漏洞复现
  • HarmonyOS应用之低代码开发平台
  • delphi 编译多语言工程 error RC2104 : undefined keyword or key name:
  • 利用VMware workstation pro 17安装 Centos7虚拟机以及修改网卡名称
  • 网络安全属性详解
  • 计算机网络:网络层 —— 软件定义网络 SDN
  • 基于Keil软件实现读写备份寄存器(江协科技HAL库)
  • Edge浏览器设置夜间模式/深色模式
  • OpenCV高阶操作
  • 1.使用 VSCode 过程中的英语积累 - File 菜单(每一次重点积累 5 个单词)
  • 【AI大模型-什么是大模型】
  • 03 战略的本质与实践 - 战略管理实践的启示
  • k8s独立组件ingress,七层转发
  • \section*{References}为什么需要加*
  • DAY20240909 VUE:编程式导航,动态路由,命名路由
  • DeepGaitV2:显式时间建模,CNN和Transformer在步态任务上的影响
  • 设计模式 23 访问者模式
  • Wophp靶场寻找漏洞练习
  • 从OracleCloudWorld和财报看Oracle的转变
  • 苏州科技大学、和数联合获得国家知识产权局颁发的3项发明专利证书
  • 计算机毕业设计 在线新闻聚合平台的设计与实现 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
  • C++复习day12
  • Android桌面(Launcher)源码分析
  • 【LeetCode每日一题】2024年9月第二周(下)
  • 【C++】学完c语言后的c++基础知识补充!(命名空间、输入和输出、缺省函数、函数重载、引用、内联函数代替宏、nullptr代替NULL)
  • SpringBoot Kafka发送消息与接收消息实例