简介
想要永久生效就要改变配置文件。
注意上图第二个命令.
和配置文件之间有空格,.
的意思就是source的缩写,
如果修改了环境变量的配置文件,只有退出登录再重新登录这个配置文件里内容才会生效。source
的作用就是省略这个登录过程,强制性地让当前这个配置文件直接生效。
比如上图配置文件,环境变量一般都是大写。PATH定义系统查找命令的路径,HISTISIZE也是前面的,历史命令保存条数,PS1提示名,后面主机名。
比如下图,重启以后添加在PATH
后面的/root
就会消失,要永久生效,只能把PATH="$PATH":/root这条命令写入配置文件
如下图,通过set
查到的这些默认的变量都要写入环境变量配置文件它才会永久生效。
系统中的环境变量,配置文件主要有下图五类
只要是保存在/etc
里的,就是下图第1,2,5个,它是对所有登录系统的Linux用户都生效,即每个用户登录都会读取下图第1,2,5这三个文件中针对环境变量的配置,
下图第三四个,~表示用户,比如是root
,那么root
登录时就会读取这两个文件,其他用户登录时不会读取。而且第三四个文件是隐藏文件,所以用.
开头
环境变量配置文件作用
上图最后一行lang.sh
就是调用语言的脚本,旁边/etc/sysconfigi18n
打开就是如下图,表示默认语言环境,中文,UTF-8
/etc/profile
是最主要的默认环境变量,环境变量默认赋值的时候分两种情况,一种是正常的输入用户名和密码登录,第二种是在一个bash
里再写bash
,切换到一个子shell且不用输入用户名和密码,这两种情况读取的文件是不一样的。如果有用户输入用户名,密码就是上图那个流程图,在输入密码之后出现提示符之前,提示符就是下图那一行,先干了几个事儿
第一件事儿就是读取了/etc/profile
这个文件,
下图为vi /etc/profiel
可以看到主要就是下图这些变量
接下来按照上上张PPT改调用的是/root/.bash_profile
它的作用如上图,如果~/.bashrc
存在,即流程图第一行第三个文件,就调用,然后给PATH
新增一个路径。
如果我想把某一个目录作为系统默认搜索的命令的路径永久生效,就可以写在上图PATH
那一行后面接着,记得用冒号分隔开。
按照上面的流程图,接下来调用的就是/root/.bashrc
,打开看看如下图
当然如果不想把用户的别名写入上图这个配置文件当中,也可以写入上面流程图任意一个配置文件中,只要让用户登录的同时让这个别名生效,但是注意如果写到了以/etc/
开头的文件,就会对所有登录用户生效。
所以上图可知这个文件的作用,一是定义别名,一是打开了/etc/bashrc
,即流程图第一行最后一个文件
所以其实这些环境变量PATH
这些写在流程图上任意一个文件内都行,不过要小心,越后面的读取的文件你定义的优先值越高,如果同时在两个文件定义同一个PATH
之类的,后面的会覆盖前面的就像下图
下图为vim /etc/bashrc
注意上图最后一个重新调用/etc/profile.d/*.sh
是针对不需要输入用户密码登录的用户生效。
其他配置文件和登录信息
下图为打开/root/.bash_logout
,这个文件空的,默认什么也没有。比如我想每次登录让系统执行一些比如清空历史命令,把环境变量清空或者其他一些实验,就可以写在这个文件当中,写完之后它注销登录时就会把工作执行一次。
上图为历史命令的保存文件,**这个配置文件是当系统出现问题进行排错的时候一个重要排错手段。**所以不推荐清空这个文件,清一下明文密码,其他不要清。
注意本地终端欢迎信息只对本机有效,远程登录工具无效。
下图为打开/etc/issue
上图这句话就是下图虚拟机登录时的话,注意对比上上图的转义符。
Linux本地支持6个本地字符终端,用Alt+F1
到Alt+F6
切换,但是切换完后很难分辨在哪个终端之中,因为它没有一个明确的提示,所以推荐使用上上图的/l