Mac终端Shell分类以及配置文件等级区别

打开mac终端,输入:

echo $SHELL

 

 

如果输出的是:csh或者是tcsh,那么你用的就是C Shell。

如果输出的是:bash,sh,zsh,那么你的用的可能就是Bourne Shell的一个变种。

 

Mac OS X 10.2之前默认的是C Shell。

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

 

 

关于几种常用不同的Shell:

  • Bourne Shell(简称sh)  Unix默认的Shell,是其他Shell的开发基础。(AT&Bell实验室Steven Bourne为AT&T的Unix开发的)

 

  • C-Shell(简称csh)  基于sh,不同于sh,它提供了Bourne Shell所不能处理的用户交互特征,如命令补全、命令别名、历史命令替换等。但是,C Shell与BourneShell并不兼容。(加州伯克利大学的Bill Joy为BSD Unix开发的)

 

  • Korn Shell(简称ksh)  它集合了C Shell和Bourne Shell的优点,并且与Bourne Shell向下完全兼容。Korn Shell的效率很高,其命令交互界面和编程交互界面都很好。(AT&T Bell实验室的David Korn开发的)

 

  • Bourne Again Shell(简称bash) 它是Linux系统中一个默认的Shell。Bash不但与Bourne Shell兼容,还继承了C Shell、Korn Shell等优点。(*软件基金会(GNU)开发的)

  

 

我的输出是bash。在这里只介绍Bourne Shell(sh)关于配置文件的等级介绍。

 

在Bourne Shell下有三种配置文件:

  1. / ect/profile
  2. /ect/bashrc
  3. ~/.bash_profile

注:Linux里边是.bashrc 而MAC 是.bash_profile,所以Mac下只需要设置profile和.bash_profile;

 

  • /ect/profile(一般不建议修改这个文件)

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

  • ~/.bash_profile

   

     一般在这个文件中添加用户级环境变量

     若bash shell是以login方式执行时,才会读取此文件。该文件仅仅执行一次默认情况下,他设置一些环境变量。

     在.bash_profile中设置的配置信息只有在打开终端的时候执行有效,终端关闭后,之前的设置的命令则无效;

     如下图,打开终端执行jdk版本的切换命令(.bash_profile配置好的命令),切换jdk的版本,通过查看java -version命令确认;

 

    Mac终端Shell分类以及配置文件等级区别

   

  再次关闭终端,查看java -version版本为默认版本

 

Mac终端Shell分类以及配置文件等级区别                                                                                                              

 

  • /ect/bashrc(mac没有此配置文件)

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

      可以加入mysqlstart、mysql和mysqladmin命令的别名,保证每一个用户都可以使用这3个命令。

 

原文地址:https://blog.csdn.net/qq_21210473/article/details/48162887