linux关于bashrc与profile的区别

我的一些见解
(所有见解仅基于ubuntu16.04)

  1. bashrch和profile都是用于保存环境信息的文件,可以实现个性设置、快捷方式别名,开机自启项等等。

  2. profile和bashrc分
    全局文件:
    /etc/profile/etc/bash.bashrc(ubuntu16.04中bashrc文件改成bash.bashrc)
    用户私人文件:
    ~/.profile~/.bashrc

例如:
在终端中执行:

alias cman='man -M /home/dcr/文档/man/zh_CN'

我就可以在全局(即本用户、root用户、多终端等)用cman命令查询自己下载的中文版man手册,但只能在本次开机时使用,重启后失效。

如果执行:

echo  “alias cman='man -M /home/dcr/文档/man/zh_CN' "  >> ~/.bashrc

就实现了开机执行赋予中文man手册别名命令,但因为~/.bashrc是私人环境信息配置文件,所以cman命令只能在在本用户状态下使用,root等账号使用不了。

如果执行:

echo  “alias cman='man -M /home/dcr/文档/man/zh_CN' "  >> /etc/bash.bashrc

在重启后我依然可以在全局使用cman命令查看中文man手册

  1. profile包含bashrc,见于下图:
    /etc 目录中profile文件内容
    在这里插入图片描述

即执行profile脚本时满足条件后执行.bashrc脚本

~/ 目录中.bashrc文件内容
在这里插入图片描述

资料
qing101hua :~/.bashrc什么意思
要搞清bashrc与profile的区别,首先要弄明白什么是交互式shell非交互式shell,什么是login shellnon-login shell

交互式模式:
shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。

非交互式模式:
shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。

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

/etc/profile:此文件为系统的每个用户设置环境信息,当第一个用户登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置.

/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。有些linux版本中的/etc目录下已经没有了bashrc文件。

~/.profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,它设置一些环境变量,然后执行用户的.bashrc文件.

~/.bashrc:该文件包含专用于某个用户的bash shell的bash信息,当该用户登录时以及每次打开新的shell时,该文件被读取.

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

某网友总结如下:
/etc/profile/etc/bashrc系统全局环境变量设定
~/.profile~/.bashrc用户家目录下的私有环境变量设定

当登入系统时候获得一个shell进程时,其读取环境设定档有三步:

  1. 首先读入的是全局环境变量设定档/etc/profile,然后根据其内容读取额外的设定的文档,如 /etc/profile.d/etc/inputrc

  2. 然后根据不同使用者帐号,去其家目录读取~/.bash_profile,如果这读取不了就读取~/.bash_login,这个也读取不了才会读取 ~/.profile,这三个文档设定基本上是一样的,读取有优先关系

  3. 然后在根据用户帐号读取~/.bashrc 至于~/.profile~/.bashrc的不区别
    都具有个性化定制功能

~/.profile可以设定本用户专有的路径,环境变量,等,它只能登入的时候执行一次
~/.bashrc也是某用户专有设定文档,可以设定路径,命令别名,每次shell script的执行都会使用它一次

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值