前言

一直在Linux环境下部署环境,而环境变量配置是最基础的知识,那么是否你真的懂得如何配置呢?

一个普通用户登录后为啥能够执行常规的系统命令,比如ls,cd,这里不讲解Linux系统如何优先读取各种配置文件,下面以bash shell的.bash_profile来展开一些知识。

系统默认环境变量

当一个用户登录Linux系统的bash环境后,如何查看默认的环境变量

  1. $ env

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

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

变量值说明:

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

变量值例子:

  • 进入用户家目录
  1. $ cd $HOME
  • 常用命令-根据$PATH路径进行遍历查找是否有这个命令
  1. $ which ls
  2. alias ls='ls --color=auto'
  3. /bin/ls

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

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

常用配置

下面以配置在.bash_profile为例。

  • 配置JAVA变量
  1. export JAVA_HOME=$HOME/3rd/jdk1.8.0_171
  2. export JRE_HOME=$JAVA_HOME/jre
  3. export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
  4. export PATH=$JAVA_HOME/bin:$PATH

注意:

  1. 这里的PATH赋值必须要有:$PATH,否则如果生效环境变量,会找不到系统默认命令比如ls,vi。 一旦误操作,需要管理员修改该用户的.bash_profile才可恢复正常。
  2. PATH的值注意先后顺序,如果变成export PATH=$PATH:$JAVA_HOME/bin,而操作系统已经安装jdk1.7,那么你执行java命令的时候使用的是系统的JAVA程序,而不是普通用户自己配置的jdk1.8.
  • 配置Python变量
  1. export PYTHONHOME=$HOME/3rd/Python-2.7.11
  2. export PYTHONPATH=$PYTHONHOME/lib/python2.7
  3. export PYTHONUNBUFFERED=1
  4. export PATH=$PYTHONHOME/bin:$PATH
  5. export LD_LIBRARY_PATH=$PYTHONHOME/lib:$LD_LIBRARY_PATH

说明:
1.LD_LIBRARY_PATH环境变量用于在程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径,注意,LD_LIBRARY_PATH中指定的路径会在系统默认路径之前进行查找。一般c++写的程序用ldd可以查看链接的动态库是多少。
2. LD_LIBRARY_PATH环境变量同样是从配置的先后顺序开始遍历,需要注意配置项值的先后顺序。

  • 别名配置

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

  1. 比如查看当前用户的进程,可以简单变成一个新的命令pg
  1. alias pg='ps -ef|grep aiwm'
  1. 想进入一个经常进入的目录,可以简单变成一个新的命令cdci
  1. alias cdci='cd /opt/testerzhang/.jenkins/workspace'
  1. grep 搜索的时候显示彩色的关键字
  1. alias grep='grep --exclude=*.o --exclude=*.so --exclude=*tags* -I --color '
  • 优化系统性能配置项

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

  1. ulimit -s 2048
  2. ulimit -c 0