Linux知识:/root/.bashrc与/etc/profile的异同

要搞清bashrc与profile的区别,首先要弄明白什么是交互式shell和非交互式shell,什么是login shell 和non-login shell。

交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。 shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。

bashrc与profile都用于保存用户的环境信息,bashrc用于交互式non-loginshell,而profile用于交互式login shell。系统中存在许多bashrc和profile文件,下面逐一介绍:

/etc/pro此文件为系统的每个用户设置环境信息,当第一个用户登录时,该文件被执行.
并从/etc/profile.d目录的配置文件中搜集shell的设置.
/etc/bashrc:为每一个运行bash shell的用户执行此文件. www.linuxidc.com 当bash shell被打开时,该文件被读取。有些linux版本中的/etc目录下已经没有了bashrc文件。
~/. pro每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该
文件仅仅执行一次!默认情况下,它设置一些环境变量,然后执行用户的.bashrc文件.
~/.bashrc:该文件包含专用于某个用户的bash shell的bash信息,当该用户登录时以及每次打开新的shell时,该文件被读取.

另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.

profile文件是在用户登录的时候进行初始化的,/etc/profile和~/.profile分别对应所有用户和单个用户。而~/.bashrc 文件,则是在每次启动一个shell的时候,对环境进行初始化,感觉,有些像windows下面那些特殊的cmd窗口,比如.net调试的cmd窗口。而我正好要在图形界面下面执行程序,并且是系统一启动就进入桌面环境的。这样一来,.bashrc就没有被执行,我配置的环境变量当然也就还在家里休息了。

最新文章

  1. 用scikit-learn学习DBSCAN聚类
  2. C扩展python的module和Type
  3. linux线程同步(2)-条件变量
  4. Unity3D项目开发一点经验
  5. 20145215《Java程序设计》第8周学习总结
  6. JQuery通过$(xxx...)返回对象
  7. Android_adb详解
  8. cocos2d-x 3.X(一)环境搭建问题
  9. SKAction
  10. hdoj 5392 Infoplane in Tina Town
  11. Http UDP还是TCP
  12. iOS 页面间传值 之 属性传值,代理传值
  13. allegro
  14. 哈希表的C语言实现
  15. Delphi 把字符串读到流中的操作。
  16. 利用@media screen实现网页布局的自适应,@media screen and
  17. RPC技术
  18. asp.net MVC漏油配置总结
  19. 玛雅游戏[NOIP2011]
  20. localhost,127.x.x.x和 0.0.0.0区别

热门文章

  1. NFR
  2. Json对象与Json字符串互转(4种转换方式)
  3. Debain下解决sublime无法输入中文
  4. Mac上安装MySQL记录
  5. 学习sql中的排列组合,在园子里搜着看于是。。。
  6. 阿里云yum源安装
  7. [数据分析]excel带名称的四象限散点图制作
  8. MMORPG大型游戏设计与开发(服务器 AI 事件)
  9. VPN 部署方案
  10. ngx_http_core_module模块.md