文章目录
每当学习一门新技术的时候,其中一个最大的拦路虎就是环境安装配置,比如java,安卓,比如php都需要安装和配置一大堆工具,安装不顺利的时候无疑会在我们的热情上浇一头冷水。这不,最近打算学习Flutter开发,光是安装配置就捣鼓了好几天,现在记录下来Mac环境变量的配置。
为什么要配置环境变量?
配置环境变量之前的状况
在安装好 java sdk 之后,如果我们需要运行 javac 对 java文件进行编译,首先需要打开shell,然后通过执行 java 安装目录的bin目录下的命令工具。
# HelloJava目录里有一个 Hello.java文件
$ ls
Hello.java
# java sdk安装在这里
/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home
# 编译 java 文件需要如下把整个安装目录带上
$ /Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/bin/javac Hello.java
# 查看编译结果,多了一个 .class文件
$ ls
Hello.class Hello.java
以上那样需要把命令工具的完整路径都输入才能运行命令,效率太慢了,也容易出错。
配置环境变量后,简单高效!
配置好环境变量,那我们就可以在任何目录下直接输入命令就可以执行。依然是这个例子,我们可以直接在开发目录中执行 javac 命令。
$ ls
Hello.java
$ javac Hello.java
$ ls
Hello.class Hello.java
环境变量是什么?环境变量的作用
MacOS下的环境变量有以下几个文件管理
$ /etc/profile
$ /etc/paths
$ ~/.bash_profile
$ ~/.bash_login
$ ~/.profile
$ ~/.bashrc
配置文件的加载规则
1、前面2个/etc目录下的都是系统级别的,系统启动时会加载。
2、这3个按照从前往后的顺序读取,即
~/.bash_profile => ~/.bash_login => ~/.profile
如果.bash_profile文件存在,则后面2个文件会被忽略。
如果.bash_login文件存在,则后面.profile 文件会被忽略。
3、~/.bashrc 没有上述规则,它是bash shell打开的时候载入的。
怎么配置环境变量?
1、在终端用 vim 在 home 目录下创建 .bash_profile 文件
mac mojave以后的系统请配置 .zshrc文件,一样的操作方法,只是将 .bash_profile 改为 .zshrc
$ cd
$ ls -alh
# 如果存在 .bash_profile 就不用执行以下 touch 命令# 如果不存在 .bash_profile,手动 touch 创建文件
$ touch .bash_profile
2、使用 vim 编辑 .bash_profile文件
$ cd
$ vim ~/.bash_profile
# 在打开的文件中,输入 i 进入编辑模式# .bash_profile文件格式如下export 自定义环境变量名1 = 路径1
export 自定义环境变量名2 = 路径2
export 自定义环境变量名3 = 路径3
exportPATH=$PATH:路径5
exportPATH=路径6:$PATHexportPATH=$PATH:$自定义环境变量名1:$自定义环境变量名2:$自定义环境变量名3
# 按 esc 退出编辑模式,输入 :wq 保存并退出vim
注意一下:多个变量用英文冒号:隔开,$PATH要添加回去PATH中,否则系统内部原有命令失效。
这里给出 vim 常用命令。在终端 输入
vim 文件名
就会在终端打开该文件,这时输入 i 即可进入编辑模式。
# vim常用的命令:
$ vim[filename.ext]
$ # 输入 i 回车进入编辑模式
$ # 编辑内容...
$ # 按 esc 键退出编辑模式,然后输入以下带冒号:的命令
$ :wq 保存后退出vi,若为 :wq! 则为强制储存后退出(常用)
$ :w 保存但不退出(常用)
$ :w! 若文件属性为『只读』时,强制写入该档案
$ :q 离开 vi (常用)
$ :q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
3、保存关闭后,在终端输入以下命令让配置生效
$ source .bash_profile
也可以通过重启电脑来使它生效。
4、查看环境变量是否正确导入
$ echo$PATH
我的 ~/.bash_profile
exportPATH=/usr/local/bin:/usr/local/sbin:~/bin:$PATHexportJAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home
exportANDROID_HOME=/Users/wywar/Library/Android/sdk
exportPATH=$PATH:$ANDROID_HOME/platform-tools
exportPATH=$PATH:$ANDROID_HOME/tools
exportPATH=$PATH:$ANDROID_HOME/build-tools/28.0.3exportPATH=$PATH:/Users/wywar/development/flutter/bin
exportPUB_HOSTED_URL=https://pub.flutter-io.cn
exportFLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
exportHOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles
exportPATH=$PATH:/usr/local/mongodb/bin
exportPATH=$PATH:/usr/local/mysql-8.0.20-macos10.15-x86_64/bin
我的输出
/usr/local/bin:
/usr/local/sbin:
/Users/wywar/bin:
/Users/wywar/development/flutter/bin:
/Users/wywar/.nvm/versions/node/v18.12.0/bin:
/usr/bin:
/bin:
/usr/sbin:
/sbin:
/Library/Apple/usr/bin:
/Users/wywar/Library/Android/sdk/platform-tools:
/Users/wywar/Library/Android/sdk/tools:
/Users/wywar/Library/Android/sdk/build-tools/28.0.3:
/usr/local/mongodb/bin:
/usr/local/mysql-8.0.20-macos10.15-x86_64/bin:
有输出刚刚在 ~/.bash_profile 添加的环境变量,就说明成功了。下面可以试试在不同目录下使用导出的命令了。
$ mongo
MongoDB shell version v4.2.2
执行 mongodb 正常。执行Flutter,正常输出。至此环境变量配置完成!
版权归原作者 wywar 所有, 如有侵权,请联系我们删除。