【MAC技巧】Bash/Zsh切換失敗的故障排除

【MAC技巧】Bash/Zsh切換失敗的故障排除

Troubleshooting to Failure " chsh: no changes made"

By Jackson@ML

在Mac電腦中,終端(Terminal)是常用的命令行工具,對開發和運維至關重要。

依照蘋果電腦的系統軟件迭代,終端中存有Bash, Zsh兩種Shell,且能夠互相切換,執行以下命令即可。

$ chsh -s /bin/zsh

或者

 % chsh -s /bin/bash

但是,最近筆者發現,執行這條命令,居然無法進行切換,系統提示 ”chsh: no changes made”(chsh: 未完成改變) 。無論執行多少次,或者重啟Mac電腦,結果都是一樣。

在這里插入圖片描述

這是怎么回事?如何修復這一故障呢?

讓我們來一步一步的檢測和糾正吧。

1. 查詢Shell列表

首先,查看系統Shell列表。
執行以下命令:

$ cat /etc/shells

在這里插入圖片描述
發現需要切換的Shell,即bash, zsh均在列表中。

2. 修改默認配置

于是打開Terminal的Settings菜單,如下圖所示。

在這里插入圖片描述

彈出Settings(設置)對話框,選擇Default login shell選項按鈕(之前選擇的是/bin/bash)。

在這里插入圖片描述
退出時,該設置自動保存。

3. 查看用戶

接下來,執行命令查看用戶列表。

$ who

如下圖所示。
在這里插入圖片描述
看到當前用戶為Coder。

4. 中斷用戶進程

Pkill命令是管理員用來中斷進程的命令,原先用在Solaris等UNIX系統;由于macOS是克隆UNIX開發的系統,因此該命令可用。

于是,執行以下命令:

$ pkill -KILL <username>

在這里插入圖片描述

這時候,關閉Bash Shell的命令行窗口,并在狀態欄中徹底關閉該應用程序。

注:當存在多個會話時,切換Shell得命令可能不會立即生效。

5. 重啟Shell進程

重新打開Terminal就可以重新啟動Shell進程,如下圖所示。

在這里插入圖片描述

我們看到,打開的Terminal終端變為修改的默認Shell即zsh。

6. 重新切換Bash/Zsh

此時,再次執行切換命令:

% chsh -s /bin/bash

在這里插入圖片描述
執行成功!

再次打開Terminal,顯示為初始化Shell為Bash。

在這里插入圖片描述
現在,如果執行同樣的命令,效果也會一樣。這就解決了切換后無法激活修改Shell的故障。

*注:有些命令可能適用于Linux,但不一定適用于macOS,感興趣的讀者,請自行試驗驗證。


關于macOS,Shell等后續仍然會有一系列技術博文。

敬請關注、收藏和點贊👍!
您的認可,我的動力!😃

推薦閱讀:

  1. 【Mac技巧】修復Mac應用程序無法打開的解決辦法
  2. 【Mac技巧】添加DNS解析到Hosts文件
  3. 【Mac技巧】如何安裝新字體?
  4. 一分鐘了解Transformer
  5. 一分鐘了解思路鏈提示詞(Chain-of-thought prompting)
  6. 一分鐘了解Kubernetes
  7. 一分鐘了解MCP
  8. 一分鐘了解機器學習
  9. 一分鐘了解大語言模型(LLMs)
  10. 一分鐘了解深度學習
  11. 一分鐘了解manus - 全球首款通用AI Agent

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/91455.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/91455.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/91455.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

卷積神經網絡-卷積的分類

卷積的定義卷積是圖像處理中最核心的操作之一&#xff0c;其本質是通過卷積核&#xff08;濾波器&#xff09;與圖像進行滑動窗口計算&#xff08;像素值乘積之和&#xff09;&#xff0c;實現對圖像特征的提取、增強或抑制。一、二維卷積--針對二維矩陣進行處理1.1單通道見得最…

全網首發:使用GIT下載時崩潰退出,是因為機械硬盤

前面有幾篇文章&#xff0c;說是GIT下載會退出。開始以為是虛擬機問題。把家里的虛擬機復制到公司&#xff0c;照樣崩潰。后來認為是內存不足。昨天在家里下載代碼&#xff0c;也崩潰退出。心里覺得奇怪&#xff0c;試了一次&#xff0c;還是退出。差別在哪里&#xff1f;之前是…

YAML 自動化用例中 GET vs POST 請求的參數寫法差異

GET 請求&#xff1a;用 params 傳參&#xff08;附加在 URL 上&#xff09; config:name: "GET 查詢用戶信息"base_url: "https://api.example.com"teststeps:- name: "根據 userId 查詢用戶信息"request:method: GETurl: /api/user/detailpara…

使用 SeaTunnel 建立從 MySQL 到 Databend 的數據同步管道

SeaTunnel 是一個非常易用、超高性能的分布式數據集成平臺&#xff0c;支持實時海量數據同步。 每天可穩定高效地同步數百億數據&#xff0c;已被近百家企業應用于生產&#xff0c;在國內較為普及。 Databend 是一款開源、彈性、低成本&#xff0c;基于對象存儲也可以做實時分…

linux服務器換ip后客戶端無法從服務器下載數據到本地問題處理

服務器換ip后客戶端無法從服務器下載數據到本地&#xff0c;根據上圖提示&#xff0c;讓用戶清理下~/.ssh/known_hosts文件&#xff0c;下載恢復正常。

從0到1實現Shell!Linux進程程序替換詳解

目錄從0到1實現Shell&#xff01;Linux進程程序替換詳解 &#x1f680;引言&#xff1a;為什么進程需要"變身術"&#xff1f;一、程序替換&#xff1a;進程的"換衣服"魔法 &#x1f504;1.1 什么是程序替換&#xff1f;1.2 程序替換的原理&#xff1a;內存…

暑期算法訓練.2

目錄 6.力扣 11.盛水最多的容器 6.1 題目解析&#xff1a; 6.2 算法思路&#xff1a; 6.2.1 暴力解法&#xff1a; 6.2.2 優化算法&#xff1a; 6.3 代碼演示&#xff1a; ?編輯 6.4 總結反思&#xff1a; 7.力扣 611.有效的三角形個數 7.1 題目解析&#xff1a; 7.2…

華為OD 消消樂游戲

1. 題意 游戲規則&#xff1a;輸入一個只包含英文字母的字符串&#xff0c;字符串中的兩個字母如果相鄰且相同&#xff0c;就可以消除。 在字符串上反復執行消除的動作&#xff0c;直到無法繼續消除為止&#xff0c;此時游戲結束。 輸出最終得到的字符串長度。 輸入 輸入原始…

小白學HTML,操作HTML文件篇(2)

目錄 一、添加多媒體 1.添加網頁圖片 2.添加網頁音頻 3.添加網頁視頻 二、創建容器 1. 標簽 2.布局 三、創建表格 1.表格標簽 2.添加表格表頭 3.添加表格標題 一、添加多媒體 在 HTML 網頁中可以輕松地使用標簽來添加圖片、音頻、視頻等多媒體&#xff0c;而這些多媒體并…

微服務架構中實現跨服務的字段級權限統一控制

結合集中式權限管理、分布式上下文傳遞、動態策略執行等技術 ??一、核心架構設計?? ??1. 分層控制模型?? ??網關層??:統一校驗用戶身份與基礎權限,攔截非法請求。 ??服務層??:基于用戶權限動態過濾數據字段,實現業務級控制。 ??策略中心??:集中管理權…

【實現100個unity特效之27】使用unity的ShaderGraph實現一個帶裁剪邊緣光的裁剪效果(2d3d通用)

文章目錄普通裁剪效果1、創建一個Lit Shader Graph2、ShaderGraph前置配置3、添加節點4、效果5、修改裁剪方向帶邊緣色的裁剪1、在裁剪的基礎上添加裁剪邊緣光2、邊緣的亮度3、修改裁剪方向4、效果5、我們可以代碼控制它的變化&#xff0c;如下2D3D游戲通用專欄推薦完結普通裁剪…

Android Scoped Storage適配完全指南

Android Scoped Storage適配完全指南關鍵詞&#xff1a;Android、Scoped Storage、適配、存儲權限、文件訪問摘要&#xff1a;本文將全面介紹Android Scoped Storage的相關知識&#xff0c;從背景出發&#xff0c;詳細解釋核心概念&#xff0c;闡述其原理和架構&#xff0c;給出…

Typecho集成PHPMailer實現郵件訂閱功能完整指南

文章目錄 Typecho使用PHPMailer實現文章推送訂閱功能詳解 1. 背景與需求分析 1.1 為什么選擇PHPMailer 1.2 功能需求 2. 環境準備與配置 2.1 安裝PHPMailer 2.2 數據庫設計 3. 核心功能實現 3.1 郵件服務封裝類 3.2 訂閱功能實現 3.2.1 訂閱表單處理 3.2.2 確認訂閱處理 3.3 文…

無線-二層組網-直接轉發

文章目錄無線二層組網直接轉發&#x1f3e1;作者主頁&#xff1a;點擊&#xff01; &#x1f916;Datacom專欄&#xff1a;點擊&#xff01; ??創作時間&#xff1a;2025年07月16日08點00分 無線二層組網 直接轉發 本地轉發中所有的沿途都需要配置對應VLAN的通過&#xff…

gin go-kratos go-zero框架對比

Gin、Go-Kratos 和 Go-Zero 是 Go 語言中三種常見的服務框架&#xff0c;它們在定位、設計理念、復雜度和適用場景上差異較大。下面我們從功能定位、設計理念、優劣對比、使用建議等維度進行深入對比。&#x1f9ed; 一句話總結框架定位Gin輕量級、高性能的 HTTP 路由框架Go-Kr…

4G模塊 A7670發送英文短信到手機

命令說明ATi顯示產品的標志信息 ATCIMI查詢IMSI ATCICCID從SIM卡讀取ICCID ATCGSN查詢產品序列號 ATCPIN查詢卡狀態 ATCSQ查詢信號強度 ATCGATT查詢當前PS域狀態 ATCREG查詢GPRS注冊狀態 ATCEREG查詢4G注冊狀態 ATCGPADDR查詢PDP地址 ATCMGF選擇短信格式 ATCMGS發送短信流程第一…

歸并排序遞歸法和非遞歸法的簡單簡單介紹

基本思想&#xff1a; 歸并排序&#xff08;MERGE-SORT&#xff09;是建立在歸并操作上的一種有效的排序算法,該算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一個非常典型的應用。將已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先使每個…

webrtc之子帶分割下——SplittingFilter源碼分析

文章目錄前言一、頻帶分割過程1.SplittingFilter的創建2.頻帶分割整體流程1&#xff09;分割時機2&#xff09;分割規則3&#xff09;分割核心代碼3.頻帶合并二、算法實現1.實現原理介紹2.All pass QMF系統源碼1&#xff09;提高精度2&#xff09;經過串聯全通濾波器3&#xff…

Java運維之Tomcat升級

Tomcat升級準備工作 下述所有過程中,包含了兩種升級方式,一種是備份舊版本的 bin 和 lib,將新版本的 bin 和 lib 對舊版本進行覆蓋;另一種是直接備份舊版本的Tomcat包,運行新版本,將舊版本的配置文件(conf/ * )和應用(webapps/ * )等同步到新版本。 1. 到官網下載指…

MySQL的可重復讀隔離級別實現原理分析

MySQL 的 可重復讀&#xff08;Repeatable Read, RR&#xff09; 隔離級別主要通過 多版本并發控制&#xff08;Multi-Version Concurrency Control, MVCC&#xff09; 和 鎖機制&#xff08;特別是間隙鎖&#xff09; 來實現的。其核心目標是&#xff1a;在一個事務內&#xf…