1. 基本了解

1.1. 查看当前path

在讲解Mac环境变量配置之前,大家可以打开dos框,输入

echo $PATH 查看当前的path。

本机结果:

/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/apple/Library/Android/sd/tools:/Users/apple/Library/Android/sd/platform-tools:/Users/apple/Documents/mongodb/mongodb-3.6.4/bin

可以看出,我的目录下有/usr/local/bin/usr/bin...都被作为环境变量进行加载了。

1.2. 环境变量文件的优先级

其配置文件的优先级如下所示:

/etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc

1.3 Mac配置环境变量的地方

  1. /etc/profile (建议不修改这个文件 )

    全局(公有)配置,不管是哪个用户,登录时都会读取该文件。

  2. /etc/bashrc (一般在这个文件中添加系统级环境变量)

    全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件。

  3. ~/.bash_profile (一般在这个文件中添加用户级环境变量)

    每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!

2. 常见操作命令

2.1 操作系统判断

首先要知道你使用的Mac OS X是什么样的Shell,使用命令 echo $SHELL

  1. 如果输出的是:csh或者是tcsh,那么你用的就是C Shell。
  2. 如果输出的是:bashshzsh,那么你的用的可能就是Bourne Shell的一个变种。

Mac OS X 10.2之前默认的是C

Shell。 Mac OS X 10.3之后默认的是Bourne Shell。

如果是Bourne Shell。

那么你可以把你要添加的环境变量添加到你主目录下面的.profile或者.bash_profile,如果存在没有关系添加进去即可,如果没有生成一个。

2.2 修改host文件

sudo vi /etc/hosts

2.3 linux下查看和添加PATH环境变量

PATH的格式为:

PATH=$PATH::::——:

中间用冒号隔开。

2.4 添加PATH环境变量:

[root@localhost u-boot-sh4]#export PATH=/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH

2.5 查看PATH环境变量:

[root@localhost u-boot-sh4]#echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

2.6 操作示例

通过编辑 启动文件 来改PATH。

# vim /etc/profile

在文档最后,添加:

export PATH="/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH"

保存,退出。

想立即生效请运行:

#source /etc/profile

不报错则成功。

如果想立刻生效,则可执行下面的语句:”$ source .bash_profile(这是文件名”。环境变量更改后,在用户下次登陆时生效。

3. 软连接

另外有很多小伙伴可能发现了,在mac上不设置环境变量有的时候也可以直接就访问到了某些文件。这个是为什么呢?答案是用了软连接。

3.1 查看加载文件

可以使用cat命令查看paths文件

localhost:/ Sean$ cat etc/paths
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

答案就是mac会自动加载paths目录,自动加载这些文件夹下的文件,所以使用软连接,在这些文件夹下建立软连接,可能达到相同的效果。

3.2 软连接查看

ls -li
406876 lrwxr-xr-x   1 root   wheel        73  7  9  2016 jar -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jar
406877 lrwxr-xr-x 1 root wheel 79 7 9 2016 jarsigner -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jarsigner
406878 lrwxr-xr-x 1 root wheel 74 7 9 2016 java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
406879 lrwxr-xr-x 1 root wheel 75 7 9 2016 javac -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac
406880 lrwxr-xr-x 1 root wheel 77 7 9 2016 javadoc -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javadoc
406881 lrwxr-xr-x 1 root wheel 75 7 9 2016 javah -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javah
406882 lrwxr-xr-x 1 root wheel 75 7 9 2016 javap -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javap
406883 lrwxr-xr-x 1 root wheel 76 7 9 2016 javaws -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javaws
406884 lrwxr-xr-x 1 root wheel 74 7 9 2016 jcmd -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jcmd
406885 lrwxr-xr-x 1 root wheel 78 7 9 2016 jconsole -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jconsole
406886 lrwxr-xr-x 1 root wheel 73 7 9 2016 jdb -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jdb
406887 lrwxr-xr-x 1 root wheel 75 7 9 2016 jdeps -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jdeps
406888 lrwxr-xr-x 1 root wheel 74 7 9 2016 jhat -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jhat
406889 lrwxr-xr-x 1 root wheel 75 7 9 2016 jinfo -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jinfo
406890 lrwxr-xr-x 1 root wheel 73 7 9 2016 jjs -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jjs
406891 lrwxr-xr-x 1 root wheel 74 7 9 2016 jmap -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jmap
406892 lrwxr-xr-x 1 root wheel 73 7 9 2016 jmc -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jmc

3.3 软连接建立和测试

ln -s /data/kafka  /kafka

ls -li

11373698 lrwxr-xr-x 1 root wheel 11 1 19 18:09 kafka -> /data/kafka

Mac 中环境变量的配置的更多相关文章

  1. .net core 中环境变量的配置

    配置文件: Properties目录下的launchSettings.json IISExpress配置 "ASPNET_ENV": "EnvironmentOne&qu ...

  2. 记录一下我的mac的环境变量的配置参数

    #配置jdk环境export JAVA_7_HOME=/Library/java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Homeexport JAV ...

  3. Linux中环境变量文件及配置

    Linux中环境变量文件及配置   一.环境变量文件介绍 转自:http://blog.csdn.net/cscmaker/article/details/7261921 Linux中环境变量包括系统 ...

  4. Linux中环境变量文件及配置(转载)

    一.环境变量文件介绍 转自:http://blog.csdn.net/cscmaker/article/details/7261921 Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登 ...

  5. Linux中jdk的安装和环境变量的配置

    我安装的linux系统版本是RedHat4 64位,jdk版本为jdk-6u10-linux-i586.bin 1.首先找到安装包的位置->进入此文件夹,此bin格式的文件可用./命令直接进行安 ...

  6. MySQL Mac 终端环境变量配置

    MySQL Mac 终端环境变量配置 这里安装的是mysql-8.0.26-macos11-x86_64,M1Mac,原本打算安装arm64版本,但一直安装不了,就装了x86版本 安装完成MySQL之 ...

  7. 在命令行中输入python会跳转到商店问题解决,python环境变量的配置

    安装python出了点问题,明明安装了,在应用商店显示已获取,可是在命令行输入python检验时就直接跳转到win10系统自带的应用商店...... 这不免让我怀疑是不是没有安装好python~但是它 ...

  8. Linux中JDK环境变量的配置

    在JDK安装好以后,需要进行环境变量的配置 配置目录   /etc/profile 在这个文件的末尾追加 JAVA_HOME=/home/j2sdk1.4.2_11PATH=$PATH:/home/j ...

  9. [java学习笔记]JDK的安装和环境变量的配置

    1.JDK的下载和安装 jdk(java development kit)是java提供给我们的一套java开发工具,它必运行在JVM(java虚拟机)上,java语言的跨平台性就是利用java运行在 ...

随机推荐

  1. [转载]【转】教你如何实现linux和Windows之间的文件共享,samba的安

    原文地址:[转]教你如何实现linux和Windows之间的文件共享,samba的安装与配置作者:铅笔小蜡 本人在虚拟机下装fedora13,已经实现.1. 首先检查os是否安装好了samba. [r ...

  2. Linux\CentOS Tomcat 配置

    需要注意的是:安装 Tomcat 之前需要把 jdk 安装好. 一.下载安装包 - 安装可以在官网自行下载,下载 tar.gz 包便可. 二.解压缩: tar -zxvf apache-tomcat- ...

  3. 【algo&ds】0.数据结构和算法入门

    解决问题方法的效率,跟数据的组织方式有关 解决问题方法的效率,跟空间的利用效率有关 解决问题方法的效率,跟算法的巧妙程度有关 什么是数据结构 数据对象在计算机中的组织方式 逻辑结构 物理存储结构 数据 ...

  4. PHP队列的实现详细操作步骤

    队列是一种特殊的线性表,它只允许在表的前端,可以称之为front,进行删除操作:而在表的后端,可以称之为rear进行插入操作.队列和堆栈一样,是一种操作受限制的线性表,和堆栈不同之处在于:队列是遵循“ ...

  5. PHP产生不重复随机数的5个方法总结

    无论是Web应用,还是WAP或者移动应用,随机数都有其用武之地.在最近接触的几个小项目中,我也经常需要和随机数或者随机数组打交道,所以,对于PHP如何产生不重复随机数常用的几种方法小结一下 无论是We ...

  6. postgresql , etcd , patroni 做failover

    os: centos 7.4etcd:3.2 主从IP信息192.168.56.101 node1 master192.168.56.102 node2 slave192.168.56.103 nod ...

  7. 从surfaceflinger历史变更谈截屏

    众所周知,有一个程序screencap可以截屏,这个程序十分简单,只是使用了surfaceflinger服务的截屏功能. 所以要了解截屏,看surfaceflinger服务的代码是不二首选.但是sur ...

  8. UML分析AsyncDisplayKit框架-ASMuplexImageNode异步下载时序图。

    PS:博客园图片服务器不正常工作,数据上传后服务器返回http500,园方迟迟还没解决. 我从2016-01-18 05:52向园方反馈问题-请问博客园的图片服务器有在正常运行吗,至此时2016-01 ...

  9. RocketMQ一个新的消费组初次启动时从何处开始消费呢?

    目录 1.抛出问题 1.1 环境准备 1.2 消息发送者代码 1.3 消费端验证代码 2.探究CONSUME_FROM_MAX_OFFSET实现原理 2.1 CONSUME_FROM_LAST_OFF ...

  10. 2019-10-29:渗透测试,基础学习,sqlmap文件读取,写入,dnslog盲注作用,mssql手工注入,笔记

    sqlmap参数--file-read,从数据库服务器中读取文件--file-write,--file-dest,把文件上传到数据库服务器中 dnslog平台的学习和它在盲注中的应用1,判断注入点2, ...