MacOS如何切换shell类型

切换 shell 类型

如果你想在不同的 shell 之间切换,以探索它们的不同之处,或者因为你知道自己需要其中的一个或另一个,可以使用如下命令:
切换到 bash

chsh -s $(which bash)

切换到 zsh

chsh -s $(which zsh)

$()语法的作用是运行

这会提示你输入 macOS 密码。要使更改生效,你需要打开一个新的终端选项卡,或退出并重启终端应用程序。

重要提示:
切换 shell 时,如果你希望使用相同的配置,请确保将 ~/.bash_profile 的内容复制到 ~/.zshrc 中,反之亦然。此外,还要注意任何与两个 shell 不兼容的代码。

如果你不确定如何打开和编辑点文件或隐藏文件(文件名以句点开头的文件,如 .zshrc),请阅读我的 Mac 隐藏文件打开指南。

可能出现的错误

如果你收到一条关于非标准 shell 的信息,这意味着你的 shell 未列在 /etc/shells 中。使用 Homebrew 安装 shell 后可能会出现这种情况,因为你可以获得比 macOS 自带版本更新的 shell。

要让 macOS 知道 shell 的 Homebrew 版本,需要将其添加到 /etc/shells 中。以下是如何安全添加 Homebrew 的 zsh:

找到 Homebrew zsh 的路径:

which zsh

用 Sublime Text 或其他代码编辑器打开 /etc/shells,但不要用 TextEdit:

open /etc/shells -a "Sublime Text"

将 zsh 的输出复制并粘贴到 /etc/shells 底部,然后保存文件。这会提示你输入 macOS 密码。再次运行 chsh -s 命令,这次应该不会再有抱怨了。记得打开新标签页查看新的 shell。

另一种方法

另一种更改 shell 的方法是通过终端应用程序首选项,在 "Shells open with:(用以下内容打开 shell)"部分选择 "Command (complete path)(命令(完整路径))"单选按钮,如下图所示:
在这里插入图片描述
请注意,这不会更改您的默认登录 shell,您可以通过运行 echo $SHELL 来检查。您可以按照以下步骤进行测试:
将登录 shell 设置为 zsh:

chsh -s $(which zsh)

在 ~/.zshrc 的顶部添加这一行:

echo "hello from zsh"

在 ~/.bash_profile 的顶部添加这一行:

echo "hello from bash"

如果文件不存在,可以用 touch 创建:

touch ~/.bash_profile

更新终端首选项,使用 /bin/bash 命令打开 shell,如上图所示。

退出并重启终端。

你应该会看到 “hello from bash”,但如果运行 echo $SHELL,则会看到 /bin/zsh。

我不确定这是否会影响本地开发,所以我会坚持使用默认设置,并使用 chsh -s 来切换 shell。

如果你不确定如何打开和编辑点文件或隐藏文件(文件名以句点开头的文件,如 .zshrc),请阅读我的 Mac 隐藏文件打开指南。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/44691.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FastGPT:给 GPT 插上知识库的翅膀!0基础搭建本地私有知识库,有手就行

写在前面 上一篇,我们部署了接口管理和分发神器-OneAPI,将所有大模型一键封装成OpenAI协议。见:[OneAPI)。 基于此,本篇继续带领大家搭建一个基于本地知识库检索的问答系统。 有同学说 Coze 不也可以实现同样功能么&#xff1f…

51单片机:电脑通过串口控制LED亮灭(附溢出率和波特率详解)

一、功能实现 1.电脑通过串口发送数据:0F 2.点亮4个LED 二、注意事项 1.发送和接受数据的文本模式 2.串口要对应 3.注意串口的波特率要和程序中的波特率保持一致 4.有无校验位和停止位 三、如何使用串口波特率计算器 1.以本程序为例 2.生成代码如下 void Uar…

[论文笔记]涨点近5%! 以内容中心的检索增强生成可扩展的级联框架:Pistis-RAG

引言 今天带来一篇较新RAG的论文笔记:Pistis-RAG: A Scalable Cascading Framework Towards Content-Centric Retrieval-Augmented Generation。 在希腊神话中,Pistis象征着诚信、信任和可靠性。受到这些原则的启发,Pistis-RAG是一个可扩展…

windows远程桌面到 Linux系统(Ubuntu:22.04)—— 安装xrdp软件

1、在Linux系统上安装xrdp软件 sudo apt update sudo apt install xrdp2、安装完成后,需要开启xrdp服务 sudo systemctl start xrdp sudo systemctl enable xrdp打印返回 Synchronizing state of xrdp.service with SysV service script with /lib/systemd/system…

一键叫车|开发打车小程序,随时随地便利出行!

随着移动互联网的普及,人们出行的方式也在不断发生变化。对于出行多样化和便捷化的需求,一款打车小程序可以方便人们的出行,提高出行效率和便捷性。打车小程序能够根据用户的出行需求为其打造个性化的出行方案,从而让用户的出行生…

【DevOps】在云原生时代的角色与重要性探索

🐇明明跟你说过:个人主页 🏅个人专栏:《未来已来:云原生之旅》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、什么是云原生 2、云原生的核心特性 3、什么是DevOps…

【高中数学/指数、对数】已知9^m=10,a=10^m-11,b=8^m-9,则ab两数和0的大小关系是?(2022年全国统考高考真题)

【问题】 已知9^m10,a10^m-11,b8^m-9,则() A.a>0>b B.a>b>0 C.b>a>0 D.b>0>a 【解答】 首先注意到10^log10_11-110,8^log8_9-90, 问题就转化为log8_9,log9_10,log10_11谁大谁小的问题, 再进一步…

如何将Docker镜像源更改为阿里云的镜像加速地址

在使用Docker时,尤其是在国内环境下,由于网络原因,从Docker Hub拉取镜像可能会遇到速度较慢的问题。为了提高拉取速度,我们可以将Docker的镜像源更改为阿里云等国内镜像源。下面详细介绍如何获取并配置阿里云的Docker镜像加速地址…

MES系统在装备制造行业核心应用场景介绍

MES软件在企业中有着广泛的应用场景,主要包括生产计划排程、生产过程监控、质量管理、设备管理、库存管理、数据分析等领域。 通过实时监控生产过程、收集数据、进行分析,MES软件可以帮助企业实现生产过程可视化、透明化,提高生产效率&#…

一二三应用开发平台应用开发示例(7)——文档功能实现示例

概述 在完成文件夹配置工作后,接下来配置文档管理系统最核心的管理对象“文档”。 依旧是使用平台低代码配置工作来配置,配置流程跟文件夹的配置是相同的,以下简要说明,重点是新涉及到的功能或注意点。 创建实体 配置模型属性 …

Databricks 收购 Tabular 的意义:数据开放框架的胜利

Databricks 宣布收购 Tabular,这是一个由 Apache Iceberg 的原始创建者开发的数据平台,在数据分析行业引发了涟漪。此次收购凸显了开放框架在数据领域日益增长的重要性,预示着数据管理、分析和 AI/ML 计划领域的创新、协作和可访问性的新时代…

数据库的学习(6)

题目: 数据准备创建两张表:部门(dept)和员工(emp),并插入数据,代码如下create table dept(dept_id int primary key auto_increment comment 部门编号,dept_name char(20)comment部门名称 ); insert into dept (dept_name) values(销售部),(财…

音视频入门基础:H.264专题(11)——计算视频分辨率的公式

一、引言 通过FFmpeg命令可以获取到H.264裸流文件的视频分辨率: 在vlc中也可以获取到视频分辨率(vlc底层也使用了FFmpeg进行解码): 所以FFmpeg和vlc是怎样获取到H.264编码的视频的分辨率呢?它们其实是通过SPS中的属性…

深入理解Java并发、线程与等待通知机制

目录 一、基础概念 进程和线程 进程 线程 Java 线程的无处不在 进程间的通信 进程间通信有几种方式? CPU 核心数和线程数的关系 上下文切换(Context switch) 并行和并发 二、认识 Java 里的线程 Java 程序天生就是多线程的 线程…

一套基于 Ant Design 和 Blazor 的开源企业级组件库

前言 今天大姚给大家分享一套基于Ant Design和Blazor的开源(MIT License)、免费的企业级组件库(喜欢Ant Design风格的同学推荐使用):Ant Design Blazor。 项目特性 提炼自企业级中后台产品的交互语言和视觉风格。 开…

Java核心技术【二十二】Java的I/O流处理:深入文件读写操作、缓冲流、序列化与NIO

Java的I/O流处理:深入文件读写操作、缓冲流、序列化 在Java编程中,I/O流是处理输入输出操作的基础,特别是在文件读写、网络通信等领域。本文将在前文的基础上,进一步探讨缓冲流、序列化以及NIO(New I/O)在…

大数据开发者如何快速熟悉新公司业务

作为一名大数据开发工程师,进入一家新公司后快速熟悉业务是至关重要的。 目录 1. 了解产品形态故事1:电商平台的数据分析故事2:金融科技的风控系统故事3:社交媒体的推荐算法 2. 了解业务流程故事1:物流配送系统的优化故事2:医疗保险的理赔流程故事3:银行的贷款审批流程 3. 走…

通过 tomcat 让手机访问到电脑写的 html 网页

之前实现的 html 小项目只能在自己的电脑上展示,如果要在其他电脑或者在手机上就看不到网页了 想要在手机上访问自己写的网页,我们可以借助 tomcat 首先我们可以从官网下载 tomcat 官网链接:apache官网 我们拉到最底部,找到 a…

科普文:Java对象在堆中的内存结构

概叙 今天来讲些抽象的东西 -- 对象头,因为我在学习的过程中发现很多地方都关联到了对象头的知识点,例如JDK中的 synchronized锁优化 和 JVM 中对象年龄升级等等。 对象内存构成# Java 中通过 new 关键字创建一个类的实例对象,对象存于内存的…

7.10日学习打卡----初学Redis(五)

7.10日学习打卡 目录: 7.10日学习打卡一. redis功能流水线pipeline什么是流水线?pipeline实现使用pipeline 发布与订阅Redis的发布与订阅发布订阅命令行实现 慢查询Redis命令执行的整个过程如何进行配置实践建议 二 . redis的持久化机制RDB持久化机制触发…