bash环境变量配置文件

bash环境变量配置⽂件
1、bash 的两种属性
1.1 登录属性
  登录式:是需要⽤户名、密码登录后才能进⼊的shell(或者通过–login”选项⽣成的shell)。
1. 直接通过终端输⼊账号密码登录
2. 使⽤ “su - UserName” 切换的⽤户
  ⾮登录式:不需要输⼊⽤户名和密码即可打开的Shell,例如:直接命令“bash”就是打开⼀个新的⾮登录shell,在Gnome或KDE中打开⼀个“终端”(terminal)窗⼝程序也是⼀个⾮登录shell。会继承上⼀个shell的全部变量。
1. su UserName
2. 图形界⾯下打开的终端
3. 执⾏脚本 (当我们执⾏脚本的时候.我们就已经进⼊到了⼀个⼦shell)
4. 任何其它的bash实例电力设施保护条例
  执⾏exit命令,退出⼀个shell(登录或⾮登录shell);
  执⾏logout命令,退出登录shell(不能退出⾮登录shell)。
1.2 交互属性
  交互式:在终端上执⾏,shell等待你的输⼊,并且⽴即执⾏你提交的命令。这种模式被称作交互式是因为shell与⽤户进⾏交互。这种模式也是⼤多数⽤户⾮常熟悉的:登录、执⾏⼀些命令、退出。当你退出后,shell也终⽌了。
  ⾮交互式:以shell script(⾮交互)⽅式执⾏。在这种模式 下,shell不与你进⾏交互,⽽是读取存放在⽂件中的命令,并且执⾏它们。当它读到⽂件的结尾EOF,shell也就终⽌了。
2、bash 的 startup ⽂件【CentOS 7为例】
  Linux shell是⽤户与Linux系统进⾏交互的媒介,⽽bash作为⽬前Linux系统中最常⽤的shell,它⽀持的startup⽂件也并不单⼀,甚⾄让⼈感到费解。
  例如:/etc/profile、/etc/bash.bash_logout、.bash_profile、.bashrc和.bash_logout。
  总的来说,分为两⼤类:“profile”系列和 “rc”系列。
  “profile”系列代表⽂件为:~/.bash_profile,通过 –noprofile 选项可以阻⽌系统加载 “profile” 系列的 startup ⽂件。钢领圈
  原理上讲,【登陆shell】启动时会加载 “profile” 系列的 startup ⽂件,⽽【交互式⾮登陆shell】启动时会加载 “rc” 系列的startup⽂件。
2.1 登录 shell 的 startup ⽂件
  登录时执⾏顺序:/etc/profile -> ~/.bash_profile
  若 ~/.bash_profile 不存在,则换成 ~/.bash_login,还不存在则换成 ~/.profile。也就是说,如果这三个都同时存在,那就只执⾏
轴承座~/.bash_profile。
  登出时执⾏顺序:~/.bash_logout -> /etc/bash.bash_logout。
  如果是⾮交互的登录 shell,则没有登出这个过程。
2.2 ⾮登录 shell 的 startup ⽂件
  启动 shell 时执⾏:~/.bashrc或–rcfile选项指定的⽂件。
  “rc” 系列 startup ⽂件还包括 /etc/bashrc。但是系统并不直接调⽤这个⽂件,⽽是通过~/.bashrc ⽂件显式地调⽤它。
3、startup ⽂件的默认调⽤关系质量风险管理
  startup⽂件的加载并不像上⾯所述的那样简单。这是因为在CentOS中,startup⽂件之间还存在着默认的显式调⽤关系,它们是:
1. ~/.bash_profile显式调⽤~/.bashrc⽂件;
eq32. ~/.bashrc显式调⽤/etc/bashrc⽂件;
  “profile”系列⽂件的主要⽬的在于为【登录shell】设置环境变量和启动程序;⽽“rc”系列⽂件的主要⽬的在于设置功能和别名。关于上班这件事
  Linux中“rc”是英⽂“run command”的缩写,表⽰⽂件中存放需要执⾏的命令。其实这也⾮常符合逻辑,
设置功能就要执⾏shopt命令,⽽设置别名要执⾏alias命令。与“rc”系列互补,“profile”系列⽤来设置环境变量,它不会去调⽤这两个命令,但却经常需要使⽤export语句。
  这两个⽂件同时提到了⼀个位置:/etc/profile.d⽬录。这个⽬录⽤于存放个性化配置脚本,你可以把⾃⼰需要的全局配置放⼊以.sh结尾的⽂件中,系统在执⾏/etc/profile和/etc/bashrc⽂件时,都会择机调⽤它们。这样做最⼤的好处是便于维护,⽽且相对更加安全。
4、最后
  对于【登录shell】⽽⾔,“交互式”执⾏“登陆”和“登出”相关的“profile”系列startup⽂件,“⾮交互式”只执⾏“登陆”相关的“profile”系列startup⽂件;
  对于【⾮登陆shell】⽽⾔,“交互式”执⾏“rc”系列的startup⽂件,⽽“⾮交互式”执⾏的配置⽂件由环境变量BASH_ENV指定。
  Linux中startup⽂件区分全局和个⼈:全局startup⽂件放在/etc⽬录下,⽤于设置所有⽤户共同的配置,除⾮你清楚地知道你在做的事情,否则不要轻易改动它们;个⼈startup⽂件放在~⽬录下,⽤于设置某个⽤户的个性化配置。
  ~/.bash_profile会显式调⽤~/.bashrc⽂件,⽽~/.bashrc⼜会显式调⽤/etc/bashrc⽂件,这是为了让所
有交互式界⾯看起来⼀样。⽆论你是从远程登录(登陆shell),还是从图形界⾯打开终端(⾮登陆shell),你都拥有相同的提⽰符,因为环境变量PS1在/etc/bashrc⽂件中被统⼀设置过。

本文发布于:2024-09-22 07:15:28,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/257926.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:登录   登陆   需要   命令   设置
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议