Linux下永久生效环境变量bashrc

本文详细介绍Linux系统的环境配置方法,包括.bashrc文件的功能与修改、PATH环境变量的设置与使用、alias别名的创建以及自定义提示符的方法。通过本文,读者可以了解如何更好地管理和定制自己的Linux工作环境。

1) .bashrc文件

    在linux系统普通用户目录(cd /home/xxx)或root用户目录(cd /root)下,用指令ls -al可以看到4个隐藏文件,

    .bash_history   记录之前输入的命令

    .bash_logout    当你退出时执行的命令

    .bash_profile    当你登入shell时执行

    .bashrc             当你登入shell时执行

      请注意后两个的区别:'.bash_profile'只在会话开始时被读取一次,而'.bashrc'则每次打开新的终端时,都要被读取。

      这些文件是每一位用户对终端功能和属性设置,修改.bashrc可以改变环境变量PATH、别名alias和提示符。具体如何修改会在下面做介绍。

      除了可以修改用户目录下的.bashrc文件外,还可以修改如“/etc/profile”文件、“/etc/bashrc”文件及目录“/etc /profile.d”下的文件。但是修改/etc路径下的配置文件将会应用到整个系统,属于系统级的配置,而修改用户目录下的.bashrc则只是限制在用户应用上,属于用户级设置。两者在应用范围上有所区别,建议如需修改的话,修改用户目录下的.bashrc,即无需root权限,也不会影响其他用户。

2) PATH环境变量修改

       PATH变量决定了shell 将到哪些目录中寻找命令或程序。如果要执行的命令的目录在 $PATH 中,您就不必输入这个命令的完整路径,直接输入命令就可以了。一些第三方软件没有将可执行文件放到 Linux 的标准目录中。因此,将这些非标准的安装目录添加到 $PATH 是一种解决的办法。此外,您也将看到如何处理一般的环境变量。

首先,作为惯例,所有环境变量名都是大写。由于 Linux 区分大小写,这点您要留意。当然,您可以自己定义一些变量,如'$path'、'$pAtH',但 shell 不会理睬这些变量。

第二点是变量名有时候以'$'开头,但有时又不是。当设置一个变量时,直接用名称,而不需要加“$”,如

export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/local/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

PATH=/usr/bin:/usr/local/bin:/bin”(不需要双引号啊)

假如要获取变量值的话,就要在变量名前加'$':
       “echo $PATH”
       则会显示当前设置的PATH变量“/usr/bin:/usr/local/bin:/bin”

否则的话,变量名就会被当作普通文本了:
       “echo PATH”
       显示“PATH”
       处理 $PATH 变量要注意的第三点是:您不能只替换变量,而是要将新的字符串添加到原来的值中。在大多数情况下,您不能用“PATH=/some /directory”,因为这将删除 $PATH 中其他的所有目录,这样您在该终端运行程序时,就不得不给出完整路径。所以,只能作添加:“PATH=$PATH:/some/directory”,假如你要添加/usr/local/arm/3.4.1/bin交叉编译命令,则操作为“PATH=$PATH:/usr/local/arm/3.4.1/bin”
这样,PATH 被设成当前的值(以 $PATH 来表示)+新添的目录。

到目前为止,你只为当前终端设置了新的 $PATH 变量。如果您打开一个新的终端,运行 echo $PATH ,将显示旧的 $PATH 值,而看不到你刚才添加的新目录。因为你先前定义的是一个局部环境变量(仅限于当前的终端)。

要定义一个全局变量,使在以后打开的终端中生效,您需要将局部变量输出(export),可以用"export"命令:

       export PATH=$PATH:/some/directory

现在如果打开一个新的终端,输入 echo $PATH ,也能看到新设置的$PATH 了。请注意,命令'export'只能改变当前终端及以后运行的终端里的变量。对于已经运行的终端没有作用。

       为了将目录永久添加到 $PATH ,只要将"export"的那行添加到.bashrc或/etc/bashrc文件中。

3) alias别名

       一般在.bashrc或/etc/bashrc文件里有几句话

       alias rm='rm -i'

       alias cp='cp -i'

       alias mv='mv -i'

       有了这几句话,当在终端中输入“mv test.c led.c”实际上输入的是“mv -i test.c led.c”,所以说alias是一个别名。你可以在该配置文件中添加自己风格的别名,如“alias ll='ls -l'”,只需要在终端中输入“ll”就实现了“ls -l”的功能。还可以添加其他语句,随自己喜好。

4)提示符

当打开一个控制台(console) 时,最先看到的就是提示符(prompt),如:[root@localhost ~]#

在默认设置下,提示符将显示用户名、主机名(默认是'localhost')、当前所在目录(在 Unix 中,'~'表示您的 home 目录)。

按照传统,最后一个字符可以标识普通用户($),还是'root'(#)。

可以通过 $PS1 变量来设置提示符。

命令“echo $PS1”,将显示当前的设定。其中可用字符的含义在 man bash 的'PROMPTING'部分有说明。

如何才能完成理想的设置呢?对于健忘的初学者来讲,默认设定有些不友好,因为提示符只显示当前目录的最后一部分。如果你看到象这样的提示符

      [wsf@localhost bin]$
      则当前目录可能是'/bin'、'/usr/bin'、'/usr/local/bin'及'/usr/X11R6/bin'。当然,你可以用

pwd (输出当前目录,print working directory)

能不能叫 shell 自动告诉你当前目录呢?

当然可以。这里我将提到的设定,包括提示符,大都包含在文件'/etc/bashrc'中。您可以通过编辑各自 home 目录下的'.bash_profile'和'.bashrc'来改变设置。

在 man bash 中的'PROMPTING'部分,对这些参数(parameter)有详细说明。您可以加入一些小玩意,如不同格式的当前时间,命令的历史记录号,甚至不同的颜色。

一种更适当的设定:
       PS1="[\u: \w]\\$ "
      这样,提示符就变成:
      [wsf: /usr/bin]$
      你可以通过命令 export 来测试不同的设置(比如,export PS1="\u: \w\\$ ")。如果找到了适合的提示符,就将设置放到您的'.bashrc''中。这样,每次打开控制台或终端窗口时,都会生效。



http://www.cnblogs.com/yymn/p/5698623.html

<think>嗯,用户问的是如何在Linux中通过bashrc永久修改环境变量。这个问题看起来挺常见的,但作为新手可能需要详细的步骤指导。首先,我得确认自己对这个过程的理解是否正确。 首先,环境变量Linux中通常是在shell会话中设置的,而.bashrc文件是用户目录下的一个脚本文件,每次启动bash shell时都会执行。所以修改这个文件可以让环境变量在每次登录时自动加载,达到永久生效的效果。不过,用户可能不太清楚具体的步骤,或者容易犯一些常见的错误,比如没有正确编辑文件,或者忘记应用更改。 接下来,我需要分步骤解释整个过程。第一步应该是找到并打开.bashrc文件,通常位于用户的主目录下,可以用nano或者vim这样的文本编辑器。然后,用户需要在文件末尾添加导出环境变量的命令,比如export PATH="$PATH:/新的路径"。这里要注意语法是否正确,变量名和值之间不能有空格,路径要用双引号括起来,尤其是当路径中有空格的时候。 然后,保存文件后,用户需要让修改立即生效,而不必重新登录。这时候可以用source命令或者重新打开终端。如果用户不执行这一步,可能发现变量没有更新,导致困惑。所以这个步骤必须强调。 另外,可能需要解释如何检查变量是否设置成功,可以用echo $变量名来查看。同时,提醒用户如果修改的是PATH变量,要注意不要覆盖原有的PATH,而是应该追加新的路径,使用$PATH:新路径的方式。 还有可能用户会混淆.bashrc和.bash_profile的区别,这时候需要简单说明两者的不同,.bashrc适用于交互式非登录shell,而.bash_profile适用于登录shell。但大多数情况下,修改.bashrc是足够的。 另外,安全问题也需要提及,比如不要随意添加不可信的路径到PATH,避免安全风险。还有,如果用户误操作导致.bashrc出错,可能会影响终端的使用,所以建议备份文件。 最后,用户可能需要一个实际的例子来帮助理解,比如添加一个自定义的脚本目录到PATH中。通过具体的例子,用户可以更清楚地看到每一步的操作和效果。 总结来说,回答需要结构清晰,步骤明确,注意事项和常见问题也要覆盖到,确保用户能够正确且安全地修改环境变量。</think>以下是在Linux中使用`.bashrc`文件永久修改环境变量的分步指南: ### 一、理解核心概念 1. **环境变量**:存储系统运行所需的关键参数(如`PATH`、`JAVA_HOME`等) 2. **.bashrc文件**: - 位于用户主目录(`~/.bashrc`) - 每次启动Bash shell时自动执行 - 修改后需重新加载才能生效 ### 二、操作步骤 1. **打开.bashrc文件** ```bash nano ~/.bashrc ``` 或使用其他编辑器(vim/gedit) 2. **添加环境变量** 在文件末尾添加(以添加Python路径为例): ```bash export PYTHON_HOME="/usr/local/python3.10" export PATH="$PYTHON_HOME/bin:$PATH" ``` 3. **保存并退出** - Nano:`Ctrl+X` → `Y` → `Enter` - Vim:`:wq` 4. **立即生效** ```bash source ~/.bashrc ``` ### 三、验证修改 ```bash echo $PYTHON_HOME # 应显示设置的路径 which python3 # 检查路径是否生效 ``` ### 四、注意事项 1. **PATH变量优先级** - `$PATH:新路径`:追加到末尾 - `新路径:$PATH`:优先使用新路径 2. **系统级变量** 需要全局生效时: ```bash sudo nano /etc/profile ``` 3. **特殊变量** ```bash export CLASSPATH=".:/usr/share/java" # Java类路径示例 ``` ### 五、故障排查 1. 路径无效 → 检查文件是否存在 2. 变量未生效 → 重新执行`source` 3. 语法错误 → 检查等号两边无空格 ### 六、高级技巧 1. **条件设置**(避免重复添加): ```bash if [[ ":$PATH:" != *":/custom/path:"* ]]; then PATH="/custom/path:$PATH" fi ``` 2. **多用户共享**: ```bash echo 'export API_KEY="12345"' >> /etc/profile.d/custom_vars.sh ``` 通过以上步骤即可实现环境变量永久配置,此方法适用于所有基于Bash的Linux发行版(Ubuntu/CentOS等)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值