Linux启动配置文件
Linux启动配置文件描述启动文件一般指系统启动或用户登录等所执行配置文件;如系统配置/etc/profile,用户配置~/.profile启动文件分类当登入Linux系统启动一个bash shell时,bash会在启动文件或环境文件中查找命令,根据启动bash shell方式不同,bash检查的启动文件也不同/etc/profile系统默认的bash shell主启动文件,系统每个用户每次登录时
Linux启动配置文件
描述
启动文件一般指系统启动或用户登录等所执行配置文件;
如系统配置/etc/profile
,用户配置~/.profile
启动文件分类
当登入Linux系统启动一个bash shell时,bash会在启动文件或环境文件中查找命令,
根据启动bash shell方式不同,bash检查的启动文件也不同
-
/etc/profile
系统默认的bash shell主启动文件,系统每个用户每次登录时都会执行;
/etc/profile
文件中都会迭代执行/etc/profile.d
目录下的文件; -
$HOME/.bash_profle
H O M E 目 录 的 启 动 文 件 , 提 供 一 个 用 户 专 属 的 启 动 文 件 来 定 义 用 户 所 用 到 的 环 境 变 量 ; ‘ HOME目录的启动文件,提供一个用户专属的启动文件来定义用户所用到的环境变量; ` HOME目录的启动文件,提供一个用户专属的启动文件来定义用户所用到的环境变量;‘HOME/.bash_profle文件会执行
$HOME/.bashrc`目录下的文件; -
/etc/rc.local
设置整个系统的环境信息,在系统启动时被读取,与登录用户无关; -
/etc/environment
设置整个系统的环境信息,在系统启动时被读取,与登录用户无关; -
/etc/bashrc
针对所有用户的bash Shell初始化文件,任何用户每次登录或打开新的Shell时执行该文件; -
$HOME/.bashrc
该文件设置用户bash shell的bash信息,在用户每次登录时或打开新的Shell时执行该文件; -
$HOME/.bash_logout
在用户每次退出登录的时候执行该文件;
shell分类
-
登录式shell
直接通过用户名、密码进行登录Linux操作系统的shell;
登录式shell会执行/etc/profile
、$HOME/.bash_profle
、/etc/bashrc
、$HOME/.bashrc
示例[root@localhost ~]#ssh git@172.16.36.2 git@172.16.36.2's password: Last login: Fri Jul 23 11:23:21 2021 from 172.16.36.25 i am /etc/profile @@@@@@@@@@@@@@@@@@@@ i am /etc/bashrc @@@@@@@@@@@@@@@@@ i am /home/git/.bashrc %%%%%%%%%%%%%%%%%%%%%%%% i am /home/git/.bash_profile %%%%%%%%%%%%%%%%%%%%%%%% [git@centos-36_2 ~]$ [git@centos-36_2 ~]$ grep 'i am' /etc/profile echo "i am /etc/profile @@@@@@@@@@@@@@@@@@@@" [git@centos-36_2 ~]$ grep 'i am' /etc/bashrc echo "i am /etc/bashrc @@@@@@@@@@@@@@@@@" [git@centos-36_2 ~]$ grep 'i am' /home/git/.bash_profile echo "i am /home/git/.bash_profile %%%%%%%%%%%%%%%%%%%%%%%%" [git@centos-36_2 ~]$ grep 'i am' /home/git/.bashrc echo "i am /home/git/.bashrc %%%%%%%%%%%%%%%%%%%%%%%%" [git@centos-36_2 ~]$
-
交互式shell
bash shell不是登录时启动的,如直接在命令行提示下敲入bash启动;
交互式shell会执行/etc/bashrc
、$HOME/.bashrc
ps --forest展示子shell间的嵌套关系;
示例
[git@centos-36_2 ~]$ grep 'i am' /etc/bashrc echo "i am /etc/bashrc @@@@@@@@@@@@@@@@@" [git@centos-36_2 ~]$ grep 'i am' /home/git/.bashrc echo "i am /home/git/.bashrc %%%%%%%%%%%%%%%%%%%%%%%%" [git@centos-36_2 ~]$ [git@centos-36_2 ~]$ bash i am /etc/bashrc @@@@@@@@@@@@@@@@@ i am /home/git/.bashrc %%%%%%%%%%%%%%%%%%%%%%%% [git@centos-36_2 ~]$
-
非交互式shell
系统执行shell脚本用的shell,无命令提示符;
bash shell提供BASH_ENV环境变量,启动非交互式shell时,检查这个环境变量来查看要执行的文件;
一般shell脚本通过启动子shell执行,子shell可继承父shell的变量,所以一般很少设置BASH_ENV;示例:
[gao@centos-36_2 ~]$ cat gaogao.sh #!/bin/bash echo "this is a test shell!!!!" [gao@centos-36_2 ~]$ cat myenv.sh #!/bin/bash echo "this is a bash_env test" [gao@centos-36_2 ~]$ ./gaogao.sh this is a test shell!!!! [gaokangkang@centos-36_2 ~]$ echo $BASH_ENV <br /> [gao@centos-36_2 ~]$ ./gaogao.sh this is a test shell!!!! #未设置BASH_ENV时,仅执行gaogao.sh [gao@centos-36_2 ~]$ [gao@centos-36_2 ~]$ BASH_ENV="/home/gao/myenv.sh" [gao@centos-36_2 ~]$ export BASH_ENV [gao@centos-36_2 ~]$ echo $BASH_ENV /home/gao/myenv.sh [gao@centos-36_2 ~]$ ./gaogao.sh this is a bash_env test #设置BASH_ENV后,优先执行myenv.sh再执行gaogao.sh this is a test shell!!!! [gao@centos-36_2 ~]$
更多推荐
所有评论(0)