macOS设置环境变量和别名

因为我的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命令:给命令定义别名

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

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

相关文章

【C语言学习3——基本的C语言语法知识2】

C语言学习3——基本的C语言语法知识 标识符关键词什么是字面常量&#xff1f;printf函数printf函数更多用法 #include命令 标识符 在前面的代码中&#xff0c;由我们自己命名&#xff0c;用于指代某一个实体的名称&#xff0c;例如:add&#xff0c;result&#xff0c;函数的参…

android studio ImageView和ImageButton和Button

1.ImageView 1.1代码显示 ImageView img findViewById(R.id.img); img.setImageResource(R.drawable.apple); 1.2XML <ImageViewandroid:layout_width"match_parent"android:layout_height"match_parent"android:id"id/img"android:src&qu…

连接云服务器

前言&#xff1a;相信看到这篇文章的小伙伴都或多或少有一些编程基础&#xff0c;懂得一些linux的基本命令了吧&#xff0c;本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python&#xff1a;一种编程语言&…

实现开机动画和自定义Toolbar的高级写法

需求是自定义一个Toolbar和全屏展示一个第一次激活App的开机动画 1自定义Toolbar的使用 1仍然是先将工程的theme.xml中设置成NoActionBar <resources xmlns:tools"http://schemas.android.com/tools"><!-- Base application theme. --><style name&…

Spring原理学习(五):一篇讲清楚动态代理(jdk和cglib)的使用、原理和源码

目录 一、jdk动态代理的基本使用 二、cglib动态代理的基本使用 2.1 方法一&#xff1a;method.invoke() 方法反射调用 2.2 方法二&#xff08;spring使用的这个方法&#xff09;&#xff1a; methodProxy.invoke() 2.3 方法三&#xff1a;methodProxy.invokeSuper() 三、…

ChatGPT API接口使用+fine tune微调+prompt介绍

目录 1 接口调用1.1 生成key1.2 接口功能1.2.1 图片生成 (image generation)1.2.2 对话(chat)1.2.3 中文纠错 (Chinese Spelling Correct)1.2.4 关键词提取 &#xff08;keyword extract)1.2.5 抽取文本向量 (Embedding)1.2.6 微调 (fine tune) 2 如何写好prompt2.1分类任务2.2…

Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCVSharp实现图像的拉普拉斯算法增强(C#)

Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCVSharp实现图像的拉普拉斯算法增强&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机使用图像算法增加图像的技术背景Baumer工业相机通过BGAPI SDK联合OpenCV使用图像增强算法1.引用合适的类文件2.BGAPI SDK在图像回…

【C++】从string开始了解STL

文章目录 1.初识STL1.什么是STL2.STL的版本3.STL的六大组件 2.string1.string类模板2.string类的构造函数3.string内部数据访问4.string的遍历5.string类的迭代器6.string的Capacity相关接口7.string的修改相关接口8.其他接口 1.初识STL 1.什么是STL STL(standard template l…

openpnp - 顶部相机 - 辅助光(环形灯)的电路原理图

文章目录 openpnp - 顶部相机 - 辅助光(环形灯)的电路原理图概述END openpnp - 顶部相机 - 辅助光(环形灯)的电路原理图 概述 同学帮我做的简易灯板设计不太合理, 发热量极大. 想看看商用的环形灯电路啥样的, 如果有可能, 自己做块灯板, 塞进商用环形灯外壳中. 拆解了一个环形…

从TOP25榜单,看半导体之变

据SIA报告显示&#xff0c;2022年全球半导体销售额创历史新高达到5740亿美元。尽管2022年下半年&#xff0c;半导体市场出现了周期性的低迷&#xff0c;但其全年的销售额相较2021年增长了3.3%。 近日&#xff0c;市调机构Gartner发布了全球以及中国大陆TOP25名半导体厂商的排名…

【软考数据库】第二章 程序语言基础知识

目录 2.1 程序设计语言的基本概念2.2 程序设计语言的基本成分2.3 编译程序基本原理 前言&#xff1a; 笔记来自《文老师软考数据库》教材精讲&#xff0c;精讲视频在b站&#xff0c;某宝都可以找到&#xff0c;个人感觉通俗易懂。 2.1 程序设计语言的基本概念 程序设计语言是…

《3-链表》

链表 引言&#xff1a; 存储数组需要内存空间连续&#xff0c;当我们需要申请一个很大的数组时&#xff0c;系统不一定存在这么大的连续内存空间。 而链表则更加灵活&#xff0c;不需要内存是连续的&#xff0c;只要剩余内存空间大小够用即可 1.定义 &#xff1a; 「链表 Lin…

文本批量翻译-批量翻译文件名

批量将英文翻译成中文的软件 批量将英文翻译成中文的软件的主要用途场景主要是在需要大量翻译英文文本到中文的场景下使用&#xff0c;例如&#xff1a; 商务文件翻译&#xff1a;许多企业需要将其商务文件&#xff0c;如合同、报告、信函等翻译成中文&#xff0c;以便其中文读…

Vulnhub项目:MrRobot

靶机地址&#xff1a;Mr-Robot: 1 ~ VulnHub 渗透过程&#xff1a; 先看描述&#xff0c;有3跟keys在这个靶机中 首先确定靶机ip&#xff0c;对靶机开放的端口进行探测 访问靶机地址&#xff0c;出现了很酷炫的web界面&#xff0c;这个mr.robot,是一个美剧&#xff0c;还是挺…

e-STUDIO2010AC•2520AC安装步骤

注意!在室内室外温差比较大的情况下,设备需要在室内静置240分钟以上才可以进行安装。

智慧园区综合管理平台开发基本功能有哪些?

随着智慧城市建设与信息化发展&#xff0c;园区管理也需要更加智能便捷化&#xff0c;于是智慧园区管理系统开发应运而生。智慧园区综合管理系统就是利用物联网、大数据等技术工具&#xff0c;顺应产业园区升级发展需求&#xff0c;实现园区环境、设备、安全、基础管理、资源服…

TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:1~5

原文&#xff1a;Mobile Deep Learning with TensorFlow Lite, ML Kit and Flutter 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 深度学习 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 不要担心自己的…

vue关于echarts后端返回格式取值方法

在vue中&#xff0c;接口返回如下数据&#xff1a; data: {充电桩: [0, 0, 78], 红外摄像头: [0, 0, 0], 火焰探测器: [0, 1, 0], 烟雾传感器: [0, 1, 1], 限流保护器: [0, 0, 1]}&#xff0c; 其中数组里第一个值应该放在data1&#xff0c;第二个放在data2&#xff0c;第三个…

docker学习

安装 curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh为了防止后面权限有问题&#xff0c;执行下面这个 sudo groupadd docker sudo gpasswd -a $USER docker newgrp docker基本操作 获得镜像 docker pull hello-world运行 docker run hello-w…

蓝桥杯欲伸手CTF?有多远爬多远

注意&#xff1a;网络安全类比赛 或者说 CTF 参赛不会需要任何费用 只有国赛/省赛有可能会收取一定运维费用 其他比赛都不会收费 望周知。 先来看个特离谱的事情 早上起床看到几位师傅的朋友圈一脸懵&#xff0c;再仔细一看&#xff0c;好嘛。。。。。。 先看看探姬的回复 接下…