启动bash shell的三种方式

1、登录时当做默认登录shell

2、作为非登录shell的交互式shell

3、作为运行脚本的非交互shell

一、登录shell

登录Linux系统时,bash shell会作为登录shell启动,登录shell会从4个不同的启动文件里读取命令,下面是bash shell处理这些文件的次序:

1./etc/profile

2.$HOME/.bash_profile

3.$HOME/.bash_login

4.$HOME/.profile

其中/etc/profile文件是系统默认的bash shell的主启动文件,系统上的每个用户登录时都会执行这个启动文件,另外三个启动文件是用户专有的。例如,每个用户可以配置自己专属的jdk和tomcat等。

1)、/etc/profile

  profile文件有一个复杂的特性,有个for语句,会逐一访问/etc/profile.d目录的每个文件,它为Linux系统提供了一个集中存放用户登录时要执行的应用专属的启动文件的地方。这些基本跟系统的特定应用有关,大部分应用会创建两个启动文件,一个给bash shell用,一个给c shell用,

2)、$HOME目录下的启动文件

  大多数Linux发行版只用这三个启动文件中的一个;每个用户可以编辑这些文件并添加自己的环境变量来给她们启动每个bash shell会话。

.bash_profile文件:此文件会先去检查HOME目录下是否还有一个叫.bashrc的启动文件,如果有的话,启动文件会先去执行.bashrc文件中的命令,然后将一个目录添加到了PATH环境变量。

二、交互式shell

如果bash shell不是登录系统时启动该的,比如在命令行提示符下输入bash命令启动,这个启动的shell称作交互式shell,这种情况下不会去启动/etc/profile文件,而会去用户的HOME目录下检查bashrc是否存在。此文件有两个作用:

1.查看/etc目录下的共用bashrc文件

2.为用户提供了一个定制自己的命令别名和私有脚本函数的地方。

通用的/etc/bashrc启动文件会被系统上每个启动交互式shell会话的用户执行

三、非交互式shell

系统执行shell脚本时用的就是这种shell。这种情况下不需要担心它没有命令行提示符,但当每次在系统上运行脚本时仍然要运行特定的启动命令,为了处理这种情况,bash shell提供了BASE_ENV环境变量,当shell启动一个非交互式shell进程时,它会检查这个环境变量来查看要执行的启动文件,如果有指定的,shell会执行文件里的命令。

启动bash shell的三种方式下,检查的启动文件的更多相关文章

  1. 09_Hadoop启动或停止的三种方式及启动脚本

    1.Hadoop启动或停止 1)第一种方式 分别启动 HDFS 和 MapReduce,命令如下: 启动: $ start-dfs.sh $ start-mapred.sh 停止: $ stop-ma ...

  2. AndroidStudio中添加依赖的三种方式以及如何引入so文件和arr文件

    AndroidStudio中添加依赖的三个选项,如图:    分别为:库依赖(Library dependency).文件依赖(File dependency)和module依赖(Module dep ...

  3. QTP--启动IE浏览器的三种方式

    第一种方式  创建浏览器对象模式 如果提示无法创建对象时需要先打开对象.   Set ie = CreateObject("InternetExplorer.Application" ...

  4. 前端js,css文件合并三种方式,bat命令

    前端js,css文件合并三种方式,bat命令 前端js文件该如何合并三个方式如下:1. 一个大文件,所有js合并成一个大文件,所有页面都引用它.2. 各个页面大文件,各自页面合并生成自己所需js的大文 ...

  5. jquery.validate+jquery.form提交的三种方式

    原文:http://www.cnblogs.com/datoubaba/archive/2012/06/06/2538873.html jquery.validate+jquery.form提交的三种 ...

  6. ActiveMQ持久化消息的三种方式

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt362 本文只介绍三种方式,分别是持久化为文件,MYSql,Oracle.下面 ...

  7. Ajax上传数据和上传文件(三种方式)

    Ajax向后端发送数据可以有三种方式:原生Ajax方式,jQuery Ajax方式,iframe+form 方式(伪造Ajax方式) <!DOCTYPE html> <html la ...

  8. 三种方式配置Mac OS X的启动项

    在Mac OS X中,有三种方式来实现启动项的配置:1)Login Items:2)StartupItems:3)launchd daemon. 1.Login Items 打开System Pref ...

  9. 【整理】Linux下中文检索引擎coreseek4安装,以及PHP使用sphinx的三种方式(sphinxapi,sphinx的php扩展,SphinxSe作为mysql存储引擎)

          一,软件准备 coreseek4.1 (包含coreseek测试版和mmseg最新版本,以及测试数据包[内置中文分词与搜索.单字切分.mysql数据源.python数据源.RT实时索引等测 ...

随机推荐

  1. [PY3]——合并多个字典或映射(collections模块中的ChainMap 类)

    问题 现在有多个字典或者映射,你想将它们从逻辑上合并为一个单一的映射后执行某些操作, 比如查找值或者检查某些键是否存在. 解决方案 使用 collections 模块中的 ChainMap 类 Cha ...

  2. 转载:BIO | NIO | AIO

    http://my.oschina.net/bluesky0leon/blog/132361 也谈BIO | NIO | AIO (Java版)   转载自:zheng-lee博客 发布时间: 201 ...

  3. jquery操作radio单选按钮,实现取值,动态选中,动态删除的各种方法

    本文主要讲的是在jquery里操作表单radio单选按钮的各种方法,如获取选中的radio的值,动态选中指定的radio项等. 1.获取选中的radio单选按钮的值: var v=$(":r ...

  4. Cookie,Sesstion,Application 缓存。

    Cookie客户端缓存. 1.引言 随着浏览器的处理能力不断增强,越来越多的网站开始考虑将数据存储在「客户端」,那么久不得不谈本地存储了. 本地存储的好处: 一是避免取回数据前页面一片空白,如果不需要 ...

  5. java加载redis以及基本操作

    前言: Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server).Redis的键值可以包括字符串(st ...

  6. linux ubuntu 安装nginx

    参考原文 在Ubuntu下安装Nginx有以下方法,但是如果想要安装最新版本的就必须下载源码包编译安装. 一.基于APT源安装 sudo apt-get install nginx 安装好的文件位置: ...

  7. Dubbo 体验(一)

    最近新加入一个项目组,所使用的是Dubbo,采用的架构是分布式架构,数据库采用MySQL分片.之前也接触过一下,但为了能更好融入团队,所以找Dubbo官网看文档. 才发现Dubbo的官网已搬去apac ...

  8. python中参数传递的方法

    Python中函数传递参数的形式主要有以下五种,分别为位置传递,关键字传递,默认值传递,不定参数传递(包裹传递)和解包裹传递. 1.位置传递实例: def fun(a,b,c) return a+b+ ...

  9. web第一章(html)

    HTML介绍 HyperText(超文本) Markup(标记) Language(语音) 类似于XML都是由标签组成 xml:是可扩展标记语言,标签可以任意自定义 HTML:不可以使用任意标签,学习 ...

  10. CSS属性之padding

    0.inline元素中的padding 大家都知道padding对于block元素和inline-block元素的影响,而对于inline元素,padding只会在水平方向产生影响,垂直方向不会产生影 ...