linux profile文件环境变量配置

1、profile 文件

profile 文件位于/etc/目录下 /etc/profile , 当登入系统时候获得一个 shell 进程时,其读取环境profile 文件时候会读取,/etc/bash.bashrc,/etc/profile.d 文件下配置的sh文件,所以我们也可以在profile.d 和bash.bashrc 目录下创建sh文件,配置环境变量

java 复制代码
 # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "$(id -u)" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

作用

profile,路径:/etc/profile,用于设置系统级的环境变量和启动程序,在这个文件下配置会对所有用户生效。

当用户登录(login)时,文件会被执行,并从/etc/profile.d目录的配置文件中查找shell设置。

在profile中设置环境变量

一般不建议在/etc/profile文件中添加环境变量,因为在这个文件中添加的设置会对所有用户起作用。

当必须添加时,我们可以按以下方式添加:

如,添加一个 HOST 值为 xx.cn的环境变量:

export HOST=xx.cn

添加时,可以在行尾使用;号,也可以不使用。一个变量名可以对应多个变量值,多个变量值需要使用:进行分隔。

添加环境变量后,需要重新登录才能生效,也可以使用 source 命令强制立即生效:

source /etc/profile

查看是否生效可以使用 echo 命令:

bash 复制代码
$ echo $HOST
xx.cn

profile 环境变量配置

  1. 使用env命令显示所有的环境变量 。在命令提示符下键入env就行了。

set命令显示所有本地定义的Shell变量。

  1. 常见的环境变量

PATH:决定了shell将到哪些目录中寻找命令或程序

HOME:当前用户主目录

MAIL:是指当前用户的邮件存放目录。

SHELL:是指当前用户用的是哪种Shell。

HISTSIZE:是指保存历史命令记录的条数。

LOGNAME:是指当前用户的登录名。

HOSTNAME:是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。

LANG/LANGUGE:是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。

PS1:是基本提示符,对于root用户是#,对于普通用户是$。

PS2:是附属提示符,默认是">"。可以通过修改此环境变量来修改当前的命令符,比如下列命令会将提示符修改成字符串"Hello,My

NewPrompt : ) "。   # PS1=" Hello,My NewPrompt : ) "

  1. 使用修改.bashrc文件(在用户的家目录下)进行环境变量的编辑,只对当前用户有用。使用修改 /etc/profile 文件进行环境变量的编辑,是对所有用户有用。大家一定要注意区别。

2、bashrc

bashrc 文件用于配置函数或别名。bashrc 文件有两种级别:

  • 系统级
  • 用户级

系统级:系统级的位于/etc/bashrc,对所有用户生效。

用户级:用户级的位于~/.bashrc,仅对当前用户生效。

bashrc 文件只会对指定的 shell 类型起作用,bashrc 只会被 bash shell 调用。

3、bash_profile

bash_profile只对单一用户有效,文件存储位于~/.bash_profile,该文件是一个用户级的设置,可以理解为某一个用户的 profile 目录下。

这个文件同样也可以用于配置环境变量和启动程序,但只针对单个用户有效。和 profile 文件类似,bash_profile 也会在用户登录(login)时生效,也可以用于设置环境变理。但与 profile 不同,bash_profile 只会对当前用户生效。

4、差异总结

这三种文件类型的差异用一句话表述就是:/etc/profile,/etc/bashrc 是系统全局环境变量设定;~/.profile,~/.bashrc用户家目录下的私有环境变量设定。当登入系统时候获得一个 shell 进程时,其读取环境设定档如下:

  • 首先读入全局环境变量设定档/etc/profile,然后根据其内容读取额外的设定的文档,如/etc/profile.d和/etc/inputrc;
  • 根据不同使用者帐号,于其家目录内读取~/.bash_profile;
  • 读取失败则会读取~/.bash_login;
  • 再次失败则读取~/.profile(这三个文档设定基本上无差别,仅读取上有优先关系);
  • 最后,根据用户帐号读取~/.bashrc。

至于 ~/.profile与 ~/.bashrc都具有个性化定制功能,但~/.profile可以设定本用户专有的路径、环境变量等,它只能登入的时候执行一次。

~/.bashrc也是某用户专有设定文档,可以设定路径、命令别名,每次 shell script 的执行都会使用它一次。

相关推荐
a266378962 分钟前
解决yum命令报错“Could not resolve host: mirrorlist.centos.org
linux·运维·centos
上海文顺负载箱16 分钟前
如何评估焊机测试负载均衡性能
运维·负载均衡
铁锤妹妹头发多1 小时前
新手用docker真**难受
运维·docker·容器
2739920291 小时前
Ubuntu20.04 安装build-essential问题
linux
超栈1 小时前
HCIP(11)-期中综合实验(BGP、Peer、OSPF、VLAN、IP、Route-Policy)
运维·网络·网络协议·计算机网络·web安全·网络安全·信息与通信
Cachel wood1 小时前
Github配置ssh key原理及操作步骤
运维·开发语言·数据库·windows·postgresql·ssh·github
编程一生1 小时前
回调数据丢了?
运维·服务器·前端
华为云PaaS服务小智2 小时前
华为大咖说 | 浅谈智能运维技术
运维·华为·华为云
zhd15306915625ff4 小时前
化工厂主要涉及的自动化备件有哪些?
运维·自动化·化工厂
Jason-河山4 小时前
利用API返回值实现商品信息自动化更新:技术与实践
运维·自动化