关于Mac中的shell

1 MacOS中的shell

介绍:

在 macOS 系统中,Shell 是命令行与系统交互的工具,用于执行命令、运行脚本和管理系统。macOS 提供了多种 Shell,主要包括 bash 和 zsh。在 macOS Catalina(10.15)之前,bash 是默认的 Shell,这是一种经典的 Shell,广泛应用于 Unix 和 Linux 系统中,语法简单且稳定,适合运行脚本和执行命令。然而,由于 bash 的许可证问题(GPLv3),自 Catalina 开始,Apple 将默认 Shell 切换为 zsh。相比 bash,zsh 提供了更丰富的功能,如强大的自动补全、灵活的插件系统和个性化主题(如 oh-my-zsh),适合现代开发者和系统管理员使用。macOS 通过 终端(Terminal) 或更现代化的 iTerm2 工具为用户提供 Shell 访问入口,同时支持用户在多种 Shell 之间自由切换,满足不同需求。

zsh 的优势

1自动补全:

zsh 的补全功能比 bash 更强大,可以根据上下文智能补全命令和文件。
配合插件管理框架(如 oh-my-zsh),支持 Git 补全、语法高亮等功能。

2主题与美化

zsh 支持丰富的主题(如 Powerlevel10k),可以显示更多的信息(如当前目录、分支状态、时间等)。

3插件支持

zsh 提供了灵活的插件系统,像 oh-my-zsh 或 zinit 让用户可以轻松扩展功能。

4强大语法扩展:

更强的路径通配符(**)、更灵活的数组操作等。

如下图为bash环境:

在这里插入图片描述
切换到 zsh:

chsh -s /bin/zsh

node.js在bash中可以显示,在zsh中呢?

zsh 中并不是没有 Node.js 和 npm,而是目前终端运行环境已经切换到 bash,而 zsh 环境下可能未正确配置 Node.js 和 npm 的路径(PATH)。因此,如果直接切换到 zsh,可能会出现找不到 Node.js 和 npm 的情况。

原因

当执行 bash 命令后,终端从默认的 zsh 切换到了 bash,并成功执行了 node -v 和 npm -v,表明 Node.js 和 npm 已经在系统中安装。

解决方法

1、检查 zsh 环境下的 PATH 配置
在 zsh 环境下运行以下命令,检查是否包含 Node.js 和 npm 的路径:

echo $PATH

正常情况下,Node.js 应该安装在路径 /usr/local/bin 或 ~/.nvm/versions/node/… 中。如果缺少这些路径,则需要手动添加。
2、添加 Node.js 和 npm 到 zsh 的 PATH
打开 ~/.zshrc 文件,添加 Node.js 的路径。可以使用以下命令编辑:

nano ~/.zshrc

在文件末尾添加类似以下内容(根据你的安装路径调整):

export PATH="/usr/local/bin:$PATH"

如果使用的是 nvm(Node.js 版本管理工具),则可以添加:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion

保存后,运行以下命令使配置生效:

source ~/.zshrc

3、测试 Node.js 和 npm
切换到 zsh 环境后,运行以下命令确认配置是否成功:

node -v
npm -v

为啥bash仍然存在?

1兼容性

bash 是经典的 Shell,许多历史遗留的脚本和工具依赖它,尤其是在老版本的 macOS 或从 Linux 系统移植的程序中。

2用户习惯

对于熟悉 Linux 系统的用户来说,bash 是他们习惯的环境。macOS 保留 bash 是为了满足这些用户的需求。

3系统支持

macOS 内置了一些与 bash 脚本兼容的系统功能和管理工具,因此 bash 不会被完全移除。

2 Windows中的shell

介绍

Windows 系统的 Shell 主要有两种:CMD(命令提示符) 和 PowerShell。CMD 是一种经典的 Shell,最早继承自 MS-DOS,主要用于运行简单命令和批处理脚本(.bat 文件)。它操作直观,但功能较为有限,主要面向普通用户和早期的 Windows 系统。与之相比,PowerShell 是微软推出的新一代 Shell,基于 .NET 框架开发,功能更加强大,支持丰富的命令集(cmdlet)、对象操作以及高级脚本编写(.ps1 文件)。PowerShell 不仅适用于 Windows 系统,还在其核心版本(PowerShell Core)中实现了跨平台支持,能够在 Linux 和 macOS 上运行。近年来,微软推出了 Windows Terminal,整合了 CMD、PowerShell 和 Windows Subsystem for Linux(WSL),为用户提供了一个统一的命令行工具,带来更好的多环境支持和用户体验。

powershell的优势

1丰富的命令集:

PowerShell 提供了大量内置命令,称为 cmdlet,功能远超 CMD,可以用于系统管理、文件操作和网络任务等。
例如,Get-Process 可以直接查询和管理系统进程,而 CMD 需要通过较复杂的工具实现类似功能。

2面向对象的操作:

PowerShell 不仅传递文本,还可以直接操作对象。例如,查询进程时,可以直接访问进程对象的属性(如名称、ID)并对其进行操作。

3脚本支持:

PowerShell 支持编写复杂脚本(.ps1 文件),可完成自动化任务,例如批量管理用户权限、文件备份等,大大提高效率。

4跨平台:

通过 PowerShell Core,用户可以在 Windows、Linux 和 macOS 上运行相同的命令和脚本,提供一致的跨平台体验。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++】20.二叉搜索树

文章目录 1. 二叉搜索树的概念2. 二叉搜索树的性能分析3. 二叉搜索树的插入4. 二叉搜索树的查找5. 二叉搜索树的删除6. 二叉搜索树的实现代码7. 二叉搜索树key和key/value使用场景7.1 key搜索场景:7.2 key/value搜索场景:7.3 主要区别:7.4 ke…

【大模型+本地自建知识图谱/GraphRAG/neo4j/ollama+Qwen千问(或llama3)】 python实战(中)

一、建立基本的知识图谱并导入neo4j 这里我举例用的属性表、关系表,大概格式如下 id名字颜色a1苹果红色 startrelenda1属于b1 启动neo4j(关于neo4j的安装此处不再赘述) import pandas as pd from py2neo import Graph, Node, Relationship…

【pyqt】(四)Designer布局

布局 之前我们利用鼠标拖动的控件的时候,发现一些部件很难完成对齐这些工作,pyqt为我们提供的多种布局功能不仅可以让排版更加美观,还能够让界面自适应窗口大小的变化,使得布局美观合理。最常使用的三种布局就是垂直河子布局、水…

解决“KEIL5软件模拟仿真无法打印浮点数”之问题

在没有外部硬件支持时,我们会使用KEIL5软件模拟仿真,这是是仿真必须要掌握的技巧。 1、点击“Project”,然后点击“Options for target 项目名字”,点击“Device”,选择CPU型号。 2、点击“OK” 3、点击“Target”,勾选“Use Mi…

【项目实战1】五子棋游戏

目录 C语言编程实现五子棋&#xff1a;&#xff1a; game.h game.c 1.打印菜单 2.打印棋盘 3.玩家下棋 4.判断五子连珠 5.判断输赢 6.游戏运行 game.c完整源代码展示 test.c C语言编程实现五子棋&#xff1a;&#xff1a; game.h #pragma once #include<stdio.h> …

用ResNet50+Qwen2-VL-2B-Instruct+LoRA模仿Diffusion-VLA的论文思路,在3090显卡上训练和测试成功

想一步步的实现Diffusion VLA论文的思路&#xff0c;不过论文的图像的输入用DINOv2进行特征提取的&#xff0c;我先把这个部分换成ResNet50。 老铁们&#xff0c;直接上代码&#xff1a; from PIL import Image import torch import torchvision.models as models from torch…

Spring Boot 项目自定义加解密实现配置文件的加密

在Spring Boot项目中&#xff0c; 可以结合Jasypt 快速实现对配置文件中的部分属性进行加密。 完整的介绍参照&#xff1a; Spring Boot Jasypt 实现application.yml 属性加密的快速示例 但是作为一个技术强迫症&#xff0c;总是想着从底层开始实现属性的加解密&#xff0c;…

A/B实验之置信检验(一):如何避免误判 (I类) 和漏报 (II类)

假设检验的依据&#xff1a;如何避免误判和漏报 A/B实验系列相关文章&#xff08;置顶&#xff09; 1.A/B实验之置信检验&#xff08;一&#xff09;&#xff1a;如何避免误判和漏报 2.A/B实验之置信检验&#xff08;二&#xff09;&#xff1a;置信检验精要 引言 在数据驱动…

每日一题:链表中环的入口结点

文章目录 判断链表环的入口节点描述数据范围&#xff1a;复杂度要求&#xff1a;输入输出 示例代码实现思路解析注意事项&#xff1a; 判断链表环的入口节点 描述 给定一个链表&#xff0c;判断该链表是否存在环。如果存在环&#xff0c;返回环的入口节点&#xff1b;如果不存…

深度学习blog-Meanshift均值漂移算法-最大熵模型

均值漂移&#xff08;Mean Shift&#xff09;是一种无监督的聚类算法&#xff0c;广泛应用于数据挖掘和计算机视觉任务。它通过移动样本点到其近邻的均值位置来寻找数据的高密度区域&#xff0c;最终形成聚类。 均值漂移算法原理 均值漂移算法的核心思想是通过滑动窗口&#…

51c自动驾驶~合集45

我自己的原文哦~ https://blog.51cto.com/whaosoft/13020031 #运动控制和规划控制需要掌握的技术栈~ 各大垃圾家电造车厂又要开始了~~~​ 1、ROS的通信方式 李是Lyapunov的李&#xff1a;谈谈ROS的通信机制 话题通信和服务通信&#xff0c;其中话题通信是通过发布和订阅…

Python基于jieba和wordcloud绘制词云图

【Cesium】自定义材质&#xff0c;添加带有方向的滚动路线 &#x1f356; 前言&#x1f3b6;一、实现过程✨二、代码展示&#x1f3c0;三、运行结果&#x1f3c6;四、知识点提示 &#x1f356; 前言 Python基于jieba和wordcloud绘制词云图 &#x1f3b6;一、实现过程 读取文本…

计算机网络与服务器

目录 架构体系及相关知识 三层架构&#xff1a; 四层架构&#xff1a; 常见的应用的模式&#xff1a; OSI模型 分层 数据链路层 TCP/IP模型 TCP和UDP都是传输层的协议 TCP三次握手、四次次分手 URL&HTTP协议详解 网址URL 结构化 报文行 报文头 空行 报文体…

Cursor实现go项目配置并实现仓库Gin项目运行

✅作者简介&#xff1a;大家好&#xff0c;我是 Meteors., 向往着更加简洁高效的代码写法与编程方式&#xff0c;持续分享Java技术内容。 &#x1f34e;个人主页&#xff1a;Meteors.的博客 &#x1f49e;当前专栏&#xff1a;知识备份 ✨特色专栏&#xff1a;知识分享 &#x…

141.环形链表 142.环形链表II

141.环形链表 & 142.环形链表II 141.环形链表 思路&#xff1a;快慢指针 or 哈希表 快慢指针代码&#xff1a; class Solution { public:bool hasCycle(ListNode *head) {if(headnullptr||head->nextnullptr)return false;ListNode *fasthead->next; //不能设置成…

信用租赁系统助力企业实现免押金租赁新模式

内容概要 在现代商业环境中&#xff0c;信用租赁正在迅速崛起。通过结合大数据与区块链技术&#xff0c;信用租赁系统彻底改变了传统的租赁流程。什么是信用租赁呢&#xff1f;简单说&#xff0c;就是不需要押金&#xff0c;你也能够租到你想要的物品&#xff0c;这对企业和消…

el-select下拉框在弹框里面错位

问题出现 Element Plus 是一个基于 Vue 3 的组件库&#xff0c;el-select 是其中一个用于选择器的组件。在 el-select 组件中&#xff0c;teleported 属性用于控制下拉菜单的渲染位置。 解决方法 teleported 属性「element-plus」 popper-append-to-body属性「element」 ‌…

IO进程day1

一、思维导图

力扣-21-合并两个有序链表

思路&#xff1a; 因为是升序的两个链表&#xff0c;我们可以进行数据域比大小&#xff0c;然后把p3(自己创建的)的指针域指向小的那个 注&#xff1a;一定要先判断两个指针为0的情况

人工智能的发展领域之GPU加速计算的应用概述、架构介绍与教学过程

文章目录 一、架构介绍GPU算力平台概述优势与特点 二、注册与登录账号注册流程GPU服务器类型配置选择指南内存和存储容量网络带宽CPU配置 三、创建实例实例创建步骤镜像选择与设置 四、连接实例SSH连接方法远程桌面配置 一、架构介绍 GPU算力平台概述 一个专注于GPU加速计算的…