如何在 macOS 上在 Zsh 和 Bash 之间切换:综合指南

2023-11-08

在《macOS 上 Zsh 和 Bash 之间的无缝切换:综合指南》中,我们探讨了在 macOS 系统上使用两种流行的 Unix shell(Zsh 和 Bash)的细微差别。随着 macOS Catalina 的推出,Apple 从使用 Bash 作为默认 shell 过渡到 Zsh,为用户提供了改进的功能,例如高级脚本功能、增强的自动完成功能和更可定制的体验。尽管有这些好处,一些用户可能仍然更喜欢熟悉的 Bash,或者寻求根据需要在两个 shell 之间切换的灵活性。

本综合指南深入探讨了 macOS 上 Zsh 和 Bash 之间的切换过程。它涵盖了这两个 shell 的概述、设置它们的步骤、它们之间的转换方法以及自定义 shell 环境的提示。我们还解决了与在 macOS 上使用 Zsh 和 Bash 相关的常见问题。无论您是开发人员、系统管理员还是高级用户,本指南都将为利用 Zsh 和 Bash 的最佳功能提供宝贵的见解,使您能够增强命令行体验并最大限度地提高 macOS 的工作效率。

目录

  1. Zsh 和 Bash 概述
  2. 在 macOS 上设置 Zsh 和 Bash
  3. 在 Zsh 和 Bash 之间切换
  4. 自定义您的 shell 环境
  5. 经常问的问题

1. Zsh 和 Bash 概述

Zsh(Z shell) and Bash(谍影重重外壳)是 Unix shell,充当用户与操作系统交互的命令行界面。几十年来,Bash 一直是大多数基于 Unix 的系统的默认 shell。然而,Zsh 提供了多项改进,例如更好的自动完成、高级脚本功能和更可定制的用户体验。

2. 在 macOS 上设置 Zsh 和 Bash

从 macOS Catalina(版本 10.15)开始,macOS 上的默认 shell 是 Zsh(Z shell)。在 Catalina 之前,默认 shell 是 Bash (Bourne Again SHell)。如果您使用的是 macOS Catalina 或更高版本,则默认 shell 是 Zsh。要验证 macOS 上当前的默认 shell,您可以打开终端应用程序并输入以下命令:

1
echo $SHELL

如果你看到/bin/zsh or /bin/bash,您当前正在使用Zsh or Bash, 分别。

3.Zsh和Bash之间的切换

暂时切换 shell

要临时在 Zsh 和 Bash 之间切换,您只需在终端中输入所需的 shell 名称即可启动新的 shell 会话:

1
zsh

or

1
bash

永久切换 Shell

之间切换Zsh and Bash永久地,您需要更改用户帐户的默认 shell。按着这些次序:

  1. 打开终端。
  2. Enter the following command to list available shells:
    1
    cat /etc/shells
  3. To change the default shell to Bash, enter:
    1
    chsh -s /bin/bash
  4. To change the default shell to Zsh, enter:
    1
    chsh -s /bin/zsh

重新启动终端或打开新窗口以查看更改。

4. 定制您的 shell 环境

Zsh 和 Bash 都支持通过配置文件进行自定义。对于 Zsh,主要配置文件是.zshrc,对于 Bash 来说,它是.bashrc or .bash_配置文件。您可以在主目录中找到这些文件。

要自定义您的 shell 环境,只需使用您喜欢的文本编辑器编辑适当的配置文件即可。一些常见的自定义包括添加别名、设置环境变量或自定义命令提示符外观。

5. 常见问题

问:我可以同时使用 Zsh 和 Bash 吗?

答:是的,您可以有多个终端窗口或选项卡,每个窗口或选项卡运行不同的 shell。为此,请打开新的终端窗口或选项卡,然后键入 zsh 或 bash 以启动所需的 shell 会话。

问:我可以将 Bash 配置转移到 Zsh 吗?

答:虽然有些配置可以直接移植,但其他配置可能由于两个外壳之间的差异而需要调整。最好检查您的配置并根据需要进行调整。

结论

一旦您了解了该过程,在 macOS 上的 Zsh 和 Bash 之间切换就很简单。这两种 shell 都提供独特的功能和自定义选项,允许您根据自己的喜好定制命令行体验。通过本指南,您现在已经掌握了在两个 shell 之间无缝切换并充分利用 macOS 体验的知识。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 macOS 上在 Zsh 和 Bash 之间切换:综合指南 的相关文章

随机推荐

  • python 实现 PDF 页面横向纵向旋转

    了解RPA www i search com cn 学习RPA https support i search com cn 下面示例代码 是将横向纸张旋转为纵向 根据纸张大小判断纸张方向 from PyPDF2 import PdfFile
  • cart算法 java实现_这个开源项目用Pytorch实现了17种强化学习算法

    强化学习在过去的十年里取得了巨大的发展 如今已然是各大领域热捧的技术之一 今天 猿妹和大家推荐一个有关强化学习的开源项目 这个开源项目是通过PyTorch实现了17种深度强化学习算法的教程和代码库 帮助大家在实践中理解深度RL算法 完整的1
  • UE算法收集

    图形类 是否点在多边形内部 bool IsPointInPolygon const FVector2D TestPoint const TArray
  • 簇的概念

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 硬盘数据存储是按簇存取的 簇的单位是扇区 每个扇区512字节 一般来讲 XP默认使用8扇区为一个簇 就是4096字节 所以 你新建一个记事本文档 即便他只有1个字节大小 却
  • Octave下载与安装教程

    文章目录 前言 一 下载 二 安装 前言 Octave是一种编程语言 旨在解决线性和非线性的数值计算问题 Octave为GNU项目下的开源软件 早期版本为命令行交互方式 4 0 0版本发布基于QT编写的GUI交互界面 Octave语法与Ma
  • java的substring和mysql的subStr的区别

    java的substring和mysql的subStr的区别 String java java java subString 1 3 结果是 av 左闭右开区间 java的起始点是0 mysql substr mysql 1 3 结果为 m
  • C语言结构体的声明和定义

    在C语言中 结构体 struct 指的是一种数据结构 是C语言中聚合数据类型 aggregate data type 的一类 结构体可以被声明为变量 指针或数组等 用以实现较复杂的数据结构 结构体同时也是一些元素的集合 这些元素称为结构体的
  • linux安装mysql5.7教程

    目录 一 下载安装包 推荐第二种 二 安装mysql 三 设置密码和开启远程连接 一 下载安装包 推荐第二种 1 官网下载 https downloads mysql com archives community https downloa
  • 一个数据包大小是多少k_Wireshark数据包分析实战:TCP报文段重组

    01 引言 最近有位热心读者朋友给成哥发来私信 说他现在对IP分片有疑惑 他读过成哥的 Wireshark数据包分析三板斧 和 一文秒懂TCPIP实际五层结构 系列文章 直言对自己帮助很大 可以算是成哥的铁粉了 但是他在工作中遇到的IP分片
  • Unity3d之Http通讯GET方法和POST方法

    一 GET方法 IEnumerator SendGet string url WWW getData new WWW url yield return getData if getData error null Debug Log getD
  • 【VS2010学习笔记】【异常处理】一(无法启动此程序,因为计算机中丢失libiconv-2.dll)

    问题1 无法启动此程序 因为计算机中丢失libiconv 2 dll 问题描述 在VS2010 Opencv2 4 7的程序调试的过程中 再点击 运行 后 系统提示 无法启动此程序 因为计算机中丢失libiconv 2 dll 自己在调试的
  • 【华为OD机试真题2023B卷 JAVA&JS】跳房子II

    华为OD2023 B卷 机试题库全覆盖 刷题指南点这里 跳房子II 知识点数组排序 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 跳房子 也叫跳飞机 是一种世界性的儿童游戏 游戏参与者需要分多个回合按顺序跳到第1格直到房子
  • 【LCP 06. 拿硬币】

    来源 力扣 LeetCode 描述 桌上有 n 堆力扣币 每堆的数量保存在数组 coins 中 我们每次可以选择任意一堆 拿走其中的一枚或者两枚 求拿完所有力扣币的最少次数 示例 1 输入 4 2 1 输出 4 解释 第一堆力扣币最少需要拿
  • 网络安全概论——网络安全基础

    一 网络安全引言 信息安全的四个属性 信息安全的基本目标 保密性 信息不会被泄露给非授权用户 完整性 保证数据的一致性 可用性 合法用户不会被拒绝服务 合法使用 不会被非授权用户或以非授权的方式使用 二 网络安全威胁与防护措施 1 安全威胁
  • 如何在 Windows 7/8 上启用 Telnet

    Telnet是一种用于使用终端连接进行双向通信的应用协议 本文将帮助您在 Windows 7 和 8 操作系统上启用 telnet 客户端和服务器 1 Firstly open command prompt and type telnet
  • 如何删除 Git 上的文件

    在开发过程中 一堆文件将被添加到您的存储库中 另一方面 其中的一些将被删除 要么是因为不再需要它们 要么是因为它们超出了需求 在 IT 行业中删除某些内容很容易 它往往会意外发生 而且是在我们最不希望发生的时候 对吗 Git 上的文件删除也
  • 加强 Linux 安全性:为用户实施强密码策略

    在网络威胁不断演变的世界中 保护 Linux 环境对于保护敏感数据和系统资源至关重要 增强安全性的最有效方法之一是对用户实施强密码策略 在本文中 我们将讨论 Linux 中强密码的重要性 使用可插入身份验证模块 PAM 配置最小密码长度和复
  • 如何在 Vim 中删除行

    Vim 是一款流行的文本编辑器 以其强大而高效的编辑功能而闻名 编辑文本时最常见的任务之一是删除行 在 Vim 中 有多种删除行的方法 从删除单行到删除文件中的所有行 在本文中 我们将探讨如何在 Vim 中删除行 包括删除一行 删除一系列行
  • 如何使用 Apt 解决过期密钥 (EXPKEYSIG)

    在使用 apt 软件包管理器更新 apt cache 或软件包安装期间 我收到签名过期消息 EXPKEYSIG 8C718D3B5072E1F5 这意味着 gpg 签名密钥已过期 Error 这是我的 Debian 9 系统上的日志 sud
  • 如何在 macOS 上在 Zsh 和 Bash 之间切换:综合指南

    在 macOS 上 Zsh 和 Bash 之间的无缝切换 综合指南 中 我们探讨了在 macOS 系统上使用两种流行的 Unix shell Zsh 和 Bash 的细微差别 随着 macOS Catalina 的推出 Apple 从使用