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文件 三个文件仅有读取优先关系