因为我的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-cli2
和vue-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:文件夹路径
其中,只有文件夹路径
是根据实际情况填写,剩下的export
、PATH
、$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命令:给命令定义别名