嵌入式 Linux下永久生效环境变量bashrc

嵌入式 Linux下永久生效环境变量bashrchtml

1) .bashrc文件linux

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

    .bash_history   记录以前输入的命令bash

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

    .bash_profile    当你登入shell时执行spa

    .bashrc             当你登入shell时执行htm

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

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

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

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

相关文章
相关标签/搜索