profile、bash_profile、bashrc的用途与区别

当登入系统获得一个shell进程时,其读取环境设定档如下:

登录
交互式非登录Shell
/etc/bashrc
~/.bashrc
登录Shell , 不论是否是交互式的
/etc/profile
/etc/profile.d
~/.bash_profile
~/.bash_login
~/.profile

1. profile文件

1.1 profile文件的作用

profile(/etc/profile),用于设置系统级的环境变量和启动程序,在这个文件下配置会对所有用户生效。

当用户登录(login)时,文件会被执行,并从/etc/profile.d目录的配置文件中查找shell设置。

1.2 在profile中添加环境变量

一般不建议/etc/profile文件中添加环境变量,因为在这个文件中添加的设置会对所有用户起作用。

当必须添加时,我们可以按以下方式添加:

如配置JAVA环境变量:

export JAVA_HOME=/usr/softinstall/jdk1.8.0_231

添加时,可以在行尾使用;号,也可以不使用。

一个变量名可以对应多个变量值,多个变量值需要使用:进行分隔。

添加环境变量后,需要重新登录才能生效,也可以使用source命令强制立即生效:

source /etc/profile

查看是否生效可以使用echo命令:

$ echo $JAVA_HOME

2. bashrc文件

bashrc文件用于配置函数或别名。bashrc文件有两种级别:

系统级的位于/etc/bashrc用户级的位于~/.bashrc,两者分别会对所有用户和当前用户生效。

bashrc文件只会对指定的shell类型起作用,bashrc只会被bash shell调用。

3. bash_profile文件

bash_profile只对单一用户有效,文件存储位于~/.bash_profile,该文件是一个用户级的设置,可以理解为某一个用户的profile目录下。

这个文件同样也可以用于配置环境变量和启动程序,但只针对单个用户有效。

和profile文件类似,bash_profile也会在用户登录(login)时生效,也可以用于设置环境变理。

但与profile不同,bash_profile只会对当前用户生效。

4.差异总结

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

2)根据不同使用者帐号,于其home目录内读取~/.bash_profile;

读取失败则会读取~/.bash_login;

再次失败则读取~/.profile(这三个文档设定基本上无差别,仅读取上有优先关系);

3)最后,根据用户帐号读取~/.bashrc

至于~/.profile~/.bashrc都具有个性化定制功能,但~/.profile可以设定本用户专有的路径、环境变量等,它只能登入的时候执行一次。

~/.bashrc也是某用户专有设定文档,可以设定路径、命令别名,每次shell script的执行都会使用它一次。

这三种文件类型的差异用一句话表述就是:

/etc/profile/etc/bashrc 是系统全局环境变量设定;~/.profile~/.bashrc用户home目录下的私有环境变量设定。

说明:
交互式shell:等待用户输入,并执行相应操作的shell
非交互式shell:读取存放在文件中的内容,并根据内容执行相应操作
login shell:需要用户输入用户名以及密码进行下一步操作
non-login shell:无需用户名及密码,运行时用户身份仅拥有低级操作权限(类似于临时工和正式员工的区别)。
 例如:在email服务器上,non-login shell能让用户访问email服务器,使用email服务,但无法登录到主机,能够避免其对主机进行操作而造成损害。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: .bash_profile和.bashrc是两个文件名,用于定制Bash shell的行为和环境。它们通常用于Unix-like系统,如Linux和Mac OS。 .bash_profile是用户的个人配置文件,它位于用户的主目录下。当用户登录时,Bash shell会先读取.bash_profile文件,并执行其中的命令。用户可以在这个文件中设置环境变量、别名、函数等个性化配置。例如,用户可以在.bash_profile中添加export命令来设置环境变量,以便在每次登录时自动定义一些变量。 .bashrcBash shell的运行配置文件,它位于用户的主目录下或者全局配置文件夹中。当用户在已经登录的终端窗口打开新的Bash shell时,Bash shell会读取并执行.bashrc文件中的命令。用户可以在这个文件中定义自己喜欢的别名、函数、命令行选项等配置。例如,用户可以在.bashrc中定义一个别名,使得输入这个别名时会执行一条长而常用的命令。 .bash_profile和.bashrc区别在于执行的时机。.bash_profile只在用户登录时执行一次,而.bashrc在每次打开新的Bash shell时执行。这样设计的目的是为了避免在每次打开新的终端窗口时都执行一次较慢的命令。 总之,.bash_profile和.bashrc是用于配置Bash shell行为和环境的文件,它们的作用是定制化用户的命令行体验,使得用户可以根据自己的需求进行个性化配置。 ### 回答2: .bash_profile 和 .bashrc 都是与 Bash(Unix 和 Linux 操作系统的默认 Shell)相关的配置文件。虽然它们的作用有些重叠,但也有一些区别。 .bash_profile 是用户登录时 Bash 首先加载的文件。它主要用于个人用户特定的登录配置。在这个文件中,我们可以定义一些用户特定的环境变量、别名和函数等配置。这些配置会在用户登录时生效,但在新的终端窗口或会话中并不会重新加载。 .bashrc 是每个新的终端窗口或会话启动时加载的文件。它主要用于每个 Shell 实例通用的配置。在这个文件中,可以定义一些通用的环境变量、别名和函数等配置。这些配置会在每次新的终端窗口或会话启动时生效。 .bash_profile 的加载是在登录时进行的,而 .bashrc 的加载是在每个新的终端窗口或会话启动时进行的。所以,.bash_profile 主要用于用户登录时的个人配置,而 .bashrc 则用于每个新的终端窗口或会话的通用配置。 当我们需要配置一些只与用户登录有关的设置时,我们应该将这些设置放在 .bash_profile 中。而当我们需要配置一些与 Shell 实例无关的通用设置时,我们应该将这些设置放在 .bashrc 中,以保证每个终端窗口或会话启动时都能生效。 总结起来,.bash_profile 是用户登录时 Bash 加载的个人配置文件,而 .bashrc 是每个新的终端窗口或会话启动时加载的通用配置文件。通过合理使用这两个文件,我们可以根据需要定制自己的 Shell 环境。 ### 回答3: .bash_profile和.bashrc是两个与Shell相关的常用配置文件。 .bash_profile是用户登录到系统时,Shell会首先加载和执行的配置文件。它通常用于设置用户的个性化环境变量、加载自定义函数和别名等操作。比如,可以在.bash_profile中定义PATH变量,指定用户首选的路径顺序,还可以加载个人的shell函数、别名和自定义命令等。 .bashrc是每次打开新的终端窗口时都会加载和执行的配置文件。它通常用于设置用户习惯的Shell环境,比如定义用户喜欢的别名、快捷键、自定义提示符等。.bashrc通常会被.bash_profile首先加载,所以在.bash_profile中可以通过source命令引入.bashrc,以确保两个配置文件的设置都能生效。 这两个配置文件的区别在于加载的时机和作用范围。.bash_profile只在用户登录时加载一次,因此它适合于一些只需要设置一次的环境变量和加载自定义函数等操作。而.bashrc在每次打开新的终端窗口时都会加载,所以适合用于定制Shell环境和设置一些与特定终端会话相关的配置。 当用户登录到系统时,Shell会首先加载.bash_profile文件,然后再加载.bashrc文件,以确保用户个性化设置和习惯的Shell环境能够正确生效。通过正确配置这两个文件,用户可以实现自定义的Shell环境,提高工作效率和使用舒适度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值