用户环境配置文件/etc/profile
当用户在登录界面正确地输入用户名和密码后,系统就开始为用户构建一个可以使用的用户环境。用户环境包括用户使用的环境变量、快捷键设置及命令别名等。这些设置大多是通过运行全局用户配置文件/etc/profile及用户主目录中的个人用户配置文件profile文件得到的。
一、全局用户配置文件/etc/profile
/etc/profile是一个全局配置文件,所有用户登录都会使用该文件构建用户环境。这个文件中设置了用户的环境变量、搜索路径等信息。
[root@localhost ~]# cat /etc/profile
# /etc/profile # System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
#设置环境搜索变量PATH函数
pathmunge () {
if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
if [ "$2" = "after" ] ; then
PATH=$PATH:$
else
PATH=$:$PATH
fi
fi
}
#设置变量EUID、UID的值
# ksh workaround
if [ -z "$EUID" -a -x /usr/bin/id ]; then
EUID=`id -u`
UID=`id -ru`
fi
#如果当前登录的是root用户,则为root用户添加相应的环境变量
# Path manipulation
if [ "$EUID" = "" ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
fi
#设置资源限制
# No core files by default
ulimit -S -c > /dev/null >&
#为用户设置环境变量USER、LOGNAME、MAIL
if [ -x /usr/bin/id ]; then
USER="`id -un`"
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
fi
#设置主机名、命令历史长度变量
HOSTNAME=`/bin/hostname`
HISTSIZE=
#环境变量INPUTRC
#该变量主要用于加载快捷键设置
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
INPUTRC=/etc/inputrc
fi
#设置全局变量
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
#载入别名设置
#运行profile.d目录中所有以.sh结尾的脚本
for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
. $i
fi
done
#清除使用过的变量和函数
unset i
unset pathmunge
#以下为后来自己添加到内容
alias type='cat'
#add MPlayer directory
PATH=$PATH:/usr/local/MPlayer/bin
export PATH
二、个人用户配置文件.bash_profile
在每个用户的家目录中,还存在一个配置文件.bash_profile。每个用户登录时,系统都会运行其家目录中的.bash_profile文件,因此这个文件多用于设置用户自己的环境变量。
(1)查看个人用户配置文件的内容:
[zhu@localhost ~]$ cat .bash_profile
# .bash_profile #判断是否存在文件~/.bashrc
#如果存在,则运行该文件
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi # User specific environment and startup programs #为环境变量PATH添加新的搜索目录
PATH=$PATH:$HOME/bin export PATH
alias vi='vim'
[zhu@localhost ~]$
个人用户配置文件的内容相对简单,仅实现了两个功能:其一是运行个人环境变量配置文件.bashrc;其二是为环境变量PATH添加新的搜索路径。
(2)在个人用户配置文件中,调用了另一个文件.bashrc:
[zhu@localhost ~]$ cat .bashrc
# .bashrc #判断是否存在文件/etc/bashrc
#如果存在就执行这个文件
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi # User specific aliases and functions
[zhu@localhost ~]$
在个人环境变量配置文件.bashrc中调用了全局环境变量配置文件/etc/bashrc:
[zhu@localhost ~]$ cat /etc/bashrc
# /etc/bashrc # System wide functions and aliases
# Environment stuff goes in /etc/profile #设置用户的umask值
# By default, we want this to get set.
# Even for non-interactive, non-login shells.
if [ $UID -gt ] && [ "`id -gn`" = "`id -un`" ]; then
umask
else
umask
fi #设置环境变量PS1
# are we an interactive shell?
if [ "$PS1" ]; then
case $TERM in
xterm*)
if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
......
unset i
unset pathmunge
fi
# vim:ts=:sw=
[zhu@localhost ~]$
在全局环境变量配置文件中,设置了用户的权限掩码、环境变量PS1等。
三、定制用户环境
定制用户环境的几点建议:
- 除非肯定以后可以恢复所作的修改,否则不推荐修改全局配置文件。
- 如果确定需要修改全局配置文件,通常建议写入/etc/profile,而不是全局环境变量配置文件/etc/bashrc。因为全局环境变量配置文件是通过个人用户配置文件调用的,很可能某个用户修改了此设置。
- 如果需要做全局性设置,推荐的做法是修改个人用户配置文件,并修改/etc/skel目录中的.bash_profile模板文件。
此处仅提供了几点参考意见,任何人都可以按照自己的想法做,这正是Linux系统的初衷。但前提条件是,能在必要时恢复配置文件的原貌。
用户环境配置文件/etc/profile的更多相关文章
- Linux用户环境配置文件
用户操作环境配置文件: 从/etc/skel目录复制过来 .bashrc 打开新终端 /etc/bashrc .bash_profile 用户登 ...
- ubuntu修改用户环境变量解决音乐播放器Rhythmbox乱码问题
先打开主文件夹 cd /home/user #user是你的用户名 然后编辑用户环境 sudo gedit .profile在打开的文件中添加: export GST_ID3_TAG_ENCODING ...
- Linux 中/etc/profile、~/.bash_profile 等几个环境配置文件的执行过程
环境变量是和Shell紧密相关的,用户登录系统后就启动了一个Shell.对于Linux来说一般是bash,但也可以重新设定或切换到其它的 Shell.对于UNIX,可能是CShelll.环境变量是通过 ...
- linux下系统启动时,几个配置文件 /etc/profile、~/.bash_profile 等几个文件的执行过程,先后顺序
1. 在登录Linux时要执行文件的过程如下: 在刚登录Linux时, 首先启动 /etc/profile 文件, 然后再启动用户目录下的 ~/.bash_profile. ~/.bash_login ...
- Bash环境配置文件
一.环境配置文件读取优先级 其中~/.bash_profile,~/.bash_login,~/.profile三个文件只有一个有效,查找优先级从左至右降低.bash会一直检查是否有~/.bashrc ...
- Linux环境配置文件的理解
百度百科: .bashrc这个文件主要保存个人的一些个性化设置,如命令别名.路径等.也即在同一个服务器上,只对某个用户的个性化设置相关. 示例: 编辑# User specific aliases a ...
- application.properties多环境配置文件、jar包外部配置文件、配置项加密、程序中配置使用
一.简介 spring boot项目application.properties文件存放及使用介绍 二.方法一多环境配置文件 我们一般都会有多个应用环境,开发环境.测试环境.生产环境,各个环境的配置会 ...
- Bash Shell的环境配置文件
login shell:取得bash时需要完整的登录流程 non-login shell:取得bash接口的方法不需要重复登录,举例来说,你以x window登录Linux后,再以x的图形界面启动终端 ...
- shell入门-系统和用户的配置文件
变量分为系统变量和用户自定义变量,他们的配置文件当然分为系统环境变量配置文件和用户环境变量控制文件 1.规定环境变量的配置文件 [root@wangshaojun 111]# vim /etc/pro ...
随机推荐
- linux c编程 -- 线程互斥
#include <stdio.h> #include <pthread.h> #include <unistd.h> #include <stdlib.h& ...
- 25个完美的Opencart模板,让顾客无法抗拒!
在线开展业务是当前的流行趋势.OpenCart(点击这里下载),作为一个流行的开源PHP电子商务系统,获取OpenCart模板不在像以前那么困难了.OpenCart容易安装,模板支持良好,扩展功能包十 ...
- [ZZ] C++ pair
Pair类型概述 pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下: pair<int, string> a; 表示a中有两个类型,第一个元素是int型的 ...
- IDEA使用docker进行调试
背景 手头有个任务,需要用java通过jni调用一个开源算法库gmssl的功能,但是gmssl只提供了源码,需要编译后才能使用.按照通常的做法,我们会部署好centos的虚拟机和开发环境,安装好gms ...
- Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]
mvn war:war命令出错: 原因: maven的web项目默认的webroot是在src\main\webapp.如果在此目录下找不到web.xml就抛出以上的异常. 解决方案: 在pom.xm ...
- 【FFT】专题总结
学了若干天终于学(bei)会了传说中的法法塔 感觉也没那么难用嘛 fft快速傅里叶变换 在大表课件上写就是解决高精乘的工具 其实很有理有据 fft就是用复数的折半引理优化两个多项式相乘的高端东西 他能 ...
- delphi 集合
DELPHI没有JAVA的丰富的集合(SET MAP LIST),只有Tlist,可包装各种类型
- 操作失败,没有该服务权限![ 机构号:99 ,用户ID:50000009 ,服务号:0101030112 ]
操作失败,没有该服务权限![ 机构号:99 ,用户ID:50000009 ,服务号:0101030112 ] 此时我们可以把代码 SERVICE_NO 改成 10个0 即 0000000000 ,就可 ...
- Swift-CALayer十则示例
作者:Scott Gardner 译者:TurtleFromMars原文:CALayer in iOS with Swift: 10 Examples 如你所知,我们在iOS应用中看到的都是视图( ...
- emWin(ucGui)数值显示例程 -【worldsing笔记】
本例程下载:2.emWin5.26(ucGui)VS2008数字显示.zip 在emWin显示文本字符还是容易,我们也可以使用字符串和标准 C 库的函数来显示数值.然而,有时候这会是件困难的事.通 ...