与用户登录shell相关的文件/etc/profile,~/bashrc等浅析

简介:

    在linux中,用户的登录也就是登录shell,是通过按次序的读取配置文件,根据文件设定用户的环境,从而来完成登录。配置文件对系统非常重要,而对我们系统工程师来讲,理解他们也是至关重要的,通过配置文件我们就可以知道系统是怎么启动的,用户时怎么登陆的。顾名思义,所谓全局配置文件,是对所有用户生效,是用户登录后的默认环境,可以通过编辑文件配置。而个人的配置文件只对当前用户生效,用户也可以自己更改自己的环境配置信息。下面我们来讨论用户登录所读取的文件及各文件的作用:

与用户登录相关的全局配置文件:/etc/profile,/etc/profile.d,/etc/bashrc等。

 
与用户登录相关的个人配置文件:~/.bash_profile,~/.bashrc,~/.bash_logout(退出用到)等
 
首先我们呢来说一下登录shell的类型:交互式登录和非交互式登录
 
一:交互式登录shell:就是可以与shell进行交互,需要验证的登录。有:
1,通过控制台或远程连接,需要用户名,密码。
2,su - username(可看做交互式登录)  
 
交互式登录依次读取的文件为:/etc/profile-->/etc/profile.d/*-->(~/.bash_profile | ~/.bash_login | ~/.profile)-->~/.bashrc-->/etc/bashrc-->~/.bash_logout
这几种文件的作用分别是:
1,/etc/profile:当用户登录系统后,通常使用这个文件给给用户提供默认的环境。这个默认环境实际上就是一组环境变量的定义,最后会调用/etc/profile.d中的文件。文件作用于全部用户。文件中的各环境变量的意思如下:
    PATH:根据UID设定PATH要不要到含有sbin的系统命令目录
 
    USER:根据当前登陆用户名设置。
 
  MAIL:根据用户账号设置当前用户的邮件存放目录。
 
  HISTSIZE:是指保存历史命令记录的条数。
 
  LOGNAME:是指当前用户的登录名。
 
  HOSTNAME:内容是/bin/hostname,如果要用到主机名的话,通常是从这个环境变量中来取得的。
    
    INPUTRC:如果用户没有自定义输入的按键功能,则设置INPUTRC=/etc/inputrc,此文件定义bash的热键等数据,有的话就不设置。
   
 2,/etc/profile.d:主要是对shell的设置,作用于全部用户。其中,这个目录文件中有一个lang.sh脚本会调用文件/etc/sysconfig/i18n,这是一个觉得我们bash默认使用何种语系的重要配置文件,文件中重要的是LANG变量的设置。
 
3,~/.bash_profile:当用户登录时,该文件仅仅执行一次,默认情况下,他设置一些环境变量,执行用户的.bashrc文件,作用于当前用户。如果这个文件不存在会读取~/.bash_login,这个文件还不存在的话读取~./profile。
 
4,~/.bashrc: 当用户登录时以及每次打开新的shell时,该该文件被读取。存有改用户的的所有的命令别名等;作用于当前用户。
 
5,/etc/bashrc:为运行bash shell的用户执行此文件,对bash进行设置.当bash shell被打开时,该文件被读取。作用于所有用户。
 
6,~/.bash_logout:当用户退出bash时读取该文件,执行一些操作。作用于当前用户。
 
 
二,非交互式登录shell:就是用户获取shell后,一次性读取全部文件,不与用户进行交互。例:
1,su username(可看做非交互式shell)  
2,执行脚本的shell
3,图形界面下打开的模拟shell 
 
非交互式登录依次读取的文件为: ~/.bashrc-->/etc/bashrc-->/etc/profile.d/*
各文件对用户shell登录的作用和交互式登录时的作用相同(需要说明的是./bashrc文件会调用/etc/bashrc文件)









本文转自 leejia1989 51CTO博客,原文链接:http://blog.51cto.com/leejia/777700,如需转载请自行联系原作者
目录
相关文章
|
26天前
|
Shell Linux API
【Shell 命令集合 备份压缩 】Linux 解压缩文件 unzip命令 使用指南
【Shell 命令集合 备份压缩 】Linux 解压缩文件 unzip命令 使用指南
48 0
|
26天前
|
Shell Linux C语言
【Shell 命令集合 备份压缩 】Linux 归档和解档文件 cpio命令 使用指南
【Shell 命令集合 备份压缩 】Linux 归档和解档文件 cpio命令 使用指南
38 0
|
26天前
|
算法 Linux Shell
【Shell 命令集合 备份压缩 】Linux 压缩.Z文件 compress命令 使用指南
【Shell 命令集合 备份压缩 】Linux 压缩.Z文件 compress命令 使用指南
32 0
|
26天前
|
Shell Linux C语言
【Shell 命令集合 设备管理 】Linux 创建设备文件 MAKEDEV命令 使用指南
【Shell 命令集合 设备管理 】Linux 创建设备文件 MAKEDEV命令 使用指南
33 0
|
27天前
|
存储 Shell Linux
【Shell 命令集合 磁盘管理 】Linux 压缩zip文件 mazip命令使用教程
【Shell 命令集合 磁盘管理 】Linux 压缩zip文件 mazip命令使用教程
31 0
|
26天前
|
Shell Linux C语言
【Shell 命令集合 系统设置 】Linux 创建Kickstart文件mkkickstart命令 使用指南
【Shell 命令集合 系统设置 】Linux 创建Kickstart文件mkkickstart命令 使用指南
31 0
|
26天前
|
存储 Shell Linux
【Shell 命令集合 备份压缩 】Linux 解码uuencode编码的文件 uudecode 命令 使用指南
【Shell 命令集合 备份压缩 】Linux 解码uuencode编码的文件 uudecode 命令 使用指南
28 0
|
26天前
|
安全 Shell Linux
【Shell 命令集合 备份压缩 】Linux将可执行文件压缩成gzip格式 gzexe命令 使用指南
【Shell 命令集合 备份压缩 】Linux将可执行文件压缩成gzip格式 gzexe命令 使用指南
35 0
|
26天前
|
Shell Linux C语言
【Shell 命令集合 网络通讯 】Linux 查看系统中的UUCP日志文件 uulog命令 使用指南
【Shell 命令集合 网络通讯 】Linux 查看系统中的UUCP日志文件 uulog命令 使用指南
29 0
|
26天前
|
Shell Linux API
【Shell 命令集合 磁盘维护 】Linux 查找指定目录下的所有符号链接文件 symlinks 命令使用教程
【Shell 命令集合 磁盘维护 】Linux 查找指定目录下的所有符号链接文件 symlinks 命令使用教程
31 1