zoukankan      html  css  js  c++  java
  • Linux系统profile、bashrc、bash_profile等环境设置文件的使用

    一、前言

    关于bash的环境设置文件,分为系统设置个人设置,一般来说建议用户直接修改个人的设置。

    本文测试环境为:centos6.5.

    二、系统设置值

    1. /etc/sysconfig/i18n

    这个文件设置语系数据,一般只有几行:

    LANG="en_US.UTF-8"
    SYSFONT="latarcyrheb-sun16"

    用户自己的语系设置建议不要在这里修改。

    2. /etc/profile

    这个文件设置了几个重要的变量,如PATH、USER、MAIL、HOSTNAME、HISTSIZE、umask等,可以在这里设置总体的PATH等信息,同时也规划了/etc/profile.d这个目录。

    题外话:关于/etc/profile.d的规划,在脚本里面有一句:“if [ "${-#*i}" != "$-" ]; then”,让人丈二和尚摸不着头脑,关于这个语句相关的问题,可以看另外一篇文章:”$-”与shell默认选项

    对这个文件必须小心对待,因为所有用户都会用到,可以将HISTSIZE(历史命令记录条数)设置为50,比较安全。

    3. /etc/bashrc

    确定umaskPS1(命令提示符)的功能和内容。

    4. /etc/profile.d/*.sh

    /etc/profile.d是一个目录,针对bash和C-shell规范了一些数据。譬如,针对颜色、语系,vim及which等命令进行了一些附加设置,如alias之类的规范值。可以自行设置一些具有*.sh文件名的文件来设定自己的系统设置值。

    5. /etc/man.config

    文件的内容确定了使用man的时候,去哪里查看数据的路径设置。一般是在使用tarball方式安装软件时,需要手动把该软件的man page所在的路径,手动添加到这个文件里。

    这就是系统设置常用的几个文件,通常设置完这几个文件需要重启系统,或者使用source命令重新读入。

    三、个人设置值

    个人设置文件一般放在个人家目录的几个隐藏文件中。

    1. ~/.bash_profile,~/.bash_login,~/profile

    这三个文件一般只要一个就可以了,默认是~/.bash_profile,这个文件可以定义个性化的路径PATH与环境变量等等,这三个文件的读取顺序是:先读取~/.bash_profile,找不到就读~/.bash_login,然后才是~/profile。

    2. ~/bashrc

    同样也是定义个性化设置,区别是,在每次执行shell脚本的时候,都会重新读取这个文件,所以是最完整的,而~/.bash_profile只在登录的时候才读取一次。

    3. ~/.bash_history

    记录历史命令的文件,记录的条数与HISTSIZE的设置有关。每次登录bash之后,bash会先读取这个文件,把所有的历史命令读入内存。

    4. ~/.bash_logout

    这个文件记录,“当我注销bash后,系统再帮我做完什么操作后才离开”,可以将一些备份或者认为重要的工作(如清空暂存盘)写到这个文件中。

    四、设置文件的读取顺序

    1. 先读取/etc/profile,在根据/etc/profile的规划,读取其他的附加设置文件,如/etc/profile.d目录下是文件

    2. 根据不同的用户,到家目录去读取~/.bash_profile,~/.bash_login,~/profile之一

    3. 根据不同的用户,到家目录去读取~/.bashrc

    可以看到,登录bash之后,最终读取的设置文件是~/.bashrc,也就是说这个文件里的设置值会是最终的设置值。

    五、登录shell与非登录shell

    1. 登录shell

    当用户登录Linux系统时,所取得的那个shell。

    2. 非登录shell

    登录后,再去执行其他shell,其他shell就是非登录shell,如登录Linux之后,想执行一些数值模拟工作,执行了csh这个shell,这时就取得了非登录shell了。

    3. 登录shell和非登录shell的差异

    读取的环境设置文件不同。登录shell会读取~/.bash_profile,~/.bash_login,~/profile之一,而非登录shell读取的就仅有~/.bashrc,不过现在很多版本的Linux都会将~/.bash_profile的内容指向~/.bashrc中,这样比较简单。

    六、小结

    一般管理系统的时候,都需要跟各种环境变量打交道,这个时候就必须要修改设置文件才能让自己的个性化设置起作用,一般不建议修改系统的设置文件,最好还是修改自己的设置文件,而由于在读取设置文件中,~/.bashrc是最后一个读取的文件,所以一般建议在这个文件添加自己的个性化设置。

    七、参考

    《鸟哥的Linux私房菜_基础学习篇》(第二版)

    (完)

  • 相关阅读:
    vs2017 项目调试浏览器网页闪退Bug
    “WebPageBase”在未引用的程序集中定义。必须添加对程序集“System.Web.WebPages, Version=1.0.0.0,Culture=neutral....."的引用
    SQL Server判断日期是否为周六 周日
    获取各国的日期时间
    .net Api项目初步搭建并移除XML格式
    鼠标滚轮事件
    js中if表达式判断规则
    原生轮播图
    C# uri
    SqlServer 备份还原教程
  • 原文地址:https://www.cnblogs.com/harrymore/p/8732912.html
Copyright © 2011-2022 走看看