zoukankan      html  css  js  c++  java
  • Linux 系统中环境变量/etc/profile、/etc/bashrc、~/.bashrc的区别

     

     
    /etc/profile、/etc/bashrc、~/.bashrc的区别
     
    1> etc目录下存放系统管理和配置文件 (系统配置)
    etc/profile:  profile为所有的用户设置系统范围的环境变量和启动顺序,当用户登录时读取该文件,这个文件对每个shell都有效。

     /etc/bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。也就是说,当用户shell执行了bash时,运行这个文件。

     总结如下:
    /etc/profile 作用域大于/etc/bashrc。
     /etc/profile 是所有用户登录时加载配置环境,/etc/bashrc 是所有用户在执行bash shell 时,加载配置环境。

    2> ~/.bashrc(用户配置)
    该文件存储的是专属于个人bash shell的信息,当登录时以及每次打开一个新的shell时,执行这个文件,在这个文件里可以自定义用户专属的个人信息。
     
    修改/etc路径下的配置文件将会应用到整个系统,属于系统级的配置,而修改用户目录下的.bashrc则只是限制在用户应用上,属于用户级设置。两者在应用范围上有所区别,建议如需修改的话,修改用户目录下的.bashrc,即无需root权限,也不会影响其他用户。
     
    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文件中。

      使用命令:

      sudo gedit ~/.bashrc

     
     
     
     
    参考文章:https://blog.csdn.net/py_tamir/article/details/89298799?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1
     
         https://www.cnblogs.com/yuemw/p/8081219.html
  • 相关阅读:
    使用缓冲流和byte数组,拷贝文件
    java-类名的正确使用
    java-if语句调试
    java-if...else if...else语句调试
    java-打印101-200之间的素数(PrimeNumber),并统计个数,并每5行输出
    java-打印101-200之间的素数(PrimeNumber)
    冒泡排序-while实现
    冒泡排序-java实现
    java-求一组整数中的最大值
    python学习笔记之集合
  • 原文地址:https://www.cnblogs.com/guan-zl/p/12663011.html
Copyright © 2011-2022 走看看