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

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 隐藏文件打开指南。

相关文章:

MacOS如何切换shell类型

切换 shell 类型 如果你想在不同的 shell 之间切换,以探索它们的不同之处,或者因为你知道自己需要其中的一个或另一个,可以使用如下命令: 切换到 bash chsh -s $(which bash)切换到 zsh chsh -s $(which zsh)$()语法的作用是运…...

Qt QSettings 使用详解:跨平台的配置管理

文章目录 Qt QSettings 使用详解:跨平台的配置管理一、QSettings 概述1. QSettings 的基本使用二、不同平台上的实现1. Windows 平台注册表存储INI 文件存储2. Linux 平台3. macOS 平台三、QSettings 高级用法1. 使用组管理设置2. 检查和移除设置3. 枚举键四、总结Qt QSetting…...

确定适合您需求的负载组

大多数关键任务行业都使用 UPS 和发电机等备用电源在停电期间为其设施提供持续电力。负载组允许您在需要时测试电源,以确保在您最需要的时候提供可靠的电力。 选择正确的负载组对于准确的电源测试至关重要。为了帮助您找到最适合您设施需求的负载组,EAK…...

Xubuntu24.04之设置高性能模式两种方式(二百六十一)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+AOSP…...

【自适应滤波系列五】基于LMS算法的回声消除(Acoustic Echo Cancellation, AEC)

自适应滤波算法的思想,在上一篇博客中已经进行了详细的描述,本文主要谈谈自适应滤波算法的其中之一LMS算法在回声消除中的应用。 LMS算法由来和思想 在自适应滤波中,基于信号的统计特性构造代价函数 E [ ∣ e ( n ) ∣ 2 ] E\left[|e(n)|^2 \right] E...

matlab 卷积和多项式乘法

目录 一、算法原理1、原理概述2、主要函数二、代码实现1、通过卷积计算多项式乘法2、向量卷积3、卷积的中心部分三、参考链接一、算法原理 1、原理概述 两个向量 u u u和 v v v的卷积,表示...

数据跨境传输法规日趋完善,企业如何规避合规风险?

随着全球化的发展,跨境数据传输变得日益频繁。在数字化时代,数据安全是企业运营的关键。数据跨境传输由于涉及不同国家和地区,其安全合规性面临着更大的风险和挑战。 2022年,国家网信办发布了《数据出境安全评估办法》&#xff08…...

工业机床CNC设备如何上云?

工业机床CNC设备如何上云? 工业机床的计算机数控(CNC)设备实现远程监控数据上云,是现代制造业智能化转型的关键一环。这一过程不仅能够实时监测设备状态、优化生产流程,还能通过大数据分析提升生产效率与产品质量&…...

Android C++系列:Linux进程间关系

1. 终端 在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进 程的控制终端(Controlling Terminal),在前面文章我们说过,控制终端是保存在PCB中的信 息,而我们知道fork会复制PCB中的信息,因此由Shell进程启动的其它进程的控制终端也是 这个终端。…...

使用bypy丝滑传递百度网盘-服务器文件

前言 还在为百度网盘的数据集难以给服务器做同步而痛苦吗,bypy来拯救你了!bypy是一个强大而灵活的百度网盘命令行客户端工具。它是基于Python开发的开源项目,为用户提供了一种通过命令行界面与百度网盘进行交互的方式。使用bypy,…...

关于Python的类的一些理解

才发现python的类对象只能调用类方法 我想使用对类对象a使用系统调用的len方法就会报错 2.类对象a是什么? 答:是所有的带有self的成员变量 举例说明:红色的就是a里面的东西 class A:def __init__(self,data):self.datadataself.b1self.d{a…...

WEB安全基础:网络安全常用术语

一、攻击类别 漏洞:硬件、软件、协议,代码层次的缺陷。 后⻔:方便后续进行系统留下的隐蔽后⻔程序。 病毒:一种可以自我复制并传播,感染计算机和网络系统的恶意软件(Malware),它能损害数据、系统功能或拦…...

ubuntu防火墙指定端口开放设置

文章目录 打开某个端口查看防火墙状态和开放端口例子 在 Ubuntu 中管理防火墙通常使用 ufw(Uncomplicated Firewall)。以下是打开某个端口并查看防火墙状态的方法: 打开某个端口 启用 ufw(如果尚未启用): …...

Python OpenCV 教学取得视频资讯

这篇教学会介绍使用OpenCV,取得影像的长宽尺寸、以及读取影像中某些像素的颜色数值。 因为程式中的OpenCV 会需要使用镜头或GPU,所以请使用本机环境( 参考:使用Python 虚拟环境) 或使用Anaconda Jupyter 进行实作( 参考:使用Anaco…...

高频面试题基本总结回顾1(含笔试高频算法整理)

干货分享,感谢您的阅读! (暂存篇---后续会删除,完整版和持续更新见高频面试题基本总结回顾(含笔试高频算法整理)) 备注:引用请标注出处,同时存在的问题请在相关博客留言…...

【回溯+双指针算法题记录】回文字符串汇总

目录 验证回文串题目描述题目分析cpp代码 131. 分割回文串题目描述题目分析cpp代码 验证回文串 题目🔗 题目描述 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字…...

【AI资讯早报】AI科技前沿资讯概览:2024年7月10日早报

AI科技前沿资讯概览,涵盖了行业大会、技术创新、应用场景、行业动态等多个方面,全面展现了AI领域的最新发展动态和未来趋势。 一、人工智能大模型引领新业态 在2024年(第二十三届)中国互联网大会上,中国工程院院士邬贺…...

DDR3 SO-DIMM 内存条硬件总结(一)

最近在使用fpga读写DDR3,板子上的DDR3有两种形式与fpga相连,一种是直接用ddr3内存颗粒,另一种是通过内存条的形式与fpga相连。这里我们正好记录下和ddr3相关的知识,先从DDR3 SO-DIMM 内存条开始。 1.先看内存条的版本 从JEDEC下载…...

磁力搜索引擎是什么?为什么有些资源喜欢用磁力链接?

磁力链接是什么东西?在日常生活中,我们接触的比较多的下载链接是直链。 所谓的直链简单来说就是直接指向服务器文件资源的链接,如B站app的下载链接,这种链接有统一的服务器提供保障,通常比较稳定,可以追溯源…...

Vue基础--v-model/v-for/事件属性/侦听器

目录 一 v-model表单元素 1.1 v-model绑定文本域的value 1.1.1 lazy属性:光标离开再发请求 1.1.2 number属性:如果能转成number就会转成numer类型 1.1.3 trim属性:去文本域输入的前后空格 1.2v-model绑定单选checkbox 1.3代码展示 二 …...

XML Group端口详解

在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...