Linux打开shell时读取配置文件的顺序_第1页
Linux打开shell时读取配置文件的顺序_第2页
Linux打开shell时读取配置文件的顺序_第3页
Linux打开shell时读取配置文件的顺序_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.之前安装Linux的一些软件时,总要修改Linux的配置文件。当时也是一知半解。而且,网上有些安装教程,会说,修改配置文件后要重启Linux。但事实上是不需要重启的。Linux安装时可能要修改的配置文件:/etc/profile、/etc/bashrc(ubuntu没有这个文件,对应地,其有/etc/bash.bashrc文件。我用的是ubuntu系统,所以下面将一律使用/etc/bash.bashrc来叙述)、/.bash_profile、/.bash_login、/.profile、/.bashrc。我的ubuntu系统(版本为10.04)默认情况下,只有/etc/profile、/et

2、c/bash.bahsrc、/.profile、/.bashrc这四个文件。其他文件可以创建。现在来简单说一下这些配置文件。这些文件的作用这些文件的作用有很多,比如环境变量的设定、定制符合自己风格的shell、还可以设置缩写功能,那个ll命令是 ls alF命令的缩写。相信大家最关心这些文件在安装软件时候的作用。为什么要配置这些文件?配置后,要不要重启Linux才能使得生效。要弄清这些问题。首先要知道打开一个终端或者打开一个新shell时(注意,两者是不同的。比如在终端里输入bash,会进入一个新shell。此时并没有打开新终端),会读取到哪些文件。之所以是要配置这些文件,是因为这些软件要在环

3、境变量中添加属于自己的信息,或者新建一个属于自己的环境变量(如安装JDK时要新建一个JAVA_HOME环境变量)。系统会根据环境变量里的值,找到软件的一些文件的路径。这些文件的访问顺序测试如果对测试过程没兴趣的,直接跳过这一步,到结论部分看结论。分别在这个四个文件的最后,加入一个新的环境变量TESTBASH。每一个文件都为这个环境变量加入不同的值。如下图所示:/etc/profile /etc/bash.bashrc /.profile /.bashrc 都保存后,在原来这个终端输入$export(这个命令可以用来导入和查看环境变量),并没有在输出中看到这个TESTBASH。现在输入$bash

4、 ,打开一个新的shell。再输入$export 可以看到输出已经有这个环境变量了(如果在一大串输出中没有找到这个TESTBASH,那么就用命令$echo $TESTBASH)。并且,该环境变量的值为: /etc/bash.bashrc:/home/luotuo/.bashrc。现在打开一个新的 终端。输入$export 可以看到其结果和输入$bash命令,再输入$export 一样。只有其中两项。现在输入$su root 切换到root用户。再输入$export 其结果是在原来的基础上加上了 /home/luotuo/.bashrc:/etc/bash.bashrc。输入$exit 退出ro

5、ot。然后再输入$su l root 切换到root用户,此时输入$export 看到其结果仅仅为 /etc/bash.bashrc:/etc/profile。(这两种方式是不同的。分别叫做non login shell和login shell。另外,在终端输入bash打开一个新的shell也是non login )现在是时候重启Linux了。重启之后,在终端输入 $export ,其结果为:已经有/etc/profile和/etc/bash.bashrc了。此时,输入$bash 打开一个新的shell 。再输入$export .可以看到:是在原来的基础上加入了 /etc/bash.bashr

6、c:/home/luotuo/.bashrc输入$exit 退出这个shell(注意,此时这个终端是没有被关闭了。因为在这个终端打开了两个shell。一个exit只能退出一个).此时,输入$su root 切换到root用户。然后再输入$export 。可以看到输出为: 在原来的基础上加入了/home/luotuo/.bashrc:/etc/bash.bashrc。这个加入的顺序和前面的打开一个新shell是相反的。现在输入$pwd ,可以看到其路径为:现在输入$exit 退出这个root。然后输入$su l root 切换到root用户。此时再输入$export 其结果为:现在输入$pwd,

7、可以看到其路径为:两者有不同的路径。后者是转到了root用户的用户目录下,而前者还是在之前所在的目录。结论从测试过程可以看到。打开一个新的shell(包括打开一个新终端和在终端上输入bash),都会重新读取 /etc/bash.bashrc 和 /.bashrc文件里面的内容。而Linux启动登录时会读取/etc/profile 和/.profile文件的内容。所以,在测试的时候,重启登录时会读取/etc/profile和/.profile文件的内容(此时并不读取/etc/bash.bashrc和/.bashrc文件)。然后再打开终端时,会去读取/etc/bash.bashrc 和 /.bas

8、hrc文件。这就出现了那种结果。使用login和non login术语来说,就是使用login 方式是会读取/etc/profile 和 /.profile文件。使用non login方式的话,会读取/etc/bash.bashrc 和 /.bashrc文件的内容。也就是说/etc/profile 和 /.profile文件是在login时才会读取。所以,在不使用su命令的情况下,只有在Linux启动登录的时候才会被读取(这也就导致了有些软件安装后,要重启才能生效)。因为我的ubuntu没有 /.bash_profile 和 /.bash_login文件。如果有这两个文件的话,那么用login

9、方式登录,将只读取 /.bash_profile 、/.bash_login、/.profile三个中的一个。其读取顺序在上面的排序顺序。说了这么多。到讲 安装软件时的修改这些文件的配置信息 了。安装软件修改这个文件,一般是为了在这个文件中添加用于那些软件的环境变量。在这些配置文件中都可以添加环境变量。但由于,有些文件会被读取,有些文件却不会被读取(这个上面已经说了),所以在不同文件下的配置信息的有效性或者说生效日期就有所不同了。这也导致了在这些文件添加配置信息,要不要重启的问题。如果是在/etc/bash.bashrc 和 /.bashrc文件中添加配置信息,那么打开一个新的shell,就生效了,可以用了(因为打开新的shell会读取这个两个文件)。也可以输入 $source /etc/bash.bashrc 或者 $. /etc/bash.bashrc命令( .和/之间还有一个空格)来使得在本shell中,也可以生效使用。如果是在/etc/profile 和 /.profile 文件中添加配置信息。那么就只能重启了。因为这个两个文件只会在login 下才会读取。当然,也是可以使用$source

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论