macOS设置环境变量和别名

news2024/11/16 23:43:21

因为我的mac所用shell是bash,所以本文中涉及的环境变量别名配置均在~/.zshrc文件中,且在每次配置完成后,需要执行source ~/.zshrc命令使配置文件生效

环境变量

通过配置环境变量,我们可以将某个路径暴露到全局,这样可以在全局任意位置打开的终端中执行该路径下的文件

这里我们以vue脚手架为例,分别局部安装vue-cli(2.9.6,对应vue2)和@vue-cli(4.5.0,对应vue3),然后通过配置环境变量来实现在任意位置打开的终端中使用vue-cli相关指令

局部安装vue-cli和@vue/cli

我在/Users/liaijie/.nvm/versions/node路径下分别新建vue-cli2vue-cli3文件夹,这里请忽略nvm,并且我已经卸载了全局安装的vue-cli,然后在这两个文件夹中分别安装vue-cli@vue/cli

 liaijie@Silence  ~/.nvm/versions/node/vue-cli2  5b3d188 ±: npm init -y
 .
 .
 .
 liaijie@Silence  ~/.nvm/versions/node/vue-cli2  5b3d188 ±: npm install vue-cli@2.9.6
 .
 .
 .
 liaijie@Silence  ~/.nvm/versions/node/vue-cli3  5b3d188 ±: npm init -y
 .
 .
 .
 liaijie@Silence  ~/.nvm/versions/node/vue-cli3 5b3d188 ±: npm install @vue/cli@4.5.0
 .
 .
 .

环境变量规则

添加单条环境变量

export PATH=文件夹路径:$PATH

export PATH=$PATH:文件夹路径

其中,只有文件夹路径是根据实际情况填写,剩下的exportPATH$PATH都是固定的。这里的$PATH可以看做已有的环境变量,如果以$PATH:开头,则该条环境变量会被追加在原有环境变量后面,并以:分隔;如果以:$PATH结尾,则该条环境变量会被添加在原有环境变量前面,并以:分隔。

注意: =左右两侧不能有空格;结尾也不需要加分号或者逗号;将文件夹直接拖入环境变量文件编辑器中(我这里用的是文本编辑器),可以直接显示文件夹路径

一条环境变量中添加多个路径

`export PATH=文件夹路径1:文件夹路径2:文件夹路径3.......文件夹路径N:$PATH` 

多个路径中间用:隔开

环境变量中使用变量

export 自定义名称=文件夹路径
export PATH=$自定义名称/文件夹A:$PATH
export PATH=$自定义名称/文件夹B:$PATH

在这里,其实就是将多条环境变量的公共路径提取出来,并且起一个自定义的名称,然后再在其他环境变量中通过$自定义名称来引用

实践

现在我们以上面的vue脚手架为例,来配置环境变量

export PATH=/Users/liaijie/.nvm/versions/node/vue-cli2/node_modules/.bin:$PATH
export PATH=/Users/liaijie/.nvm/versions/node/vue-cli3/node_modules/.bin:$PATH

在这里,因为vue-cli@vue-cli的启动文件(或可执行文件)名称都是vue,所以我改了它们的名字用于区分
在这里插入图片描述
测试一下,成功!!

 liaijie@Silence  ~ source ~/.zshrc
 liaijie@Silence  ~ vue-cli2 --version
  2.9.6
 liaijie@Silence  ~ vue-cli3 --version
  @vue/cli 5.0.8

别名

注意:

  • 等号(=)前后不能有空格,否则就会出现语法错误了。
  • 如果value中有空格或tab,则value一定要使用引号(单、双引号都行)括起来。

全局指令设置别名

有些全局指令的名字过长或者不便于记忆,我们就可以通过给该命令配置别名来方便自己的使用

alias 自定义名称='已有指令名称'
# 例如
alias v='vue'
alias c="clear"

上面例子中,将全局指令vue设置别名为v,即以后使用vue相关指令时使用v代替,例如v --version;将终端清屏指令clear设置别名为c,以后清屏时直接输入c回车即可。

给应用程序设置别名

例如我们想通过指令来启动某个app,这里以网易云音乐为例,在访达中右键应用图标,选择显示包内容,即可打开应用对应文件夹,这里注意,别名中的路径要精确到执行文件

...
alias wyy="/Applications/NeteaseMusic.app/Contents/MacOS/NeteaseMusic"
...

通过指令启动应用

liaijie@Silence  ~  wyy
2023-04-13 16:14:09.482 NeteaseMusic[21695:282351] NSWindow warning: adding an unknown subview: <INMovableByBackgroundContainerView: 0x135e5b5e0>. Break on NSLog to debug.
2023-04-13 16:14:09.483 NeteaseMusic[21695:282351] Call stack:
(
	0   AppKit                              0x000000018c2090e8 -[NSThemeFrame addSubview:] + 124
	1   AppKit                              0x000000018c208d84 -[NSView addSubview:positioned:relativeTo:] + 216
	2   AppKit                              0x000000018c208c10 -[NSThemeFrame addSubview:positioned:relativeTo:] + 52
	3   NeteaseMusic                        0x0000000102cf9474 NeteaseMusic + 152692
	4   NeteaseMusic                        0x0000000102cf8694 NeteaseMusic + 149140
	5   NeteaseMusic                        0x0000000102cf6b2c NeteaseMusic + 142124
	6   NeteaseMusic                        0x0000000102d659e0 NeteaseMusic + 596448
	7   NeteaseMusic                        0x0000000102d08484 NeteaseMusic

启动成功
在这里插入图片描述

查看所有别名

使用alias命令即可查看所有别名

liaijie@Silence  ~ alias
-='cd -'
.
省略
.
code='/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code'
egrep='grep -E --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn,.idea,.tox}'
fgrep='grep -F --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn,.idea,.tox}'
g=git
ga='git add'
.
省略
.
which-command=whence
wyy=/Applications/NeteaseMusic.app/Contents/MacOS/NeteaseMusic

查看单独命令的别名

liaijie@Silence  ~  alias c
c=clear

参考文章:
alias命令_Linux alias命令:给命令定义别名

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

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

相关文章

周总结(第一周)

3月份3个星期 *** 三个星代表不会 ** 再做 * 加强 题目1-完全二叉树(记忆) 考察数据结构 完全二叉树的深度deplog2(N1)1 完全二叉树节点的深度depiceil(log2(i1))向上舍入 完全二叉树的层次遍历&#xff0c;遍历每层的二叉树计算基础每层的总和&#xff0c;然后找出最大的和…

Talk预告 | 新加坡国立大学郑奘巍 AAAI‘23 杰出论文:大批量学习算法加速推荐系统训练

本期为TechBeat人工智能社区第486期线上Talk&#xff01; 北京时间3月30日(周四)20:00&#xff0c;新加坡国立大学二年级博士生——郑奘巍的Talk将准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “大批量学习算法加速推荐系统训练”&#xff0c;届时将分…

Kubernetes 多集群网络方案系列 2 -- Submariner 监控

Submariner 是一个用于连接 Kubernetes 集群的跨集群网络解决方案&#xff0c;可以实现集群之间的服务发现、网络通信等功能。 Prometheus 是一个开源的监控和告警系统&#xff0c;专门用于收集、存储和查询各种应用、系统和基础设施的实时指标数据。Prometheus 具备多维数据模…

Java开发 - MySQL主从复制初体验

前言 前面已经学到了很多知识&#xff0c;大部分也都是偏向于应用方面&#xff0c;在应用实战这条路上&#xff0c;博主一直觉得只有实战才是学习中最快的方式。今天带来主从复制给大家&#xff0c;在刚刚开始动手写的时候&#xff0c;才想到似乎忽略了一些重要的东西&#xf…

面试篇-揭开Spring Bean加载的神秘面纱

SpringBean加载完整过程 启动spring容器&#xff08;创建beanfactory&#xff09;->加载配置(注解、xml)->实例化bean(执行构造方法)->注入依赖->初始化bean&#xff08;设置属性值&#xff09;->使用->销毁 解析和读取 XML 配置文件或注解配置类&#xff0…

Linux嵌入式学习之Ubuntu入门(五)汇编语法学习

系列文章目录 一、Linux嵌入式学习之Ubuntu入门&#xff08;一&#xff09;基本命令、软件安装及文件结构 二、Linux嵌入式学习之Ubuntu入门&#xff08;二&#xff09;磁盘文件介绍及分区、格式化等 三、Linux嵌入式学习之Ubuntu入门&#xff08;三&#xff09;用户、用户组…

synchronized原理、偏向锁、轻量级锁、重量级锁、锁升级

文章目录Synchronized概念自增自减字节码指令临界区竞态条件基本使用原理查看synchronized的字节码指令序列Monitor对象的内存布局Mark Word是如何记录锁状态的偏向锁什么是偏向锁偏向锁延迟偏向偏向锁状态跟踪偏向锁撤销之调用对象HashCode偏向锁撤销之调用wait/notify轻量级锁…

Qt Quick - Drawer

Qt Quick - Drawer使用总结一、概述二、使用1、基础使用2、特点空间运行3、与内容转换相互挤占一、概述 Drawer提供了一个基于滑动的侧边面板&#xff0c;类似于经常在触控界面中使用的侧边面板&#xff0c;为导航提供了一个位置。 二、使用 1、基础使用 抽屉可以放置在内…

springcloud深度探索

中文官方文档&#xff1a;project - Spring Cloud Config - 《Spring Cloud中文文档》 - 书栈网 BookStackSpring Cloud ConfigFeaturesQuick StartSample Projects Spring Cloud为开发人员提供了工具&#xff0c;用以快速的在分布式系统中建立一些通用方案&#xff08;例如配…

CDP思科发现协议解析及C/C++代码实现

通常&#xff0c;大多数网络都有几个路由器或交换机&#xff0c;为了便于网络管理&#xff0c;使用网络图或网络图来告诉网络中存在什么类型的设备&#xff0c;以及所有设备如何相互连接&#xff0c;使用的IP地址以及它们属于哪个VLAN的信息。 CDP是一种专有的第二层思科网络协…

Table Transformer做表格检测和识别实践

计算机视觉方面的三大顶级会议&#xff1a;ICCV,CVPR,ECCV.统称ICE CVPR 2022文档图像分析与识别相关论文26篇汇集简介 论文&#xff1a; PubTables-1M: Towards comprehensive table extraction from unstructured documents是发表于CVPR上的一篇论文 作者发布了两个模型&…

22级ACM 4.16 周赛 题解

这场能题解写的感觉没多少其实&#xff08;真的不是因为懒&#xff09;&#xff0c;既然有人想要题解&#xff0c;那么就随便写一下吧&#xff0c;其实大部分的题都有人写出来&#xff0c;感觉这场真的不需要。 A 题 题解 Count Interval AtCoder - abc233_d_霾まる的博客-CS…

AI绘画王炸功能Control Net安装教程

原文&#xff1a;AI绘画王炸功能Control Net安装教程 - 知乎 AI绘画&#xff0c;最近两大王炸功能出圈了。 一个就是超真实超细节的美女图片&#xff0c;已经快和照片无异了&#xff0c;甚至有人用AI绘画的“女仆照片”开始招募游艇会了&#xff0c;具体教程可以查看Lora这篇…

一键生成元宇宙 AI又杀疯了

人类十几年的进步水平&#xff0c;AI用几个月就能轻易实现。在展示了超强的文本对话能力和一键生图功能后&#xff0c;AI大模型不打算停下&#xff0c;开始挑战搭建3D空间这一更高难度的动作。 这次&#xff0c;Facebook母公司Meta想当一把主导者。几天前&#xff0c;它的首席…

185-二35

Java185-二35单列集合顶层接口collection迭代器增强forlambda表达式list特有方法遍历数据结构数组Linkedlist集合泛型类&#xff0c;泛型方法&#xff0c;泛型结构泛型方法泛型的通配符泛型总结数据结构数据结构&#xff08;二叉树&#xff09;前序遍历数据结构&#xff08;二叉…

crm系统有哪些?具体的功能有哪些?

市面上的CRM系统有很多&#xff0c;例如简道云、销售易、salesforce、纷享销客、SugarCRM等等&#xff0c;这些都是比较知名的&#xff0c;前面也有写过很多关于CRM选型的内容&#xff0c;大家可以点进我的主页翻阅一下。 那么&#xff0c;CRM具体的功能有哪些&#xff1f;下面…

计算机网络 - UDP协议 与 TCP协议可靠性(传输层)

前言 本篇介绍UDP报文格式&#xff0c;认识UDP报文&#xff0c;介绍TCP报文格式&#xff0c;了解TCP可靠性的核心机制&#xff0c;TCP通信中三次握手与四次挥手&#xff1b;如有错误&#xff0c;请在评论区指正&#xff0c;让我们一起交流&#xff0c;共同进步&#xff01; 文…

EDA基础概念

EDA基础概念EDA和CADCAD工具EDA工具EDA技术实现目标可编程逻辑器件简称PLD发展历程FPGA简介CPLD简介FPGA和CPLD区别是否需要同时学习FPGA和CPLDXilinx&#xff08;赛灵思&#xff09;公司介绍&#xff08;AMD收购&#xff09;开发工具Xilinx产品Altera&#xff08;阿尔特拉&…

Qt关于QPainter绘制1px宽度图形带来的问题思考

前言 前段时间遇到这样一个问题&#xff0c;使用QPainter绘制直线的时候&#xff0c;设置了笔宽为1像素&#xff0c;但是绘制出来的线条却是2px宽度&#xff0c;而且设置的画笔颜色很明显是降低了透明度&#xff0c;不是最“纯正”的颜色。 当时就感觉非常奇怪&#xff0c;明明…

【FPGA实验1】FPGA点灯工程师养成记

对于FPGA几个与LED相关的实验&#xff08;包括按键点灯、流水灯、呼吸灯等&#xff09;的记录&#xff0c;方便日后查看。这世界上就又多了一个FPGA点灯工程师了&#x1f60f; 成为一个FPGA点灯工程师分三步&#xff1a;一、按键点灯1、按键点灯程序2、硬件实现二、流水灯1、流…