关于Linux环境变量

最近在配置开发环境,遇到了很多不懂的问题。主要还是linux操作系统相关的,分享给宝宝们!一提到环境配置就不得不说环境变量,so,今天的主题是环境变量。

linux是一个多用户操作系统。每个用户登录都有一个专用的运行环境。通常每个用户的默认环境是一样的,这个环境其实是该用户的环境变量的定义。用户可以对自己的环境进行定制,就是通过修改相应的系统环境变量。

为了对系统进行方便的配置,linux系统将环境配置分为两类:全局所有用户都公用的配置和每个用户的私有配置。

  • /etc/profile,/etc/bashrc 是系统全局环境变量设定
  • ~/.profile,~/.bashrc是用户家目录下的私有环境变量设定

这四个文件的都是干嘛用的呢?

  • etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从/etc/profile.d目录的配置文件中搜集shell的设置.在这里我们设定是为所有用户可使用的全局变量。profile文件在系统启动时将被运行。可以在里面加入其他命令,但是一定要加正确,不然的话系统会启动不起来的。
  • /etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。
  • ~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。注:~在LINUX下面是代表HOME这个变量的。另外在不同的LINUX操作系统下,这个文件可能是不同的,可能是~/.bash_profile; ~/.bash_login或 ~/.profile其中的一种或几种,如果存在几种的话,那么执行的顺序便是:~/.bash_profile、 ~/.bash_login、 ~/.profile。
  • ~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。

那么这些文件在登入系统时的读取步骤又是怎样呢?

当登入系统时候获得一个shell进程时,其读取环境设定档有三步 :

1.首先读入的是全局环境变量设定档/etc/profile,然后根据其内容读取额外的设定的文档,如 /etc/profile.d和/etc/inputrc

2.然后根据不同使用者帐号,去其家目录读取~/.bash_profile,如果这读取不了就读取~/.bash_login,这个也读取不了才会读取~/.profile,这三个文档设定基本上是一样的,读取有优先关系

3.然后在根据用户帐号读取~/.bashrc

常见的环境变量

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

HOME:当前用户主目录

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

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

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

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

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

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

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

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

# PS1=” Hello,My NewPrompt :)

愿我们有能力不向生活缴械投降---Lin

原文发布于微信公众号 - 女程序员的日常(gh_df41d619fb70)

原文发表时间:2019-03-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券