忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 视频 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
12下一页
最近访问板块 发新帖
查看: 1924 | 回复: 10

[系统管理] 关于/etc/bashrc和~/.bashrc两个文件的区别 [复制链接]

论坛徽章:
5
程序设计版块每日发帖之星
日期:2016-04-15 06:20:00每日论坛发贴之星
日期:2016-04-15 06:20:0015-16赛季CBA联赛之八一
日期:2016-07-08 09:20:28操作系统版块每日发帖之星
日期:2016-08-03 06:20:002016科比退役纪念章
日期:2016-10-30 13:59:12
发表于 2016-06-30 14:42 |显示全部楼层
/etc/bashrc和~/.bashrc两个文件有什么区别?
我看到的在一些用户的home目录里面,在~/.bashrc里面的内容有的是这样的:
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

我想问一下/etc/bashrc与~/.bashrc有什么区别?

论坛徽章:
68
码神
日期:2017-03-28 10:28:50操作系统版块每日发帖之星
日期:2016-07-09 06:20:00数据库技术版块每日发帖之星
日期:2016-07-07 06:20:00操作系统版块每日发帖之星
日期:2016-07-07 06:20:00操作系统版块每日发帖之星
日期:2016-07-04 06:20:00数据库技术版块每日发帖之星
日期:2016-07-03 06:20:00操作系统版块每日发帖之星
日期:2016-07-03 06:20:00数据库技术版块每日发帖之星
日期:2016-07-02 06:20:00操作系统版块每日发帖之星
日期:2016-07-02 06:20:00每日论坛发贴之星
日期:2016-07-01 06:20:00操作系统版块每日发帖之星
日期:2016-07-01 06:20:0015-16赛季CBA联赛之江苏
日期:2016-06-30 09:25:01
发表于 2016-06-30 15:54 |显示全部楼层
有区别的:
/etc/bashrc 不止用于你的用户,还可以用于其他用户
~/.bashrc 只用于当前用户

论坛徽章:
379
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
发表于 2016-07-05 08:40 |显示全部楼层
~下的是用户的配置文件,/etc下的是所有用户都用的

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2016-07-06 18:29 |显示全部楼层
我自己的理解是bash启动时先读/etc/bashrc,再读~/.bashrc。不知对不对。

论坛徽章:
68
码神
日期:2017-03-28 10:28:50操作系统版块每日发帖之星
日期:2016-07-09 06:20:00数据库技术版块每日发帖之星
日期:2016-07-07 06:20:00操作系统版块每日发帖之星
日期:2016-07-07 06:20:00操作系统版块每日发帖之星
日期:2016-07-04 06:20:00数据库技术版块每日发帖之星
日期:2016-07-03 06:20:00操作系统版块每日发帖之星
日期:2016-07-03 06:20:00数据库技术版块每日发帖之星
日期:2016-07-02 06:20:00操作系统版块每日发帖之星
日期:2016-07-02 06:20:00每日论坛发贴之星
日期:2016-07-01 06:20:00操作系统版块每日发帖之星
日期:2016-07-01 06:20:0015-16赛季CBA联赛之江苏
日期:2016-06-30 09:25:01
发表于 2016-07-11 09:12 |显示全部楼层
应该是只读~/.bashrc,看一下~/.bashrc中的代码:
  1. # .bashrc

  2. # Source global definitions
  3. if [ -f /etc/bashrc ]; then
  4.         . /etc/bashrc
  5. fi
复制代码
只是在~/.bashrc里读取/etc/bashrc,如果注释掉这段代码,那就应该不读取/etc/bashrc。

回复 4# lrz


   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2016-07-13 02:16 |显示全部楼层
cjfeii 发表于 2016-07-11 09:12
应该是只读~/.bashrc,看一下~/.bashrc中的代码:只是在~/.bashrc里读取/etc/bashrc,如果注释掉这段代码, ...


有点奇怪,我查了一下以前我看过的一本书,提到的bash的初始化:
Bourne Again shell的初始化共有8个步骤,初始化文件有/etc/profile、.profile、.bash_profile、.bash_login:
1、bash检查/etc/profile文件是否存在。
2、若存在,shell读取该文件,否则跳过。
3、bash检查主目录下的.bash_profile文件是否存在。
4、若存在,bash读取该文件,否则跳过。
5、bash检查主目录下的.bash_login文件是否存在。
6、若存在,bash读取该文件,否则跳过。
7、bash检查主目录下的.profile文件是否存在。
8、若存在,bash读取该文件,否则跳过。
然后显示提示符“$ ”

没提到bashrc,不过按我以前的理解,linux的程序初始化应该是先读取/etc中的默认设置,再读$HOME的个人设置,人个设置覆盖默认设置完成启动。
刚才看了下我的linux,没/etc/bashrc,只有/etc/bash/bashrc,~/.bashrc没你的那段代码,在/etc/bash/bashrc中加了一句echo "in /etc",再启动个终端,也证实会先读取/etc/bash/bashrc。
你的那段代码有点怪,又用默认的覆盖了个人设置。
in /etc
setterm: 终端 xterm 不支持 --blank
awk函数
system()
system()函数执行一个以表达式给出的命令。返回被执行命令的退出状态。
if (system("mkdir a") != 0)
0lrz@01:20 ~ $

awk是我在~/.bashrc的输出。

论坛徽章:
68
码神
日期:2017-03-28 10:28:50操作系统版块每日发帖之星
日期:2016-07-09 06:20:00数据库技术版块每日发帖之星
日期:2016-07-07 06:20:00操作系统版块每日发帖之星
日期:2016-07-07 06:20:00操作系统版块每日发帖之星
日期:2016-07-04 06:20:00数据库技术版块每日发帖之星
日期:2016-07-03 06:20:00操作系统版块每日发帖之星
日期:2016-07-03 06:20:00数据库技术版块每日发帖之星
日期:2016-07-02 06:20:00操作系统版块每日发帖之星
日期:2016-07-02 06:20:00每日论坛发贴之星
日期:2016-07-01 06:20:00操作系统版块每日发帖之星
日期:2016-07-01 06:20:0015-16赛季CBA联赛之江苏
日期:2016-06-30 09:25:01
发表于 2016-07-13 09:34 |显示全部楼层
你的主机是什么系统?

回复 6# lrz


   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2016-07-14 22:38 |显示全部楼层
gentoo

2lrz@22:56 ~ $bash --version
GNU bash,版本 4.3.46(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2013 Free Software Foundation, Inc.
许可证 GPLv3+: GNU GPL 许可证第三版或者更新版本 <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2016-07-14 22:40 |显示全部楼层
gentoo

2lrz@22:56 ~ $bash --version
GNU bash,版本 4.3.46(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2013 Free Software Foundation, Inc.
许可证 GPLv3+: GNU GPL 许可证第三版或者更新版本 <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2016-07-14 22:42 |显示全部楼层
gentoo
2lrz@22:56 ~ $bash --version
GNU bash,版本 4.3.46(1)-release (x86_64-pc-linux-gnu)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

久等啦!10张门票开启你的DTCC2017之旅

2017中国数据库技术大会将于2017年5月11-13日如约而至,本届大会以“数据驱动•价值发现”为主题,共设定2大主场和21个技术专场,云集海内外120+位技术大牛,共同探讨Oracle、MySQL、NoSQL、云端数据库、区块链、深度学习等领域的前瞻性热点话题。
即日起,填写DTCC2017会前调查问卷,即有机会赢取价值2600元的大会门票1张!仅限10张!
----------------------------------------
活动截止时间:2017年5月5日统一公布

问卷入口>>
  

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP