Bash Shell启动配置脚本的顺序
1、Bash检查环境变量文件的方式,取决于系统运行Shell的方式,通常系统运行Shell有3种方式:
)通过系统用户登陆后默认运行的Shell
)非登陆交互式运行Shell
)执行脚本运行非交互式Shell
2、第一种情况下,当用户登录Linux系统时,Shell会作为登陆Shell启动,此时Shell加载配置文件的顺序:
)首先加载/etc/profile,这是linux系统默认的Shell主配置文件,每个登陆用户都会加载。
)加载1后,才会执行/etc/profile.d目录下的脚本文件,这个目录下有很多脚本,都是需要用户登陆后立即运行的脚本。
)之后运行$HOME/.bash_profile,这个文件里会调用$HOME/.bashrc(如果有,则执行,如果没有,则不执行),在$HOME/.bashrc文件中又会去找/etc/bashrc(同样是如果有,就执行,没有,就不执行)。
3、如果用户的Shell不是登陆时启动的,如:手动敲下bash时启动的,或者其他不需要输入密码的登陆,远程SSH连接等情况,这种非登陆Shell只会加载$HOME/.bashrc,并会去找/etc/bashrc,情况如2.3所示。
4、如果希望在非登陆Shell中也可以读到设置的环境变量等内容,就需要将变量设定等写入$HOME/.bashrc或者/etc/bashrc,而不是HOME/.bash_profile或者/etc/profile
5、配置文件中,常用export来定义环境变量,export的作用是将变量输出到Shell的所有进程中。
Bash Shell启动配置脚本的顺序的更多相关文章
- Linux 常用命令解析和Bash Shell使用示例脚本演示
摘要 Linux命令是基于文本格式输入输出的一种程序,依照Unix哲学中强调的程序功能简单,输入宽松,输出严谨,各种程序组合能够具有更强大的功能,而具有这样的灵活性的主要原因是Linux规定程序 ...
- linux系统配置之bash shell的配置(centos)
linux系统开机启动过程的最后阶段会由init进程根据启动方案(运行级:0-6)启动许多基本的服务程序,为用户提供各种各样的服务.在启动这些服务的最后会启动一个为用户提供操作环境的服务,用户就是通过 ...
- 分享Memcached shell启动停止脚本
注意:要使用这个shell,必须先成功建立memcache环境 1>建立memcached文件和权限 [root@luozhonghua ~]# touch /etc/init.d/memcac ...
- bash shell:获取当前脚本的绝对路径(pwd/readlink)
有时候,我们需要知道当前执行的输出shell脚本的所在绝对路径,可以用dirname实现. 我们知道 dirname 可以获取一个文件所在的路径,dirname的用处是: 输出已经去除了尾部的”/”字 ...
- 配置和启动脚本(bash shell学习01)
bash是 Bourne Again Shell简称 ,从unix系统的sh发展而来 查看当前shellecho $SHELL查看系统支持的shellcat /etc/shells cd /binls ...
- Linux命令行–基本的bash shell命令
启动shell: /etc/passwd:包含系统用户账户列表以及每个用户的基本配置信息 每个条目有七个字段,每个字段用冒号隔开 用户名 用户密码 用户的系统UID 用户的系统GID 用户的全名 用户 ...
- Linux之bash shell的学习
1.什么是bash shell bash 是Bourne Again Shell的简称,是从unix系统中的sh发展而来,是用户和偶Linux内核交互的工具,用户通过bash操作内核完成系统的使用和 ...
- 【shell编程基础0】bash shell编程的基本配置
前面一篇“shell编程之变量篇”主要讲述下shell编程的变量的基本知识:设置变量的方式,自定义变量和环境变量的差别,变量的替换.删除.测试等. 这一篇主要是讲述在bash shell下的一些基本配 ...
- 《Linux命令行与shell脚本编程大全》- 读书笔记1 - 基本的bash shell 命令
这本书买了好久了,除了刚到手的那几天翻看了一下以外,竟然到今天都没有看过.突然想要写一个shell脚本,发现什么也不会,是时候开始学习了,今天先把最简单的一章再看一遍顺便做一些笔记,明天继续后面的! ...
随机推荐
- python下载文件的三种方法
Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外一种方法 ...
- (LeetCode 160)Intersection of Two Linked Lists
Write a program to find the node at which the intersection of two singly linked lists begins. For ex ...
- 表结构变更后出现的ERROR OGG-01161 Bad column index (88)
2014-07-31 09:38:31 ERROR OGG-01668 PROCESS ABENDING. 2014-07-31 09:38:31 ERROR OGG-01161 Bad column ...
- Android面试总结经
自上周怒辞职以后,就開始苦逼的各种面试生涯,生活全然靠私活来接济,时有时没有,真难.还能快乐的玩耍吗.最多一天面试了5家,哎感觉都是不急招人,各种等待通知.好不easy等来一家.还克扣了薪资,从我要的 ...
- spring mvc返回jsonp内容
代码如下: import com.alibaba.fastjson.JSONPObject; @RequestMapping(value = "/method1") @Respon ...
- C++ vector类型要点总结
概述 C++内置的数组支持容器的机制,但是它不支持容器抽象的语义.要解决此问题我们自己实现这样的类.在标准C++中,用容器向量(vector)实现. 容器向量也是一个类模板.vector是C++标准模 ...
- iOS 应用上传所需 Icon图片大小
iPhone-only Apps Include the following in your application's Resources group in the Xcode project: T ...
- js立即执行函数应用--事件绑定
js中立即执行函数的应用:应用到事件绑定上. 少说多做,直接运行代码(代码中有注释): <!DOCTYPE html> <html lang="zh"> & ...
- Form.ShowDialog(this)
有时遇到一种情况,.ShowDialog()不显示.也不报错.例如以下: <span style="font-size:14px;"> private void but ...
- Openerp 7.0消息推送
在一个文档的state变化时,需要将变化情况告知关注用户,通过研究account.invoice的代码,发现是经过如下过程实现此功能的: 1.添加一个消息阶段: <record id=" ...