【总结】/etc/rc.d/rc.local 与 /etc/profile .bash_profile .bashrc 文件执行顺序

登陆shell与交互式非登陆shell的区别

登录shell

所谓登录shell,指的是当用户登录系统时所取的那个 shell。登录shell属于交互式shell。 登录shell将查找4个不同的启动文件来处理其中的命令。

bash shell处理文件的顺序如下:

  1. /etc/profile
  2. /etc/profile.d等待配置文件
  3. $HOME/.bash_profile
  4. $HOME/.bash_login
  5. $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

延伸阅读:

Linux启动过程详解(inittab、rc.sysinit、rcX.d、rc.local)

/etc/rc.d/rc与/etc/rc.d/init.d的关系

Linux开机启动chkconfig命令详解|如何让MySQL、Apache开机启动?

【总结】/etc/rc.d/rc.local 与 /etc/profile .bash_profile .bashrc 文件执行顺序

时间: 2024-08-01 14:25:47

【总结】/etc/rc.d/rc.local 与 /etc/profile .bash_profile .bashrc 文件执行顺序的相关文章

/etc/rc.d/rc与/etc/rc.d/init.d的关系

在这里先解释一下 /etc/rc.d/init.d 里面放的都是什么东西.这个目录存放的是一些脚本,一般是Linux以rpm包安装时设定的一些服务的启动/关闭脚本.系统在安装时装了好多rpm包,这里面就有很多对应的脚本.执行这些脚本可以用来启动.停止.重启这些服务. 前面说到,/etc/rc.d/init.d这个目录下的脚本就类似与windows中的注册表,在系统启动的时候执行.程序运行到这里(init进程读取了运行级别),相信从命名的角度大家也能猜到该运行/etc/rc.d/init.d里面的

/etc/rc.d/rc.local实现oracle 10g自启动

环境:redhat 5.9 64位,oracle 10g 1. 修改dbstart脚本:$ vi $ORACLE_HOME/bin/dbstart#ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracleORACLE_HOME_LISTNER=$ORACLE_HOME 2. 修改/etc/oratab为如下格式:$ vi /etc/oratabSID:$ORACLE_HOME:Y 注:上述SID和$ORACLE_HOME要换成真实内容,例如: orcl:/data

开机挂载mount etc/fstab与/etc/rc.d/rc.local区别

开机挂载mount etc/fstab与/etc/rc.d/rc.local区别差不多,差别就是如果你又程序依赖于NFS的话还是的放到fstab比较好.程序启动先加载/etc/fastab文件. 放stab里面会在程序启动前加载上NFS文件系统,放到rc.local里往往造成程序启动加载时找不到路径一./etc/fstab 参数详解及如何设置开机自动挂载 某些时候当Linux系统下划分了新的分区后,需要将这些分区设置为开机自动挂载,否则,Linux是无法使用新建的分区的. /etc/fstab

/etc/rc.d/rc.local

/etc/rc.d/rc.local 是启动加载文件,当 Linux 启动时自动加载这个文件 [[email protected] ~]# cat /etc/rc.d/rc.localtouch /var/lock/subsys/local ulimit -SHn 65535 /sbin/sysctl -p /root/memcached_start /root/nrpe_start

centos7 /etc/rc.local需要chmod +x /etc/rc.d/rc.local

Centos 7.0设置/etc/rc.local无效问题解决 安装centos7以后按照以往习惯修改rc.local添加开机启动命令,但重启后发现无效,再次重启发现依然如故 检查系统rc.local服务运行情况 systemctl | grep "rc.local" # rc-local.service loaded active running /etc/rc.d/rc.local Compatibility 发现运行正常 随后查看rc.local文件 vim /etc/rc.lo

双网卡centos7 iptables防火墙与/etc/rc.d/rc.local开机运行

chmod a+x /etc/rc.d/rc.localvim /etc/rc.d/rc.localecho 1 > /proc/sys/net/ipv4/ip_forwardiptables -Fiptables -Ziptables -Xiptables -t nat -I POSTROUTING -s 内部网络号/子网掩码位数 -o 出口网卡dev名 -j MASQUERADE 原文地址:http://blog.51cto.com/2484643/2106695

linux-/etc/inittab,rc.sysinit,rc服务类脚本,chkconfig

o yaouyazhuLinux系统启动流程 POST-->BIOS(Boot Sequence)-->MBR(bootloader,446)-->Kernel-->initrd-->(ROOTFS)/sbin/init(/etc/inittab) Kernel初始化的过程:1.设备探测2.驱动初始化(可能会从initrd(initramfs)文件中装载驱动模块)3.以只读挂载根文件系统:4.装载第一个进程init(PID:1)  (rw重新挂载rootfs) initrd初

/etc/rc.d/rc.sysinit

[[email protected] ~]# ls /etc/rc.d/rc.sysinit /etc/rc.d/rc.sysinit [[email protected] ~]# [[email protected] ~]# ls /etc/rc.d/rc.sysinit /etc/rc.d/rc.sysinit [[email protected] ~]# cat /etc/rc.d/rc.sysinit #!/bin/bash # # /etc/rc.d/rc.sysinit - run

Visual Studio 2012 RC 中RC表示什么意思

来自:http://zhidao.baidu.com/question/507233956.html Release Candidate 缩写为 RC ,经常用于计算机软件方面,表示软件的候选发布版. 一般情况下,Beta版发布于软件的开发后期阶段,会根据用户需求和测试结果增加新的功能.这个阶段处于RC版本发布之前.RC版发布于软件的正式定稿之前,不会再加入新的功能或模块,主要是为了清除BUG(漏洞或错误).这个阶段过后发布的就是正式版了. C