linux下.bashrc文件修改和生效

本文介绍了Linux系统中.bashrc文件的作用与配置方法,包括环境变量PATH的设置、命令别名alias的创建以及提示符PS1的个性化设置等内容。

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 不会理睬这些变量。

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

“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”中。这样,每次打开控制台或终端窗口时,都会生效。

(5)举例,生效方式
这个文件主要保存个人的一些个性化设置,如命令别名、路径等。下面是个例子:

# User specific aliases and functions

PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"

LANG=zh_CN.GBK

export PATH LANG

alias rm='rm -i'

alias ls='/bin/ls -F --color=tty --show-control-chars'

例子中定义了路径,语言,命令别名(使用rm删除命令时总是加上-i参数需要

用户确认,使用ls命令列出文件列表时加上颜色显示)。

每次修改.bashrc后,使用source ~/.bashrc(或者 . ~/.bashrc)

就可以立刻加载修改后的设置,使之生效。

一般会在.bash_profile文件中显式调用.bashrc。登陆linux启动bash时首先会

去读取~/.bash_profile文件,这样~/.bashrc也就得到执行了,你的个性化设

置也就生效了。

<think>好的,用户问的是修改.bashrc后如何生效。首先,我需要回忆一下关于bashrc的知识。.bashrc是用户主目录下的一个脚本文件,每当打开新的Bash shell时都会执行,用来设置环境变量、别名、函数等。用户修改.bashrc后,这些更改不会自动应用到当前已经打开的终端会话中,需要手动让配置生效。 接下来,我应该列举几种常见的方法。最直接的方法是使用source命令,也就是source ~/.bashrc或者简写为. ~/.bashrc。这样会重新加载.bashrc文件,立即应用更改。用户可能需要知道这两个命令的区别,但其实它们效果是一样的,点命令是source的另一种写法。 另一种方法是关闭当前终端窗口,重新打开一个新的,这样也会重新加载.bashrc。不过可能用户不想关闭终端,所以前一种方法更实用。需要提醒用户注意,如果修改有误,可能导致终端出现问题,这时候可以新开一个终端来修复。 然后,可能有些用户会混淆.bashrc.bash_profile。如果是登录shell,可能会读取.bash_profile,而.bash_profile通常又会调用.bashrc。这时候如果用户修改的是.bash_profile,可能需要重新登录或者使用source ~/.bash_profile。不过用户的问题明确是.bashrc,所以这部分可能作为额外信息提及,但不需要深入,除非用户问到。 另外,可能需要检查是否有语法错误。比如在修改.bashrc后,如果source命令执行出错,可能是脚本里有错误。这时候可以建议用户使用bash -x ~/.bashrc来调试,或者检查错误信息。但用户的问题是如何生效,所以这可能作为故障排除的部分提到。 用户可能的潜在需求是希望他们的更改立即生效,而不需要重启终端或系统。所以重点放在source命令上。同时,要确保用户明白每次修改后都需要执行这个步骤,除非他们打开新的终端窗口。 可能还需要提到持久性生效的问题,即修改.bashrc后,以后所有新的终端都会应用这些更改,所以只需要做一次source,之后的新终端会自动加载。这样用户不用担心每次都要执行命令。 总结回答的结构应该是:先说明为什么需要手动生效,然后给出两种方法(source命令重启终端),再补充可能的注意事项,比如检查错误,或者不同文件之间的区别。确保用中文,步骤清晰,没有使用任何Markdown格式,行内公式用$...$,独立公式用$$...$$,但这个问题可能不需要数学公式,所以可能不需要用。不过根据系统指令,如果有变量或代码,需要用正确的格式。比如命令名称如source、. 或者文件路径如~/.bashrc,应该用行内代码块,但用户不可见层要求使用$...$,可能是指数学表达式,但这里可能不需要,所以主要注意中文字符的正确使用结构清晰。</think>修改`.bashrc`文件后,需通过以下方式使配置生效: ### 方法1:使用`source`命令(推荐) 在终端中执行: ```bash source ~/.bashrc ``` 或简写为: ```bash . ~/.bashrc ``` *作用*:立即重新加载`.bashrc`文件中的配置,无需重启终端。 --- ### 方法2:重启终端 关闭当前终端窗口,重新打开一个新终端。 *原理*:新终端启动时会自动加载最新版本的`.bashrc`。 --- ### 注意事项 1. **验证配置** 若修改包含语法错误(如命令拼写错误),执行`source`时会提示报错,需根据提示修正`.bashrc`文件。 2. **作用范围** `.bashrc`的配置仅对当前用户生效,且对新打开的终端窗口或子进程有效。 3. **与`.bash_profile`的区别** 如果系统为「登录式Shell」(如SSH登录),可能优先读取`~/.bash_profile`。若需全局生效,可在此文件中添加: ```bash if [ -f ~/.bashrc ]; then . ~/.bashrc fi ``` --- ### 总结步骤 1. 保存修改后的`.bashrc`文件 2. 执行`source ~/.bashrc`或重启终端 3. 测试新配置是否生效(如输入自定义别名或查看环境变量)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值