linux的.bashrc和profile文件理解

本文详细介绍了Linux中.bashrc和profile文件的作用,以及如何配置环境变量。通过一系列实验,解释了这两个文件对用户环境变量的影响,特别是对Java命令的可用性。同时提到了Ubuntu环境下其他相关配置文件的功能和执行顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很早之前整理的笔记,还是放在博客上比较好,也和大家分享下

关于.bashrc文件的说明

每一个用户在进入home目录后,其中都会有一个隐藏文件.bashrc
按ctrl+h可以显示隐藏文件,该文件保存该用户角色下的环境变量,所以直接打开终端时,运行的命令都是从这个.bashrc中去寻找。因此,解压jdk后,需要将环境变量配置在.bashrc中,以便终端能够使用javac,java等命令。
<1>在任意位置(该用户在任意位置都是打开同一个bashrc文件)打开终端,输入:gedit ~/.bashrc
<2>将环境变量添加进去
<3>保存退出
<4>source ~/.bashrc让文件生效
<5>再次打开终端,输入java,javac,java -verson都可以运行

另外一种情况:在任意位置打开终端后,输入su root切换到管理员后,这时候你输入java,java -version可以运行,但是javac不能运行,这是因为管理员和普通模式不是同一个角色,用户各自不同的.bashrc文件。
解决办法:在任意位置打开终端后,输入su root切换到管理员,然后:
<1>输入:gedit ~/.bashrc
<2>将环境变量添加进去
<3>保存退出
<4>source ~/.bashrc让文件生效
<5>再次打开终端,切换到管理员模式,输入java,javac,java -verson都可以运行
可以发现:两次打开的.bashrc文件是不同的文件。
提示:通过输入echo $JAVA_HOME可以查看JAVA_HOME设置的路径,从而检查是否有错

关于etc/profile文件的说明:

/etc/profile:此文件为系统的每个用户设置环境信息,全局(公有)配置,不管是哪个用户,登录时都会读取该文件。

实验一:现在删除普通用户的.bashrc中的jdk配置并生效和root用户的.bashrc中的jdk配置并生效,同时删除profile中的jdk配置并生效
结果:在普通用户下和root用户下输入javac均不能运行,进入etc目录,运行source profile后,再运行javac还是不能运行。

实验二:在实验一情况下,往profile中添加jdk配置并生效
结果:在普通用户和root用户下输入javac均不能运行,但是如果先进入etc目录,运行source profile后,再运行javac则能运行。
说明:往profile中添加jdk配置并生效后,普通用户和root用户只有首先主动运行source profile后,才能运行javac命令,可以理解为要首先加载profile文件,这样其中的jdk配置就会被加载,从而可以运行javac命令。
profile文件虽然是针对所有(全局)用户,但是还是需要用户主动使用source profile加载后其中的配置才会生效。

实验三:在实验一的情况下,往普通用户的.bashrc中添加jdk配置并生效
结果:普通用户下,javac可以运行,root用户下javac不能运行。

实验四:在实验一的情况下,往root用户的.bashrc中添加jdk配置并生效
结果:普通用户下,javac不能运行,root用户下javac可以运行

实验五:在实验一的情况下,分别往普通用户的.bashrc中和root用户的.bashrc中添加jdk配置并生效
结果:普通用户和root用户下javac均可以运行

关于Ubuntu的环境变量的说明:

拥有这种功能的文件常见的有如下几个:
/etc/environment 或 /etc/profile 或 /etc/bash.bashrc 或~/.profile 或 ~/.bashrc等。
/etc/environment–>是系统在登录时读取的第一个文件,用于为所有进程设置环境变量。系统使用此文件时并不是执行此文件中的命令,而是根据KEY=VALUE模式的代码,对KEY赋值以VALUE,因此文件中如果要定义PATH环境变量,只需加入一行形如PATH=$PATH:/xxx/bin的代码即可。
/etc/profile–>是系统登录时执行的第二个文件,可以用于设定针对全系统所有用户的环境变量。
/etc/bash.bashrc–>是针对所有用户的bash初始化文件,在此中设定的环境变量将应用于所有用户的shell中,此文件会在用户每次打开shell时执行一次。(环境变量设置在这里可以保证一定有效)为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
~/.profile–>是对应当前登录用户的profile文件,用于定制当前用户的个人工作环境。每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!
~/.bashrc–>是对应当前登录用户的bash初始化文件,当用户每次打开shell时,系统都会执行此文件一次。该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
那么根据以上描述,这几个文件的执行先后顺序应当是:
/etc/enviroment –>/etc/profile –>~/.profile –>/etc/bash.bashrc–> ~/.bashrc

关于修改环境变量的说明:

一:用于当前终端:
在当前终端中输入:export PATH= PATH:<>exportNDKROOT=/home/jiang/soft/Androidndkr8e使.bashrcPATHvi /.bashrcexportPATH=<>: PATH
如果要加入多个路径,只要:
export PATH=<你要加入的路径1>:<你要加入的路径2>: …… :$PATH
当中每个路径要以冒号分隔。这样每次登录都会生效
三:用于所有用户:/etc/bash.bashrc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值