linux启动读取文件顺序

linux执行文件要读取的文件

1.加载固件和硬件设备 通过引导设备找到引导程序

2.引导程序,通过加载操作系统内核和初始化RAM磁盘作为根文件系统

3.内核启动参数 通过引导程序传递参数影响内核行为

4./etc/fstab 系统查看文件的挂载点和挂载选项 启动时进行

5.自启动文件 /etc/rc.d 和/etc/ini.d 

6./etc/inittab或/etcc/event.d文件 指定系统再不同运行级别运行什么进程 不同运行级别对应不同的系统版本 例如单用户模式和多用户模式 # ubuntu20.04没有这两个文件

7/etc/profile和~/.bashrc 文件 对用户的shell进行初始化和环境变量设置

8.~/.bash_profile和~./bash_login 文件用于个别用户的shell环境初始化 用户登录时会读取内容

9./etc/sysctl.confi : 文件包含了内核参数的配置会读取该文件的配置

思路: 加载固件和硬件找到引导设备 - 引导设备找到引导程序 - 引导程序开启调整参数开启内核 - 查看文件挂载 - 查看文件自启动 - 查看文件进程运行级别 - 查看shell环境文件 - 查看用户初始读取文件 - 查看文件内核参数

固硬发引导设备-引导程序-引导程序调内核-文件挂载 -文件启动 - 运行级别 -shell初始化 - shell的读取 - 系统内核文件

/etc/profile  

设置每个用户的环境变量,用户第一次登录时,文件就会被执行 从/etc/profile.d目录中读取信息

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "${PS1-}" ]; then    #tips1.ps1
  if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

tips1.PS1 属于环境变量 (promt string 1) 是等待用户输入时的提示信息 还有类似的PS2,3,4在链接查看

(12条消息) BASH脚本基础:环境变量PS1介绍_ps1 bash_淼叔的博客-CSDN博客

/etc/bashrc 

为每一个运行bash shell的用户都执行一次,每开启一个终端就会读取一次

/etc/enviorment和/etc/profile的区别

enviorment时环境变量 不属于用户的,例如系统的一些信息等就需要读取/etc/enviorment

profile文件是设置所有用户的变量 

登陆系统是,shell进程读取环境文件顺序为

交互式shell : /etc/profile -> /etc/profile.d -> ~./bash_profile -> ~/.bash_login -> ~/.profile

解析: 1.首先进入全局变量的/etc/profile读取环境变量 根据其内容确定是否还要读取额外的目录例如/etc/profile.d 或者/etc/inputrc ( 配置键盘映射的文件) 

2.进入到专属用户的环境变量配置,首先读取~/.bash_profile文件 读取失败再读取 ~/.bash_login ~/.profile文件 三个文件仅有读取优先关系

posted @ 2023-07-08 10:26  lisenMiller  阅读(219)  评论(0编辑  收藏  举报