程序和脚本通过环境变量来获取系统信息,存储临时数据和配置信息
全局变量对于shell会话和所有生成的子shell 都是可见的,而局部变量只针对创建它们的shell(进程) 可见,其他shell不可用.
全局变量: /etc/profile
局部变量(个人): ~ /.bash_profile
~/.bashrc
1. 查看全局变量 env 或者 printenv命令
[hy@localhost ~]$ env
XDG_SESSION_ID=3
HOSTNAME=localhost.localdomain
SELINUX_ROLE_REQUESTED=
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=192.168.94.1 49202 22
SELINUX_USE_CURRENT_RANGE=
SSH_TTY=/dev/pts/0
USER=hy
2.显示个别环境变量的值 printenv命令
[hy@localhost ~]$ printenv HOME
/home/hy
3.显示变量的值 echo命令
这种情况下引用某个环境变量,必须在环境变量前面加上美元符号($),不仅仅是显示变量当前的值,还能让变量作为命令行参数
[hy@localhost ~]$ echo $PATH
/usr/java/jdk1.8.0_121/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/hy/.local/bin:/home/hy/bin
[hy@localhost ~]$ echo $HOME
/home/hy
备注:系统环境变量都是使用大写字母,以区别于普通用户的环境变量
4.设置全局环境变量
1)vi /etc/profile;
[hy@localhost ~]$ vi /etc/profile
# /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
2) 上下键移动光标到最后面;
for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
if [ -r "$i" ]; then
if [ "${-#*i}" != "$-" ]; then
. "$i"
else
. "$i" >/dev/null
fi
fi
done
unset i
unset -f pathmunge
#env
export JAVA_HOME=/usr/java/jdk1.8.0_121
export PATH=$JAVA_HOME/bin:$PATH
3)按 i 键(insert)进入编辑模式;
unset -f pathmunge
#env
export JAVA_HOME=/usr/java/jdk1.8.0_121
export PATH=$JAVA_HOME/bin:$PATH
-- INSERT --
4)开始编辑;
5)按 esc 键退出编辑模式,进入命令行模式;
unset -f pathmunge
#env
export JAVA_HOME=/usr/java/jdk1.8.0_121
export PATH=$JAVA_HOME/bin:$PATH
6)按 shift + : 键进入尾行模式;
unset -f pathmunge
#env
export JAVA_HOME=/usr/java/jdk1.8.0_121
export PATH=$JAVA_HOME/bin:$PATH
:
7)输入 wq 退出保存.
unset -f pathmunge
#env
export JAVA_HOME=/usr/java/jdk1.8.0_121
export PATH=$JAVA_HOME/bin:$PATH
: wq
8)生效文件 source /etc/profile
[hy@localhost ~]$ source /etc/profile
Tips: command not found
可能没有部署安装包,或者部署了但是没有配置环境变量
习惯于部署一个软件放在bin目录的可执行文件,当生效环境变量文件后做which命令:which xx
5.配置局部(个人)环境变量文件
1)vi .bashrc
[hy@localhost ~]$ vi .bashrc
2)
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
3)i 键
4)编辑模式,添加编辑
eg: alias h='cd yueh'
5)esc键
6)shift + : 键
7) wq键
8)source 生效文件
[hy@localhost ~]$ source .bashrc
9)验证 cd h
[hy@localhost ~]$ h
[hy@localhost yueh]$
6. 别名 alias
[hy@localhost ~]$ alias h='cd yueh'
[hy@localhost ~]$ h
[hy@localhost yueh]$
7.history
删除history,history -c