/etc/rc.d/rc.local 与 /etc/profile .bash_profile .bashrc 文件执行顺序
2014-02-19 14:47
393 查看
登陆shell与交互式非登陆shell的区别
登录shell
所谓登录shell,指的是当用户登录系统时所取的那个 shell。登录shell属于交互式shell。 登录shell将查找4个不同的启动文件来处理其中的命令。 bash shell处理文件的顺序如下:/etc/profile
/etc/profile.d等待配置文件
$HOME/.bash_profile
$HOME/.bash_login
$HOME/.profile
/etc/profile 是bash shell在系统上的主默认启动文 件,系统上 每一个用户在登陆时都将执行此文件。
通过设置这个文件,超级用户可以为全系统内的所有bash用户建立默认特征。不同 Linux版本在此文件放置的命令不尽相同,
在redflag中,该文件设置了几个重要的变量,如:PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC,详情可以查看具体的文件。
其余3个文件具备相同的功能——提供特定于用户的启动文件。大多 数Linux版本只使用其中之一。如:RedFlag使用.bash_profile ubuntu使用.profile .
shell依次查找~/.bash_profile、 ~/.bash_login、 ~/.profile(~是用户主目录的速记符),
并执行它找到的首个文件中的命令。 可以将命令放置在这些文件中以覆盖掉/etc/profile文件中的默认设置。 也就是后面的文件可以覆盖或者修改前面的设置 。
交互式非登录shell
如果启动了一个bash shell而没有等录系统(如在CLI提示符中键入bash),则启动了一个交互式非登录shell.而登录shell的初始化文件(比如.bash_profile)通常会运行这个文件。这样,登录shell和非登录shell都可以使用.bashrc中的命令。
如以X Window环境登录Linux时,在X环境所起动的终端,那些shell都是非登录shell.
在交互式非登录shell中并不执行前面提到的初始化文件中的命令。然而,交互式非登录shell从登录shell继承了由这些初始化文件设置的 shell变量。
$HOME/.bashrc
交互式非登录shell执行~/.bashrc文件中的命令.在每次执行shell脚本时,都会重新读取这个文件,所以是最完整的。
但是万事都不是一样的,debain系列的是不同的,如ubuntu
/etc/profile–</etc/environment–<$HOME/.profile
最后汇总:
/etc/rc.d/rc.local 与 /etc/profile .bash_profile .bashrc 等文件的执行顺序
第一步:通过/boot/vm进行启动 vmlinuz第二步:init /etc/inittab
第三步:启动相应的脚本,并且打开终端
rc.sysinit
rc.d(里面的脚本)
rc.local
第四步:启动login登录界面 login
第五步:在用户登录的时候执行sh脚本的顺序,每次登录的时候都会完全执行的
/etc/profile.d/file
/etc/profile
/etc/bashrc
/root/.bashrc
/root/.bash_profile
相关文章推荐
- 最牛B的Linux Shell命令(一)
- shell中的 /dev/null
- popen——C程序中获取Shell命令的输出
- shell编程中while与for的区别及效率比较
- 鸟哥私房菜基础版-bash
- shell programming tutorial
- Shell编程入门进阶之Grep命令及正则表达式知识梳理
- shell 遇到的基本问题总结
- 使用bat命令或shell脚本调用java程序
- shell制作实时终端会话
- SHELL:tr命令
- Bash Shell 的Ctrl 组合键的命令
- XSHELL和XFTP,亲兄弟啊。
- linux下提示bash:command not found
- linux shell判断目录是否为空的函数
- 一个很不错的bash脚本编写教程,至少没接触过BASH的也能看懂!
- linux shell获取部署服务器进程 及 kill该进程的方法
- shell脚本监控linux系统内存使用情况的方法(不使用nagios监控linux)
- Linux shell读取配置文件使脚本更灵活(刚接触,求更好的办法)
- shell编程笔记-文本处理awk