Linux环境变量知识

7/27/2020 linux

本文主要将讲解下.bash_profile的环境变量,带你了解Linux最基础的知识点。

对于新手开始接触Linux系统,会几个命令就可以了吗?其实除了命令,你需要关注一个知识点:环境变量。

环境变量配置是Linux系统最基础的知识,那么是否你真的懂得如何配置呢?

举个例子:一个普通用户登录后为啥能够执行常规的系统命令,比如ls,cd,为啥可直接使用?

本文将以bash shell环境的.bash_profile来展开介绍环境变量。


# 1.系统环境变量读取顺序

大致的读取路线如下,如果有相同的环境变量名,以最后生效的文件生效为准。

/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc

# 2.系统默认环境变量

如何查看默认的环境变量,需要env这个命令。

$ env
1

这里你会看见几个比较常用的变量值:

HOSTNAME=centos6-test
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
USER=testerzhang
HOME=/opt/testerzhang
PATH=/usr/lib64/qt-
3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/testerzhang/bin
LANG=en_US.UTF-8
1
2
3
4
5
6
7
8
9

变量值说明:

  • HOSTNAME: 主机名
  • SHELL: 使用的SHELL
  • USER:当前用户名
  • HOME:当前用户的家目录
  • PATH:寻找命令的路径列表,注意在LINUX系统下用:分割表示并列。
  • LANG: 语言环境

变量值例子:

1.进入用户家目录

$ cd $HOME
1

2.常用命令-根据$PATH路径进行遍历查找是否有这个命令

$ which ls
alias ls='ls --color=auto'
/bin/ls
1
2
3

如果命令不在默认的路径下,则会提示command not found

$ lsd
-bash: lsd: command not found
1
2

# 3.常用配置

下面以配置用户家目录里的.bash_profile(注意有个点,代表隐藏文件)为例。

# 3.1 配置JAVA变量

export JAVA_HOME=$HOME/3rd/jdk1.8.0_171
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
1
2
3
4

注意:

1.这里的PATH赋值必须要有:$PATH,否则如果生效环境变量,会找不到系统默认命令比如ls,vi。 一旦误操作,需要管理员修改该用户的.bash_profile才可恢复正常。

2.PATH的值注意先后顺序,如果变成export PATH=$PATH:$JAVA_HOME/bin,而操作系统已经安装jdk1.7,那么你执行java命令的时候使用的是系统的JAVA程序,而不是普通用户自己配置的jdk1.8。

# 3.2 配置Python变量

export PYTHONHOME=$HOME/3rd/Python-2.7.11
export PYTHONPATH=$PYTHONHOME/lib/python2.7
export PYTHONUNBUFFERED=1
export PATH=$PYTHONHOME/bin:$PATH
export LD_LIBRARY_PATH=$PYTHONHOME/lib:$LD_LIBRARY_PATH
1
2
3
4
5

说明:

1.LD_LIBRARY_PATH环境变量用于在程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径,注意,LD_LIBRARY_PATH中指定的路径会在系统默认路径之前进行查找。一般c++写的程序用ldd可以查看链接的动态库是多少。

2.LD_LIBRARY_PATH环境变量同样是从配置的先后顺序开始遍历,需要注意配置项值的先后顺序。

# 3.3 别名配置

别名名字可以任意定义,但是不建议和常用的命令冲突,除非你的原本意愿就是覆盖它。

1.比如查看当前用户的进程,可以简单变成一个新的命令pg。

alias pg='ps -ef|grep aiwm'
1

2.想进入一个经常进入的目录,可以简单变成一个新的命令cdci。

alias cdci='cd /opt/testerzhang/.jenkins/workspace'
1

3.grep 搜索的时候显示彩色的关键字。

alias grep='grep --exclude=*.o --exclude=*.so --exclude=*tags* -I --color '
1

# 3.4 优化系统性能配置项

如果我们需要更改默认的ulimit配置,我们可以在.bash_profile里直接加入一些常规的性能配置项,比如:

ulimit -s 2048
ulimit -c 0
1
2

# 4.生效环境变量配置

有两个方式:

方法一:退出当前session,重新登录

方法二:执行生效环境变量的命令

$ source ~/.bash_profile
1

欢迎关注我的公众号testerzhang,原创技术文章第一时间推送。

公众号二维码

Last Updated: 1/1/2022, 11:13:04 PM